# Package org.eclipse.jdt.core

package org.eclipse.jdt.core
The Java model is the set of classes that model the objects associated with creating, editing, and building a Java program.

## Package Specification

This package contains the Java model classes, which implement Java specific behaviour for resources and further decompose Java resources into model elements.

Note that a lot of Java model operations require a Java project's classpath resolution. For example IJavaProject#getResolvedClasspath(boolean) or JavaCore#setClasspathContainer() will require to resolve the classpath of one or more projects. Client should be aware that this resolution may require to take project modification rule (see IResourceRuleFactory#modifyRule(IResource)).

Related Packages
Package
Description
org.eclipse.jdt.core.compiler
This package contains compiler associated infrastructure APIs.
org.eclipse.jdt.core.dom
The Java DOM/AST is the set of classes that model the source code of a Java program as a structured document.
org.eclipse.jdt.core.eval
Provides support for the evaluation of code snippets in a scrapbook or inside the debugger.
org.eclipse.jdt.core.formatter
The code formatter is the set of classes that are used to format Java code.
org.eclipse.jdt.core.index
Provides support for generating indexes that can be used by the JDT search engine.
org.eclipse.jdt.core.jdom
Provides a support for Java document manipulation through the JDOM model.
org.eclipse.jdt.core.manipulation
Application programming interface for the JDT core manipulation plug-in class.
org.eclipse.jdt.core.provisional
org.eclipse.jdt.core.refactoring
Application programming interface for Java-specified refactoring framework facilities.
org.eclipse.jdt.core.search
Provides support for searching the workspace Java elements that match a particular description.
org.eclipse.jdt.core.util
Provides a set of tools and utilities for manipulating .class files and Java model elements.
Class
Description
BindingKey
Utility class to decode or create a binding key.
BufferChangedEvent
A buffer changed event describes how a buffer has changed.
BuildJarIndex
An Ant task to generate the index file for the given jar path.
CheckDebugAttributes
An Ant task to find out if a class file or a jar contains debug attributes.
ClasspathContainerInitializer
Abstract base implementation of all classpath container initializer.
ClasspathVariableInitializer
Abstract base implementation of all classpath variable initializers.
CompletionContext
Completion context.
CompletionFlags
Utility class for decoding additional flags in completion proposal.
CompletionProposal
Completion proposal.
CompletionRequestor
Abstract base class for a completion requestor which is passed completion proposals as they are generated in response to a code assist request.
CompletionRequestorAdapter
Deprecated.
Subclass `CompletionRequestor` instead.
CorrectionEngine
This class is the entry point for source corrections.
ElementChangedEvent
An element changed event describes a change to the structure or contents of a tree of Java elements.
Flags
Utility class for decoding modifier flags in Java elements.
IAccessRule
Describes an access rule to source and class files on a classpath entry.
IAnnotatable
Common protocol for Java elements that can be annotated.
IAnnotation
Represents an annotation on a package declaration, a type, a method, a field or a local variable in a compilation unit or a class file.
IBuffer
A buffer contains the text contents of a resource.
IBuffer.ITextEditCapability
Implementors of `IBuffer` can additionally implement `IBuffer.ITextEditCapability`.
IBufferChangedListener
A listener, which gets notified when the contents of a specific buffer have changed, or when the buffer is closed.
IBufferFactory
Deprecated.
Use `WorkingCopyOwner` instead
IClassFile
Represents a single `.class` file, holding the binary form of either a type or a module: A class file of type `IOrdinaryClassFile` has a single child of type `IType`, a class file of type `IModularClassFile` has a single child of type `IModuleDescription`. Class file elements need to be opened before they can be navigated.
IClasspathAttribute
A classpath attribute defines a name/value pair that can be persisted with a classpath entry.
IClasspathAttributeDelta
A delta which describes changes in `IClasspathAttribute` of a classpath between two discrete points in time.
IClasspathContainer
Interface of a classpath container.
IClasspathEntry
An entry on a Java project classpath identifying one or more package fragment roots.
ICodeAssist
Common protocol for Java elements that support source code assist and code resolve.
ICodeCompletionRequestor
Deprecated.
Use `CompletionRequestor` instead.
ICodeFormatter
Deprecated.
Use `CodeFormatter` instead (note: options have changed)
ICompilationUnit
Represents an entire Java compilation unit (source file with one of the `Java-like extensions`).
ICompletionRequestor
Deprecated.
Use `CompletionRequestor` instead.
ICorrectionRequestor
A callback interface for receiving java problem correction.
IElementChangedListener
An element changed listener receives notification of changes to Java elements maintained by the Java model.
IField
Represents a field declared in a type.
IImportContainer
Represents an import container is a child of a Java compilation unit that contains all (and only) the import declarations.
IImportDeclaration
Represents an import declaration in Java compilation unit.
IInitializer
Represents a stand-alone instance or class (static) initializer in a type.
IJarEntryResource
A jar entry corresponding to a non-Java resource in an archive `IPackageFragment` or `IPackageFragmentRoot`.
IJavaElement
Common protocol for all elements provided by the Java model.
IJavaElementDelta
A Java element delta describes changes in Java element between two discrete points in time.
IJavaModel
Represent the root Java element corresponding to the workspace.
IJavaModelMarker
Markers used by the Java model.
IJavaModelStatus
Represents the outcome of an Java model operation.
IJavaModelStatusConstants
Status codes used with Java model status objects.
IJavaProject
A Java project represents a view of a project resource in terms of Java elements such as package fragments, types, methods and fields.
ILocalVariable
Represents a local variable declared in a method or an initializer.
IMember
Common protocol for Java elements that can be members of types.
IMemberValuePair
Represents a member-value pair of an annotation.
IMethod
Represents a method (or constructor) declared in a type.
IModularClassFile
Represents the class file of a module description ("module-info.class").
IModuleDescription
Represents a Java module descriptor.
IOpenable
Common protocol for Java elements that must be opened before they can be navigated or modified.
IOrdinaryClassFile
Ordinary form of a `IClassFile` which holds exactly one `IType`.
IPackageDeclaration
Represents a package declaration in Java compilation unit.
IPackageFragment
A package fragment is a portion of the workspace corresponding to an entire package, or to a portion thereof.
IPackageFragmentRoot
A package fragment root contains a set of package fragments.
IParent
Common protocol for Java elements that contain other Java elements.
IProblemRequestor
A callback interface for receiving java problem as they are discovered by some Java operation.
IRegion
A Java model region describes a hierarchical set of elements.
ISourceManipulation
Common protocol for Java elements that support source code manipulations such as copy, move, rename, and delete.
ISourceRange
A source range defines an element's source coordinates relative to its source buffer.
ISourceReference
Common protocol for Java elements that have associated source code.
IType
Represents either a source type in a compilation unit (either a top-level type, a member type, a local type, an anonymous type or a lambda expression) or a binary type in a class file.
ITypeHierarchy
A type hierarchy provides navigations between a type and its resolved supertypes and subtypes for a specific type or for all types within a region.
ITypeHierarchyChangedListener
A listener which gets notified when a particular type hierarchy object changes.
ITypeParameter
Represents a type parameter defined by a type or a method in a compilation unit or a class file.
ITypeRoot
Represents an entire Java type root (either an `ICompilationUnit` or an `IClassFile`).
IWorkingCopy
Deprecated.
Use `ICompilationUnit` instead
JavaConventions
Provides methods for checking Java-specific conventions such as name syntax.
JavaCore
The plug-in runtime class for the Java model plug-in containing the core (UI-free) support for Java projects.
JavaCore.JavaCallable<V, E extends Exception>
JavaCore.JavaRunnable<E extends Exception>
JavaModelException
A checked exception representing a failure in the Java model.
JDTCompilerAdapter
Ant 1.5 compiler adapter for the Eclipse Java compiler.
NamingConventions
Provides methods for computing Java-specific names.
Signature
Provides methods for encoding and decoding type and method signature strings.
SourceRange
A source range defines an element's source coordinates relative to its source buffer.
ToolFactory
Factory for creating various compiler tools, such as scanners, parsers and compilers.
WorkingCopyOwner
The owner of an `ICompilationUnit` handle in working copy mode.