# 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.

See: Description

Interface Summary
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 an entire binary type (single `.class` file).
IClasspathAttribute: A classpath attribute defines a name/value pair that can be persisted with a classpath entry.
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.
IOpenable: Common protocol for Java elements that must be opened before they can be navigated or modified.
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

Class Summary
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.
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.
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.

Exception Summary
JavaModelException: A checked exception representing a failure in the Java model.

## Package org.eclipse.jdt.core Description

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)).