Eclipse JDT
2.1

org.eclipse.jdt.core
Class JavaCore

java.lang.Object
  |
  +--org.eclipse.core.runtime.Plugin
        |
        +--org.eclipse.jdt.core.JavaCore
All Implemented Interfaces:
IExecutableExtension

public final class JavaCore
extends Plugin
implements IExecutableExtension

The plug-in runtime class for the Java model plug-in containing the core (UI-free) support for Java projects.

Like all plug-in runtime classes (subclasses of Plugin), this class is automatically instantiated by the platform when the plug-in gets activated. Clients must not attempt to instantiate plug-in runtime classes directly.

The single instance of this class can be accessed from any plug-in declaring the Java model plug-in as a prerequisite via JavaCore.getJavaCore(). The Java model plug-in will be activated automatically if not already active.


Field Summary
static String ABORT
          Possible configurable option value.
protected static String ATT_HANDLE_ID
          Name of the handle id attribute in a Java marker.
static String BUILDER_ID
          The identifier for the Java builder (value "org.eclipse.jdt.core.javabuilder").
static String CLEAN
          Possible configurable option value.
static String CLEAR_ALL
          Possible configurable option value.
static String CODEASSIST_ARGUMENT_PREFIXES
          Possible configurable option ID.
static String CODEASSIST_ARGUMENT_SUFFIXES
          Possible configurable option ID.
static String CODEASSIST_FIELD_PREFIXES
          Possible configurable option ID.
static String CODEASSIST_FIELD_SUFFIXES
          Possible configurable option ID.
static String CODEASSIST_IMPLICIT_QUALIFICATION
          Possible configurable option ID.
static String CODEASSIST_LOCAL_PREFIXES
          Possible configurable option ID.
static String CODEASSIST_LOCAL_SUFFIXES
          Possible configurable option ID.
static String CODEASSIST_STATIC_FIELD_PREFIXES
          Possible configurable option ID.
static String CODEASSIST_STATIC_FIELD_SUFFIXES
          Possible configurable option ID.
static String CODEASSIST_VISIBILITY_CHECK
          Possible configurable option ID.
static String COMPACT
          Possible configurable option value.
static String COMPILER_CODEGEN_TARGET_PLATFORM
          Possible configurable option ID.
static String COMPILER_CODEGEN_UNUSED_LOCAL
          Possible configurable option ID.
static String COMPILER_COMPLIANCE
          Possible configurable option ID.
static String COMPILER_LINE_NUMBER_ATTR
          Possible configurable option ID.
static String COMPILER_LOCAL_VARIABLE_ATTR
          Possible configurable option ID.
static String COMPILER_PB_ASSERT_IDENTIFIER
          Possible configurable option ID.
static String COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION
          Possible configurable option ID.
static String COMPILER_PB_DEPRECATION
          Possible configurable option ID.
static String COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE
          Possible configurable option ID.
static String COMPILER_PB_HIDDEN_CATCH_BLOCK
          Possible configurable option ID.
static String COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD
          Possible configurable option ID.
static String COMPILER_PB_INVALID_IMPORT
          Possible configurable option ID.
static String COMPILER_PB_MAX_PER_UNIT
          Possible configurable option ID.
static String COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME
          Possible configurable option ID.
static String COMPILER_PB_NO_EFFECT_ASSIGNMENT
          Possible configurable option ID.
static String COMPILER_PB_NON_NLS_STRING_LITERAL
          Possible configurable option ID.
static String COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD
          Possible configurable option ID.
static String COMPILER_PB_STATIC_ACCESS_RECEIVER
          Possible configurable option ID.
static String COMPILER_PB_SYNTHETIC_ACCESS_EMULATION
          Possible configurable option ID.
static String COMPILER_PB_UNREACHABLE_CODE
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_IMPORT
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_LOCAL
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_PARAMETER
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE
          Possible configurable option ID.
static String COMPILER_PB_UNUSED_PRIVATE_MEMBER
          Possible configurable option ID.
static String COMPILER_SOURCE
          Possible configurable option ID.
static String COMPILER_SOURCE_FILE_ATTR
          Possible configurable option ID.
static String COMPILER_TASK_PRIORITIES
          Possible configurable option ID.
static String COMPILER_TASK_PRIORITY_HIGH
          Possible configurable option value for COMPILER_TASK_PRIORITIES.
static String COMPILER_TASK_PRIORITY_LOW
          Possible configurable option value for COMPILER_TASK_PRIORITIES.
static String COMPILER_TASK_PRIORITY_NORMAL
          Possible configurable option value for COMPILER_TASK_PRIORITIES.
static String COMPILER_TASK_TAGS
          Possible configurable option ID.
static String COMPUTE
          Possible configurable option value.
static String CORE_CIRCULAR_CLASSPATH
          Possible configurable option ID.
static String CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS
          Possible configurable option ID.
static String CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS
          Possible configurable option ID.
static String CORE_ENCODING
          Possible configurable option ID.
static String CORE_INCOMPLETE_CLASSPATH
          Possible configurable option ID.
static String CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER
          Possible configurable option ID.
static String CORE_JAVA_BUILD_DUPLICATE_RESOURCE
          Possible configurable option ID.
static String CORE_JAVA_BUILD_INVALID_CLASSPATH
          Possible configurable option ID.
static String CORE_JAVA_BUILD_ORDER
          Possible configurable option ID.
static String CORE_JAVA_BUILD_RESOURCE_COPY_FILTER
          Possible configurable option ID.
static String DEFAULT_TASK_PRIORITY
          Default task priority
static String DEFAULT_TASK_TAG
          Default task tag
static String DISABLED
          Possible configurable option value.
static String DO_NOT_GENERATE
          Possible configurable option value.
static String DO_NOT_INSERT
          Possible configurable option value.
static String ENABLED
          Possible configurable option value.
static String ERROR
          Possible configurable option value.
static String FORMATTER_CLEAR_BLANK_LINES
          Possible configurable option ID.
static String FORMATTER_COMPACT_ASSIGNMENT
          Possible configurable option ID.
static String FORMATTER_LINE_SPLIT
          Possible configurable option ID.
static String FORMATTER_NEWLINE_CONTROL
          Possible configurable option ID.
static String FORMATTER_NEWLINE_ELSE_IF
          Possible configurable option ID.
static String FORMATTER_NEWLINE_EMPTY_BLOCK
          Possible configurable option ID.
static String FORMATTER_NEWLINE_OPENING_BRACE
          Possible configurable option ID.
static String FORMATTER_SPACE_CASTEXPRESSION
          Possible configurable option ID
static String FORMATTER_TAB_CHAR
          Possible configurable option ID.
static String FORMATTER_TAB_SIZE
          Possible configurable option ID.
static String GENERATE
          Possible configurable option value.
static String IGNORE
          Possible configurable option value.
static String INSERT
          Possible configurable option value.
static String MODEL_ID
          The identifier for the Java model (value "org.eclipse.jdt.core.javamodel").
static String NATURE_ID
          The identifier for the Java nature (value "org.eclipse.jdt.core.javanature").
static String NORMAL
          Possible configurable option value.
static String OPTIMIZE_OUT
          Possible configurable option value.
static String PLUGIN_ID
          The plug-in identifier of the Java core support (value "org.eclipse.jdt.core").
static String PRESERVE
          Possible configurable option value.
static String PRESERVE_ONE
          Possible configurable option value.
static String SPACE
          Possible configurable option value.
static String TAB
          Possible configurable option value.
static String VERSION_1_1
          Possible configurable option value.
static String VERSION_1_2
          Possible configurable option value.
static String VERSION_1_3
          Possible configurable option value.
static String VERSION_1_4
          Possible configurable option value.
static String WARNING
          Possible configurable option value.
 
Fields inherited from class org.eclipse.core.runtime.Plugin
PREFERENCES_DEFAULT_OVERRIDE_BASE_NAME, PREFERENCES_DEFAULT_OVERRIDE_FILE_NAME
 
Constructor Summary
JavaCore(IPluginDescriptor pluginDescriptor)
          Creates the Java core plug-in.
 
Method Summary
static void addElementChangedListener(IElementChangedListener listener)
          Adds the given listener for changes to Java elements.
static void addElementChangedListener(IElementChangedListener listener, int eventMask)
          Adds the given listener for changes to Java elements.
static void addJavaElementMarkerAttributes(Map attributes, IJavaElement element)
          Configures the given marker attribute map for the given Java element.
 void configureJavaElementMarker(IMarker marker, IJavaElement element)
          Configures the given marker for the given Java element.
static IJavaElement create(IFile file)
          Returns the Java element corresponding to the given file, or null if unable to associate the given file with a Java element.
static IJavaElement create(IFolder folder)
          Returns the package fragment or package fragment root corresponding to the given folder, or null if unable to associate the given folder with a Java element.
static IJavaProject create(IProject project)
          Returns the Java project corresponding to the given project.
static IJavaElement create(IResource resource)
          Returns the Java element corresponding to the given resource, or null if unable to associate the given resource with a Java element.
static IJavaModel create(IWorkspaceRoot root)
          Returns the Java model.
static IJavaElement create(String handleIdentifier)
          Returns the Java model element corresponding to the given handle identifier generated by IJavaElement.getHandleIdentifier(), or null if unable to create the associated element.
static IClassFile createClassFileFrom(IFile file)
          Creates and returns a class file element for the given .class file.
static ICompilationUnit createCompilationUnitFrom(IFile file)
          Creates and returns a compilation unit element for the given .java file.
static IPackageFragmentRoot createJarPackageFragmentRootFrom(IFile file)
          Creates and returns a handle for the given JAR file.
static IClasspathContainer getClasspathContainer(IPath containerPath, IJavaProject project)
          Answers the project specific value for a given classpath container.
static ClasspathContainerInitializer getClasspathContainerInitializer(String containerID)
          Helper method finding the classpath container initializer registered for a given classpath container ID or null if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.jdt.core.classpathContainerInitializer".
static IPath getClasspathVariable(String variableName)
          Returns the path held in the given classpath variable.
static ClasspathVariableInitializer getClasspathVariableInitializer(String variable)
          Helper method finding the classpath variable initializer registered for a given classpath variable name or null if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.jdt.core.classpathVariableInitializer".
static String[] getClasspathVariableNames()
          Returns the names of all known classpath variables.
static Hashtable getDefaultOptions()
          Returns a table of all known configurable options with their default values.
static JavaCore getJavaCore()
          Returns the single instance of the Java core plug-in runtime class.
static String getOption(String optionName)
          Helper method for returning one option value only.
static Hashtable getOptions()
          Returns the table of the current options.
static Plugin getPlugin()
          Returns the single instance of the Java core plug-in runtime class.
static IClasspathEntry getResolvedClasspathEntry(IClasspathEntry entry)
          This is a helper method, which returns the resolved classpath entry denoted by a given entry (if it is a variable entry).
static IPath getResolvedVariablePath(IPath variablePath)
          Resolve a variable path (helper method).
static IWorkingCopy[] getSharedWorkingCopies(IBufferFactory factory)
          Answers the shared working copies currently registered for this buffer factory.
protected  void initializeDefaultPluginPreferences()
          Initializes the default preferences settings for this plug-in.
static boolean isReferencedBy(IJavaElement element, IMarker marker)
          Returns whether the given marker references the given Java element.
static boolean isReferencedBy(IJavaElement element, IMarkerDelta markerDelta)
          Returns whether the given marker delta references the given Java element.
static IClasspathEntry newContainerEntry(IPath containerPath)
          Creates and returns a new classpath entry of kind CPE_CONTAINER for the given path.
static IClasspathEntry newContainerEntry(IPath containerPath, boolean isExported)
          Creates and returns a new classpath entry of kind CPE_CONTAINER for the given path.
static IClasspathEntry newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath)
          Creates and returns a new non-exported classpath entry of kind CPE_LIBRARY for the JAR or folder identified by the given absolute path.
static IClasspathEntry newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath, boolean isExported)
          Creates and returns a new classpath entry of kind CPE_LIBRARY for the JAR or folder identified by the given absolute path.
static IClasspathEntry newProjectEntry(IPath path)
          Creates and returns a new non-exported classpath entry of kind CPE_PROJECT for the project identified by the given absolute path.
static IClasspathEntry newProjectEntry(IPath path, boolean isExported)
          Creates and returns a new classpath entry of kind CPE_PROJECT for the project identified by the given absolute path.
static IRegion newRegion()
          Returns a new empty region.
static IClasspathEntry newSourceEntry(IPath path)
          Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path.
static IClasspathEntry newSourceEntry(IPath path, IPath[] exclusionPatterns)
          Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns.
static IClasspathEntry newSourceEntry(IPath path, IPath[] exclusionPatterns, IPath specificOutputLocation)
          Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location).
static IClasspathEntry newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath sourceAttachmentRootPath)
          Creates and returns a new non-exported classpath entry of kind CPE_VARIABLE for the given path.
static IClasspathEntry newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath variableSourceAttachmentRootPath, boolean isExported)
          Creates and returns a new non-exported classpath entry of kind CPE_VARIABLE for the given path.
static void removeClasspathVariable(String variableName)
          Deprecated. - use version with extra IProgressMonitor
static void removeClasspathVariable(String variableName, IProgressMonitor monitor)
          Removed the given classpath variable.
static void removeElementChangedListener(IElementChangedListener listener)
          Removes the given element changed listener.
static void run(IWorkspaceRunnable action, IProgressMonitor monitor)
          Runs the given action as an atomic Java model operation.
static void setClasspathContainer(IPath containerPath, IJavaProject[] affectedProjects, IClasspathContainer[] respectiveContainers, IProgressMonitor monitor)
          Bind a container reference path to some actual containers (IClasspathContainer).
static void setClasspathVariable(String variableName, IPath path)
          Deprecated. - use API with IProgressMonitor
static void setClasspathVariable(String variableName, IPath path, IProgressMonitor monitor)
          Sets the value of the given classpath variable.
static void setClasspathVariables(String[] variableNames, IPath[] paths, IProgressMonitor monitor)
          Sets the values of all the given classpath variables at once.
 void setInitializationData(IConfigurationElement cfig, String propertyName, Object data)
           
static void setOptions(Hashtable newOptions)
          Sets the current table of options.
 void shutdown()
          Shutdown the JavaCore plug-in.
 void startup()
          Startup of the JavaCore plug-in.
 
Methods inherited from class org.eclipse.core.runtime.Plugin
find, find, getDescriptor, getLog, getPluginPreferences, getStateLocation, isDebugging, openStream, openStream, savePluginPreferences, setDebugging, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PLUGIN_ID

public static final String PLUGIN_ID
The plug-in identifier of the Java core support (value "org.eclipse.jdt.core").

BUILDER_ID

public static final String BUILDER_ID
The identifier for the Java builder (value "org.eclipse.jdt.core.javabuilder").

MODEL_ID

public static final String MODEL_ID
The identifier for the Java model (value "org.eclipse.jdt.core.javamodel").

NATURE_ID

public static final String NATURE_ID
The identifier for the Java nature (value "org.eclipse.jdt.core.javanature"). The presence of this nature on a project indicates that it is Java-capable.
See Also:
IProject.hasNature(java.lang.String)

ATT_HANDLE_ID

protected static final String ATT_HANDLE_ID
Name of the handle id attribute in a Java marker.

COMPILER_LOCAL_VARIABLE_ATTR

public static final String COMPILER_LOCAL_VARIABLE_ATTR
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_LINE_NUMBER_ATTR

public static final String COMPILER_LINE_NUMBER_ATTR
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_SOURCE_FILE_ATTR

public static final String COMPILER_SOURCE_FILE_ATTR
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_CODEGEN_UNUSED_LOCAL

public static final String COMPILER_CODEGEN_UNUSED_LOCAL
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_CODEGEN_TARGET_PLATFORM

public static final String COMPILER_CODEGEN_TARGET_PLATFORM
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_UNREACHABLE_CODE

public static final String COMPILER_PB_UNREACHABLE_CODE
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_INVALID_IMPORT

public static final String COMPILER_PB_INVALID_IMPORT
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD

public static final String COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME

public static final String COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_DEPRECATION

public static final String COMPILER_PB_DEPRECATION
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE

public static final String COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_HIDDEN_CATCH_BLOCK

public static final String COMPILER_PB_HIDDEN_CATCH_BLOCK
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_UNUSED_LOCAL

public static final String COMPILER_PB_UNUSED_LOCAL
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_UNUSED_PARAMETER

public static final String COMPILER_PB_UNUSED_PARAMETER
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT

public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE

public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_UNUSED_IMPORT

public static final String COMPILER_PB_UNUSED_IMPORT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_PB_SYNTHETIC_ACCESS_EMULATION

public static final String COMPILER_PB_SYNTHETIC_ACCESS_EMULATION
Possible configurable option ID.
See Also:
getDefaultOptions()

COMPILER_PB_NON_NLS_STRING_LITERAL

public static final String COMPILER_PB_NON_NLS_STRING_LITERAL
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_PB_ASSERT_IDENTIFIER

public static final String COMPILER_PB_ASSERT_IDENTIFIER
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_PB_STATIC_ACCESS_RECEIVER

public static final String COMPILER_PB_STATIC_ACCESS_RECEIVER
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_NO_EFFECT_ASSIGNMENT

public static final String COMPILER_PB_NO_EFFECT_ASSIGNMENT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD

public static final String COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_UNUSED_PRIVATE_MEMBER

public static final String COMPILER_PB_UNUSED_PRIVATE_MEMBER
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION

public static final String COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_PB_MAX_PER_UNIT

public static final String COMPILER_PB_MAX_PER_UNIT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_SOURCE

public static final String COMPILER_SOURCE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_COMPLIANCE

public static final String COMPILER_COMPLIANCE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

COMPILER_TASK_PRIORITIES

public static final String COMPILER_TASK_PRIORITIES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_TASK_PRIORITY_HIGH

public static final String COMPILER_TASK_PRIORITY_HIGH
Possible configurable option value for COMPILER_TASK_PRIORITIES.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_TASK_PRIORITY_LOW

public static final String COMPILER_TASK_PRIORITY_LOW
Possible configurable option value for COMPILER_TASK_PRIORITIES.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_TASK_PRIORITY_NORMAL

public static final String COMPILER_TASK_PRIORITY_NORMAL
Possible configurable option value for COMPILER_TASK_PRIORITIES.
See Also:
getDefaultOptions()
Since:
2.1

COMPILER_TASK_TAGS

public static final String COMPILER_TASK_TAGS
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_JAVA_BUILD_ORDER

public static final String CORE_JAVA_BUILD_ORDER
Possible configurable option ID.
See Also:
getDefaultOptions()

CORE_JAVA_BUILD_RESOURCE_COPY_FILTER

public static final String CORE_JAVA_BUILD_RESOURCE_COPY_FILTER
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

CORE_JAVA_BUILD_DUPLICATE_RESOURCE

public static final String CORE_JAVA_BUILD_DUPLICATE_RESOURCE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER

public static final String CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_INCOMPLETE_CLASSPATH

public static final String CORE_INCOMPLETE_CLASSPATH
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_CIRCULAR_CLASSPATH

public static final String CORE_CIRCULAR_CLASSPATH
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_JAVA_BUILD_INVALID_CLASSPATH

public static final String CORE_JAVA_BUILD_INVALID_CLASSPATH
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

CORE_ENCODING

public static final String CORE_ENCODING
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS

public static final String CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS

public static final String CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

DEFAULT_TASK_TAG

public static final String DEFAULT_TASK_TAG
Default task tag
Since:
2.1

DEFAULT_TASK_PRIORITY

public static final String DEFAULT_TASK_PRIORITY
Default task priority
Since:
2.1

FORMATTER_NEWLINE_OPENING_BRACE

public static final String FORMATTER_NEWLINE_OPENING_BRACE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_NEWLINE_CONTROL

public static final String FORMATTER_NEWLINE_CONTROL
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_NEWLINE_ELSE_IF

public static final String FORMATTER_NEWLINE_ELSE_IF
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_NEWLINE_EMPTY_BLOCK

public static final String FORMATTER_NEWLINE_EMPTY_BLOCK
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_CLEAR_BLANK_LINES

public static final String FORMATTER_CLEAR_BLANK_LINES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_LINE_SPLIT

public static final String FORMATTER_LINE_SPLIT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_COMPACT_ASSIGNMENT

public static final String FORMATTER_COMPACT_ASSIGNMENT
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_TAB_CHAR

public static final String FORMATTER_TAB_CHAR
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_TAB_SIZE

public static final String FORMATTER_TAB_SIZE
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

FORMATTER_SPACE_CASTEXPRESSION

public static final String FORMATTER_SPACE_CASTEXPRESSION
Possible configurable option ID
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_VISIBILITY_CHECK

public static final String CODEASSIST_VISIBILITY_CHECK
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

CODEASSIST_IMPLICIT_QUALIFICATION

public static final String CODEASSIST_IMPLICIT_QUALIFICATION
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.0

CODEASSIST_FIELD_PREFIXES

public static final String CODEASSIST_FIELD_PREFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_STATIC_FIELD_PREFIXES

public static final String CODEASSIST_STATIC_FIELD_PREFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_LOCAL_PREFIXES

public static final String CODEASSIST_LOCAL_PREFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_ARGUMENT_PREFIXES

public static final String CODEASSIST_ARGUMENT_PREFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_FIELD_SUFFIXES

public static final String CODEASSIST_FIELD_SUFFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_STATIC_FIELD_SUFFIXES

public static final String CODEASSIST_STATIC_FIELD_SUFFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_LOCAL_SUFFIXES

public static final String CODEASSIST_LOCAL_SUFFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

CODEASSIST_ARGUMENT_SUFFIXES

public static final String CODEASSIST_ARGUMENT_SUFFIXES
Possible configurable option ID.
See Also:
getDefaultOptions()
Since:
2.1

GENERATE

public static final String GENERATE
Possible configurable option value.
See Also:
getDefaultOptions()

DO_NOT_GENERATE

public static final String DO_NOT_GENERATE
Possible configurable option value.
See Also:
getDefaultOptions()

PRESERVE

public static final String PRESERVE
Possible configurable option value.
See Also:
getDefaultOptions()

OPTIMIZE_OUT

public static final String OPTIMIZE_OUT
Possible configurable option value.
See Also:
getDefaultOptions()

VERSION_1_1

public static final String VERSION_1_1
Possible configurable option value.
See Also:
getDefaultOptions()

VERSION_1_2

public static final String VERSION_1_2
Possible configurable option value.
See Also:
getDefaultOptions()

VERSION_1_3

public static final String VERSION_1_3
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

VERSION_1_4

public static final String VERSION_1_4
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

ABORT

public static final String ABORT
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

ERROR

public static final String ERROR
Possible configurable option value.
See Also:
getDefaultOptions()

WARNING

public static final String WARNING
Possible configurable option value.
See Also:
getDefaultOptions()

IGNORE

public static final String IGNORE
Possible configurable option value.
See Also:
getDefaultOptions()

COMPUTE

public static final String COMPUTE
Possible configurable option value.
See Also:
getDefaultOptions()

INSERT

public static final String INSERT
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

DO_NOT_INSERT

public static final String DO_NOT_INSERT
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

PRESERVE_ONE

public static final String PRESERVE_ONE
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

CLEAR_ALL

public static final String CLEAR_ALL
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

NORMAL

public static final String NORMAL
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

COMPACT

public static final String COMPACT
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

TAB

public static final String TAB
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

SPACE

public static final String SPACE
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

ENABLED

public static final String ENABLED
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

DISABLED

public static final String DISABLED
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.0

CLEAN

public static final String CLEAN
Possible configurable option value.
See Also:
getDefaultOptions()
Since:
2.1
Constructor Detail

JavaCore

public JavaCore(IPluginDescriptor pluginDescriptor)
Creates the Java core plug-in.
Since:
2.1
Method Detail

addElementChangedListener

public static void addElementChangedListener(IElementChangedListener listener)
Adds the given listener for changes to Java elements. Has no effect if an identical listener is already registered. This listener will only be notified during the POST_CHANGE resource change notification and any reconcile operation (POST_RECONCILE). For finer control of the notification, use addElementChangedListener(IElementChangedListener,int), which allows to specify a different eventMask.
Parameters:
listener - the listener
See Also:
ElementChangedEvent

addElementChangedListener

public static void addElementChangedListener(IElementChangedListener listener,
                                             int eventMask)
Adds the given listener for changes to Java elements. Has no effect if an identical listener is already registered. After completion of this method, the given listener will be registered for exactly the specified events. If they were previously registered for other events, they will be deregistered.

Once registered, a listener starts receiving notification of changes to java elements in the model. The listener continues to receive notifications until it is replaced or removed.

Listeners can listen for several types of event as defined in ElementChangeEvent. Clients are free to register for any number of event types however if they register for more than one, it is their responsibility to ensure they correctly handle the case where the same java element change shows up in multiple notifications. Clients are guaranteed to receive only the events for which they are registered.

Parameters:
listener - the listener
eventMask - the bit-wise OR of all event types of interest to the listener
Since:
2.0
See Also:
IElementChangedListener, ElementChangedEvent, removeElementChangedListener(IElementChangedListener)

addJavaElementMarkerAttributes

public static void addJavaElementMarkerAttributes(Map attributes,
                                                  IJavaElement element)
Configures the given marker attribute map for the given Java element. Used for markers, which denote a Java element rather than a resource.
Parameters:
attributes - the mutable marker attribute map (key type: String, value type: String)
element - the Java element for which the marker needs to be configured

configureJavaElementMarker

public void configureJavaElementMarker(IMarker marker,
                                       IJavaElement element)
                                throws CoreException
Configures the given marker for the given Java element. Used for markers, which denote a Java element rather than a resource.
Parameters:
marker - the marker to be configured
element - the Java element for which the marker needs to be configured
Throws:
CoreException - if the IMarker.setAttribute on the marker fails

create

public static IJavaElement create(String handleIdentifier)
Returns the Java model element corresponding to the given handle identifier generated by IJavaElement.getHandleIdentifier(), or null if unable to create the associated element.

create

public static IJavaElement create(IFile file)
Returns the Java element corresponding to the given file, or null if unable to associate the given file with a Java element.

The file must be one of:

Creating a Java element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
the - given file
Returns:
the Java element corresponding to the given file, or null if unable to associate the given file with a Java element

create

public static IJavaElement create(IFolder folder)
Returns the package fragment or package fragment root corresponding to the given folder, or null if unable to associate the given folder with a Java element.

Note that a package fragment root is returned rather than a default package.

Creating a Java element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
the - given folder
Returns:
the package fragment or package fragment root corresponding to the given folder, or null if unable to associate the given folder with a Java element

create

public static IJavaProject create(IProject project)
Returns the Java project corresponding to the given project.

Creating a Java Project has the side effect of creating and opening all of the project's parents if they are not yet open.

Note that no check is done at this time on the existence or the java nature of this project.

Parameters:
project - the given project
Returns:
the Java project corresponding to the given project, null if the given project is null

create

public static IJavaElement create(IResource resource)
Returns the Java element corresponding to the given resource, or null if unable to associate the given resource with a Java element.

The resource must be one of:

Creating a Java element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
resource - the given resource
Returns:
the Java element corresponding to the given resource, or null if unable to associate the given resource with a Java element

create

public static IJavaModel create(IWorkspaceRoot root)
Returns the Java model.
Parameters:
root - the given root
Returns:
the Java model, or null if the root is null

createClassFileFrom

public static IClassFile createClassFileFrom(IFile file)
Creates and returns a class file element for the given .class file. Returns null if unable to recognize the class file.
Parameters:
file - the given .class file
Returns:
a class file element for the given .class file, or null if unable to recognize the class file

createCompilationUnitFrom

public static ICompilationUnit createCompilationUnitFrom(IFile file)
Creates and returns a compilation unit element for the given .java file. Returns null if unable to recognize the compilation unit.
Parameters:
file - the given .java file
Returns:
a compilation unit element for the given .java file, or null if unable to recognize the compilation unit

createJarPackageFragmentRootFrom

public static IPackageFragmentRoot createJarPackageFragmentRootFrom(IFile file)
Creates and returns a handle for the given JAR file. The Java model associated with the JAR's project may be created as a side effect.
Parameters:
file - the given JAR file
Returns:
a handle for the given JAR file, or null if unable to create a JAR package fragment root. (for example, if the JAR file represents a non-Java resource)

getClasspathContainer

public static IClasspathContainer getClasspathContainer(IPath containerPath,
                                                        IJavaProject project)
                                                 throws JavaModelException
Answers the project specific value for a given classpath container. In case this container path could not be resolved, then will answer null. Both the container path and the project context are supposed to be non-null.

The containerPath is a formed by a first ID segment followed with extra segments, which can be used as additional hints for resolution. If no container was ever recorded for this container path onto this project (using setClasspathContainer, then a ClasspathContainerInitializer will be activated if any was registered for this container ID onto the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

There is no assumption that the returned container must answer the exact same containerPath when requested IClasspathContainer#getPath. Indeed, the containerPath is just an indication for resolving it to an actual container object.

Classpath container values are persisted locally to the workspace, but are not preserved from a session to another. It is thus highly recommended to register a ClasspathContainerInitializer for each referenced container (through the extension point "org.eclipse.jdt.core.ClasspathContainerInitializer").

Parameters:
containerPath - the name of the container, which needs to be resolved
project - a specific project in which the container is being resolved
Returns:
the corresponding classpath container or null if unable to find one.
Throws:
JavaModelException - if an exception occurred while resolving the container, or if the resolved container contains illegal entries (contains CPE_CONTAINER entries or null entries).
Since:
2.0
See Also:
ClasspathContainerInitializer, IClasspathContainer, setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor)

getClasspathContainerInitializer

public static ClasspathContainerInitializer getClasspathContainerInitializer(String containerID)
Helper method finding the classpath container initializer registered for a given classpath container ID or null if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

A containerID is the first segment of any container path, used to identify the registered container initializer.

Parameters:
String - - a containerID identifying a registered initializer
Returns:
ClasspathContainerInitializer - the registered classpath container initializer or null if none was found.
Since:
2.1

getClasspathVariable

public static IPath getClasspathVariable(String variableName)
Returns the path held in the given classpath variable. Returns null if unable to bind.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Note that classpath variables can be contributed registered initializers for, using the extension point "org.eclipse.jdt.core.classpathVariableInitializer". If an initializer is registered for a variable, its persisted value will be ignored: its initializer will thus get the opportunity to rebind the variable differently on each session.

Parameters:
variableName - the name of the classpath variable
Returns:
the path, or null if none
See Also:
setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath)

getClasspathVariableInitializer

public static ClasspathVariableInitializer getClasspathVariableInitializer(String variable)
Helper method finding the classpath variable initializer registered for a given classpath variable name or null if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.jdt.core.classpathVariableInitializer".

Parameters:
the - given variable
Returns:
ClasspathVariableInitializer - the registered classpath variable initializer or null if none was found.
Since:
2.1

getClasspathVariableNames

public static String[] getClasspathVariableNames()
Returns the names of all known classpath variables.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Returns:
the list of classpath variable names
See Also:
setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath)

getDefaultOptions

public static Hashtable getDefaultOptions()
Returns a table of all known configurable options with their default values. These options allow to configure the behaviour of the underlying components. The client may safely use the result as a template that they can modify and then pass to setOptions. Helper constants have been defined on JavaCore for each of the option ID and their possible constant values. Note: more options might be added in further releases.
 RECOGNIZED OPTIONS:
 COMPILER / Generating Local Variable Debug Attribute
    When generated, this attribute will enable local variable names 
    to be displayed in debugger, only in place where variables are 
    definitely assigned (.class file is then bigger)
     - option id:         "org.eclipse.jdt.core.compiler.debug.localVariable"
     - possible values:   { "generate", "do not generate" }
     - default:           "generate"

 COMPILER / Generating Line Number Debug Attribute 
    When generated, this attribute will enable source code highlighting in debugger 
    (.class file is then bigger).
     - option id:         "org.eclipse.jdt.core.compiler.debug.lineNumber"
     - possible values:   { "generate", "do not generate" }
     - default:           "generate"
    
 COMPILER / Generating Source Debug Attribute 
    When generated, this attribute will enable the debugger to present the 
    corresponding source code.
     - option id:         "org.eclipse.jdt.core.compiler.debug.sourceFile"
     - possible values:   { "generate", "do not generate" }
     - default:           "generate"
    
 COMPILER / Preserving Unused Local Variables
    Unless requested to preserve unused local variables (that is, never read), the 
    compiler will optimize them out, potentially altering debugging
     - option id:         "org.eclipse.jdt.core.compiler.codegen.unusedLocal"
     - possible values:   { "preserve", "optimize out" }
     - default:           "preserve"
 
 COMPILER / Defining Target Java Platform
    For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
    Note that "1.4" target require to toggle compliance mode to "1.4" too.
     - option id:         "org.eclipse.jdt.core.compiler.codegen.targetPlatform"
     - possible values:   { "1.1", "1.2", "1.3", "1.4" }
     - default:           "1.1"

 COMPILER / Reporting Unreachable Code
    Unreachable code can optionally be reported as an error, warning or simply 
    ignored. The bytecode generation will always optimized it out.
     - option id:         "org.eclipse.jdt.core.compiler.problem.unreachableCode"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "error"

 COMPILER / Reporting Invalid Import
    An import statement that cannot be resolved might optionally be reported 
    as an error, as a warning or ignored.
     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidImport"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "error"

 COMPILER / Reporting Attempt to Override Package-Default Method
    A package default method is not visible in a different package, and thus 
    cannot be overridden. When enabling this option, the compiler will signal 
    such scenarii either as an error or a warning.
     - option id:         "org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Reporting Method With Constructor Name
    Naming a method with a constructor name is generally considered poor 
    style programming. When enabling this option, the compiler will signal such 
    scenarii either as an error or a warning.
     - option id:         "org.eclipse.jdt.core.compiler.problem.methodWithConstructorName"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Reporting Deprecation
    When enabled, the compiler will signal use of deprecated API either as an 
    error or a warning.
     - option id:         "org.eclipse.jdt.core.compiler.problem.deprecation"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Reporting Deprecation Inside Deprecated Code
    When enabled, the compiler will signal use of deprecated API inside deprecated code.
    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.deprecation".
     - option id:         "org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode"
     - possible values:   { "enabled", "disabled" }
     - default:           "disabled"

 COMPILER / Reporting Hidden Catch Block
    Locally to a try statement, some catch blocks may hide others . For example,
      try {  throw new java.io.CharConversionException();
      } catch (java.io.CharConversionException e) {
      } catch (java.io.IOException e) {}. 
    When enabling this option, the compiler will issue an error or a warning for hidden 
    catch blocks corresponding to checked exceptions
     - option id:         "org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Reporting Unused Local
    When enabled, the compiler will issue an error or a warning for unused local 
    variables (that is, variables never read from)
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedLocal"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"

 COMPILER / Reporting Unused Parameter
    When enabled, the compiler will issue an error or a warning for unused method 
    parameters (that is, parameters never read from)
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameter"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"

 COMPILER / Reporting Unused Parameter if Implementing Abstract Method
    When enabled, the compiler will signal unused parameters in abstract method implementations.
    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"
     - possible values:   { "enabled", "disabled" }
     - default:           "disabled"

 COMPILER / Reporting Unused Parameter if Overriding Concrete Method
    When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"
     - possible values:   { "enabled", "disabled" }
     - default:           "disabled"

 COMPILER / Reporting Unused Import
    When enabled, the compiler will issue an error or a warning for unused import 
    reference 
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedImport"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Reporting Unused Private Members
    When enabled, the compiler will issue an error or a warning whenever a private 
    method or field is declared but never used within the same unit.
     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedPrivateMember"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"

 COMPILER / Reporting Synthetic Access Emulation
    When enabled, the compiler will issue an error or a warning whenever it emulates 
    access to a non-accessible member of an enclosing type. Such access can have
    performance implications.
     - option id:         "org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"

 COMPILER / Reporting Non-Externalized String Literal
    When enabled, the compiler will issue an error or a warning for non externalized 
    String literal (that is, not tagged with //$NON-NLS-$). 
     - option id:         "org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"
 
 COMPILER / Reporting Usage of 'assert' Identifier
    When enabled, the compiler will issue an error or a warning whenever 'assert' is 
    used as an identifier (reserved keyword in 1.4)
     - option id:         "org.eclipse.jdt.core.compiler.problem.assertIdentifier"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "ignore"
 
 COMPILER / Reporting Non-Static Reference to a Static Member
    When enabled, the compiler will issue an error or a warning whenever a static field
    or method is accessed with an expression receiver. A reference to a static member should
    be qualified with a type name.
     - option id:         "org.eclipse.jdt.core.compiler.problem.staticAccessReceiver"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"
 
 COMPILER / Reporting Assignment with no Effect
    When enabled, the compiler will issue an error or a warning whenever an assignment
    has no effect (e.g 'x = x').
     - option id:         "org.eclipse.jdt.core.compiler.problem.noEffectAssignment"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"
 
 COMPILER / Reporting Interface Method not Compatible with non-Inherited Methods
    When enabled, the compiler will issue an error or a warning whenever an interface
    defines a method incompatible with a non-inherited Object method. Until this conflict
    is resolved, such an interface cannot be implemented, For example, 
      interface I { 
         int clone();
      } 
     - option id:         "org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"
 
 COMPILER / Reporting Usage of char[] Expressions in String Concatenations
    When enabled, the compiler will issue an error or a warning whenever a char[] expression
    is used in String concatenations (for example, "hello" + new char[]{'w','o','r','l','d'}).
     - option id:         "org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion"
     - possible values:   { "error", "warning", "ignore" }
     - default:           "warning"

 COMPILER / Setting Source Compatibility Mode
    Specify whether source is 1.3 or 1.4 compatible. From 1.4 on, 'assert' is a keyword
    reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
   level should be set to "1.4" and the compliance mode should be "1.4".
     - option id:         "org.eclipse.jdt.core.compiler.source"
     - possible values:   { "1.3", "1.4" }
     - default:           "1.3"
 
 COMPILER / Setting Compliance Level
    Select the compliance level for the compiler. In "1.3" mode, source and target settings
    should not go beyond "1.3" level.
     - option id:         "org.eclipse.jdt.core.compiler.compliance"
     - possible values:   { "1.3", "1.4" }
     - default:           "1.3"
 
 COMPILER / Maximum number of problems reported per compilation unit
    Specify the maximum number of problems reported on each compilation unit.
     - option id:         "org.eclipse.jdt.core.compiler.maxProblemPerUnit"
     - possible values:	"" where  is zero or a positive integer (if zero then all problems are reported).
     - default:           "100"
 
 COMPILER / Define the Automatic Task Tags
    When the tag list is not empty, the compiler will issue a task marker whenever it encounters
    one of the corresponding tag inside any comment in Java source code.
    Generated task messages will include the tag, and range until the next line separator or comment ending.
    Note that tasks messages are trimmed.
     - option id:         "org.eclipse.jdt.core.compiler.taskTags"
     - possible values:   { "[,]*" } where  is a String without any wild-card or leading/trailing spaces 
     - default:           ""
 
 COMPILER / Define the Automatic Task Priorities
    In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
    of the task markers issued by the compiler.
    If the default is specified, the priority of each task marker is "NORMAL".
     - option id:         "org.eclipse.jdt.core.compiler.taskPriorities"
     - possible values:   { "[,]*" } where  is one of "HIGH", "NORMAL" or "LOW"
     - default:           ""

 BUILDER / Specifying Filters for Resource Copying Control
    Allow to specify some filters to control the resource copy process.
     - option id:         "org.eclipse.jdt.core.builder.resourceCopyExclusionFilter"
     - possible values:   { "[,]* } where  is a file name pattern (* and ? wild-cards allowed)
       or the name of a folder which ends with '/'
     - default:           ""
 
 BUILDER / Abort if Invalid Classpath
    Allow to toggle the builder to abort if the classpath is invalid
     - option id:         "org.eclipse.jdt.core.builder.invalidClasspath"
     - possible values:   { "abort", "ignore" }
     - default:           "abort"
 
 BUILDER / Cleaning Output Folder(s)
    Indicate whether the JavaBuilder is allowed to clean the output folders
    when performing full build operations.
     - option id:         "org.eclipse.jdt.core.builder.cleanOutputFolder"
     - possible values:   { "clean", "ignore" }
     - default:           "clean"
 
 BUILDER / Reporting Duplicate Resources
    Indicate the severity of the problem reported when more than one occurrence
    of a resource is to be copied into the output location.
     - option id:         "org.eclipse.jdt.core.builder.duplicateResourceTask"
     - possible values:   { "error", "warning" }
     - default:           "warning"
 
 JAVACORE / Computing Project Build Order
    Indicate whether JavaCore should enforce the project build order to be based on
    the classpath prerequisite chain. When requesting to compute, this takes over
    the platform default order (based on project references).
     - option id:         "org.eclipse.jdt.core.computeJavaBuildOrder"
     - possible values:   { "compute", "ignore" }
     - default:           "ignore"	 
 
 JAVACORE / Specify Default Source Encoding Format
    Get the encoding format for compiled sources. This setting is read-only, it is equivalent
    to 'ResourcesPlugin.getEncoding()'.
     - option id:         "org.eclipse.jdt.core.encoding"
     - possible values:   { any of the supported encoding name}.
     - default:           
 
 JAVACORE / Reporting Incomplete Classpath
    Indicate the severity of the problem reported when an entry on the classpath does not exist, 
    is not legite or is not visible (for example, a referenced project is closed).
     - option id:         "org.eclipse.jdt.core.incompleteClasspath"
     - possible values:   { "error", "warning"}
     - default:           "error"
 
 JAVACORE / Reporting Classpath Cycle
    Indicate the severity of the problem reported when a project is involved in a cycle.
     - option id:         "org.eclipse.jdt.core.circularClasspath"
     - possible values:   { "error", "warning" }
     - default:           "error"
 
 JAVACORE / Enabling Usage of Classpath Exclusion Patterns
    When disabled, no entry on a project classpath can be associated with
    an exclusion pattern.
     - option id:         "org.eclipse.jdt.core.classpath.exclusionPatterns"
     - possible values:   { "enabled", "disabled" }
     - default:           "enabled"
 
 JAVACORE / Enabling Usage of Classpath Multiple Output Locations
    When disabled, no entry on a project classpath can be associated with
    a specific output location, preventing thus usage of multiple output locations.
     - option id:         "org.eclipse.jdt.core.classpath.multipleOutputLocations"
     - possible values:   { "enabled", "disabled" }
     - default:           "enabled"
 
	FORMATTER / Inserting New Line Before Opening Brace
    When Insert, a new line is inserted before an opening brace, otherwise nothing
    is inserted
     - option id:         "org.eclipse.jdt.core.formatter.newline.openingBrace"
     - possible values:   { "insert", "do not insert" }
     - default:           "do not insert"
 
	FORMATTER / Inserting New Line Inside Control Statement
    When Insert, a new line is inserted between } and following else, catch, finally
     - option id:         "org.eclipse.jdt.core.formatter.newline.controlStatement"
     - possible values:   { "insert", "do not insert" }
     - default:           "do not insert"
 
	FORMATTER / Clearing Blank Lines
    When Clear all, all blank lines are removed. When Preserve one, only one is kept
    and all others removed.
     - option id:         "org.eclipse.jdt.core.formatter.newline.clearAll"
     - possible values:   { "clear all", "preserve one" }
     - default:           "preserve one"
 
	FORMATTER / Inserting New Line Between Else/If 
    When Insert, a blank line is inserted between an else and an if when they are 
    contiguous. When choosing to not insert, else-if will be kept on the same
    line when possible.
     - option id:         "org.eclipse.jdt.core.formatter.newline.elseIf"
     - possible values:   { "insert", "do not insert" }
     - default:           "do not insert"
 
	FORMATTER / Inserting New Line In Empty Block
    When insert, a line break is inserted between contiguous { and }, if } is not followed
    by a keyword.
     - option id:         "org.eclipse.jdt.core.formatter.newline.emptyBlock"
     - possible values:   { "insert", "do not insert" }
     - default:           "insert"
 
	FORMATTER / Splitting Lines Exceeding Length
    Enable splitting of long lines (exceeding the configurable length). Length of 0 will
    disable line splitting
     - option id:         "org.eclipse.jdt.core.formatter.lineSplit"
     - possible values:	"", where n is zero or a positive integer
     - default:           "80"
 
	FORMATTER / Compacting Assignment
    Assignments can be formatted asymmetrically, for example 'int x= 2;', when Normal, a space
    is inserted before the assignment operator
     - option id:         "org.eclipse.jdt.core.formatter.style.assignment"
     - possible values:   { "compact", "normal" }
     - default:           "normal"
 
	FORMATTER / Defining Indentation Character
    Either choose to indent with tab characters or spaces
     - option id:         "org.eclipse.jdt.core.formatter.tabulation.char"
     - possible values:   { "tab", "space" }
     - default:           "tab"
 
	FORMATTER / Defining Space Indentation Length
    When using spaces, set the amount of space characters to use for each 
    indentation mark.
     - option id:         "org.eclipse.jdt.core.formatter.tabulation.size"
     - possible values:	"", where n is a positive integer
     - default:           "4"
 
	FORMATTER / Inserting space in cast expression
    When Insert, a space is added between the type and the expression in a cast expression.
     - option id:         "org.eclipse.jdt.core.formatter.space.castexpression"
     - possible values:   { "insert", "do not insert" }
     - default:           "insert"
 
	CODEASSIST / Activate Visibility Sensitive Completion
    When active, completion doesn't show that you can not see
    (for example, you can not see private methods of a super class).
     - option id:         "org.eclipse.jdt.core.codeComplete.visibilityCheck"
     - possible values:   { "enabled", "disabled" }
     - default:           "disabled"
 
	CODEASSIST / Automatic Qualification of Implicit Members
    When active, completion automatically qualifies completion on implicit
    field references and message expressions.
     - option id:         "org.eclipse.jdt.core.codeComplete.forceImplicitQualification"
     - possible values:   { "enabled", "disabled" }
     - default:           "disabled"
 
  CODEASSIST / Define the Prefixes for Field Name
    When the prefixes is non empty, completion for field name will begin with
    one of the proposed prefixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.fieldPrefixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Prefixes for Static Field Name
    When the prefixes is non empty, completion for static field name will begin with
    one of the proposed prefixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.staticFieldPrefixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Prefixes for Local Variable Name
    When the prefixes is non empty, completion for local variable name will begin with
    one of the proposed prefixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.localPrefixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Prefixes for Argument Name
    When the prefixes is non empty, completion for argument name will begin with
    one of the proposed prefixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.argumentPrefixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Suffixes for Field Name
    When the suffixes is non empty, completion for field name will end with
    one of the proposed suffixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.fieldSuffixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Suffixes for Static Field Name
    When the suffixes is non empty, completion for static field name will end with
    one of the proposed suffixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.staticFieldSuffixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Suffixes for Local Variable Name
    When the suffixes is non empty, completion for local variable name will end with
    one of the proposed suffixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.localSuffixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
  CODEASSIST / Define the Suffixes for Argument Name
    When the suffixes is non empty, completion for argument name will end with
    one of the proposed suffixes.
     - option id:         "org.eclipse.jdt.core.codeComplete.argumentSuffixes"
     - possible values:   { "[,]*" } where  is a String without any wild-card 
     - default:           ""
 
Returns:
a mutable table containing the default settings of all known options (key type: String; value type: String)
See Also:
setOptions(java.util.Hashtable)

getJavaCore

public static JavaCore getJavaCore()
Returns the single instance of the Java core plug-in runtime class. Equivalent to (JavaCore) getPlugin().
Returns:
the single instance of the Java core plug-in runtime class

getOption

public static String getOption(String optionName)
Helper method for returning one option value only. Equivalent to (String)JavaCore.getOptions().get(optionName) Note that it may answer null if this option does not exist.

For a complete description of the configurable options, see getDefaultOptions.

Parameters:
optionName - the name of an option
Returns:
the String value of a given option
Since:
2.0
See Also:
getDefaultOptions()

getOptions

public static Hashtable getOptions()
Returns the table of the current options. Initially, all options have their default values, and this method returns a table that includes all known options.

For a complete description of the configurable options, see getDefaultOptions.

Returns:
table of current settings of all options (key type: String; value type: String)
See Also:
getDefaultOptions()

getPlugin

public static Plugin getPlugin()
Returns the single instance of the Java core plug-in runtime class.
Returns:
the single instance of the Java core plug-in runtime class

getResolvedClasspathEntry

public static IClasspathEntry getResolvedClasspathEntry(IClasspathEntry entry)
This is a helper method, which returns the resolved classpath entry denoted by a given entry (if it is a variable entry). It is obtained by resolving the variable reference in the first segment. Returns null if unable to resolve using the following algorithm:
  • if variable segment cannot be resolved, returns null
  • finds a project, JAR or binary folder in the workspace at the resolved path location
  • if none finds an external JAR file or folder outside the workspace at the resolved path location
  • if none returns null

Variable source attachment path and root path are also resolved and recorded in the resulting classpath entry.

NOTE: This helper method does not handle classpath containers, for which should rather be used JavaCore#getClasspathContainer(IPath, IJavaProject).

Parameters:
entry - the given variable entry
Returns:
the resolved library or project classpath entry, or null if the given variable entry could not be resolved to a valid classpath entry

getResolvedVariablePath

public static IPath getResolvedVariablePath(IPath variablePath)
Resolve a variable path (helper method).
Parameters:
variablePath - the given variable path
Returns:
the resolved variable path or null if none

getSharedWorkingCopies

public static IWorkingCopy[] getSharedWorkingCopies(IBufferFactory factory)
Answers the shared working copies currently registered for this buffer factory. Working copies can be shared by several clients using the same buffer factory,see IWorkingCopy.getSharedWorkingCopy.
Parameters:
factory - the given buffer factory
Returns:
the list of shared working copies for a given buffer factory
Since:
2.0
See Also:
IWorkingCopy

initializeDefaultPluginPreferences

protected void initializeDefaultPluginPreferences()
Initializes the default preferences settings for this plug-in.
Overrides:
initializeDefaultPluginPreferences in class Plugin

isReferencedBy

public static boolean isReferencedBy(IJavaElement element,
                                     IMarker marker)
                              throws CoreException
Returns whether the given marker references the given Java element. Used for markers, which denote a Java element rather than a resource.
Parameters:
element - the element
marker - the marker
Returns:
true if the marker references the element, false otherwise
Throws:
CoreException - if the IMarker.getAttribute on the marker fails

isReferencedBy

public static boolean isReferencedBy(IJavaElement element,
                                     IMarkerDelta markerDelta)
                              throws CoreException
Returns whether the given marker delta references the given Java element. Used for markers deltas, which denote a Java element rather than a resource.
Parameters:
element - the element
markerDelta - the marker delta
Returns:
true if the marker delta references the element
Throws:
CoreException - if the IMarkerDelta.getAttribute on the marker delta fails

newContainerEntry

public static IClasspathEntry newContainerEntry(IPath containerPath)
Creates and returns a new classpath entry of kind CPE_CONTAINER for the given path. The path of the container will be used during resolution so as to map this container entry to a set of other classpath entries the container is acting for.

A container entry allows to express indirect references to a set of libraries, projects and variable entries, which can be interpreted differently for each Java project where it is used. A classpath container entry can be resolved using JavaCore.getResolvedClasspathContainer, and updated with JavaCore.classpathContainerChanged

A container is exclusively resolved by a ClasspathContainerInitializer registered onto the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

A container path must be formed of at least one segment, where:

Example of an ClasspathContainerInitializer for a classpath container denoting a default JDK container: containerEntry = JavaCore.newContainerEntry(new Path("MyProvidedJDK/default"));

Note that this operation does not attempt to validate classpath containers or access the resources at the given paths.

The resulting entry is not exported to dependent projects. This method is equivalent to newContainerEntry(-,false).

Parameters:
containerPath - the path identifying the container, it must be formed of two segments
Returns:
a new container classpath entry
Since:
2.0
See Also:
getClasspathContainer(IPath, IJavaProject), newContainerEntry(IPath, boolean)

newContainerEntry

public static IClasspathEntry newContainerEntry(IPath containerPath,
                                                boolean isExported)
Creates and returns a new classpath entry of kind CPE_CONTAINER for the given path. The path of the container will be used during resolution so as to map this container entry to a set of other classpath entries the container is acting for.

A container entry allows to express indirect references to a set of libraries, projects and variable entries, which can be interpreted differently for each Java project where it is used. A classpath container entry can be resolved using JavaCore.getResolvedClasspathContainer, and updated with JavaCore.classpathContainerChanged

A container is exclusively resolved by a ClasspathContainerInitializer registered onto the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

A container path must be formed of at least one segment, where:

Example of an ClasspathContainerInitializer for a classpath container denoting a default JDK container: containerEntry = JavaCore.newContainerEntry(new Path("MyProvidedJDK/default"));

Note that this operation does not attempt to validate classpath containers or access the resources at the given paths.

Parameters:
containerPath - the path identifying the container, it must be formed of at least one segment (ID+hints)
isExported - a boolean indicating whether this entry is contributed to dependent projects in addition to the output location
Returns:
a new container classpath entry
Since:
2.0
See Also:
getClasspathContainer(IPath, IJavaProject), setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor), newContainerEntry(IPath, boolean)

newLibraryEntry

public static IClasspathEntry newLibraryEntry(IPath path,
                                              IPath sourceAttachmentPath,
                                              IPath sourceAttachmentRootPath)
Creates and returns a new non-exported classpath entry of kind CPE_LIBRARY for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type IClassFile.

A library entry is used to denote a prerequisite JAR or root folder containing binaries. The target JAR or folder can either be defined internally to the workspace (absolute path relative to the workspace root) or externally to the workspace (absolute path in the file system).

e.g. Here are some examples of binary path usage

Note that this operation does not attempt to validate or access the resources at the given paths.

The resulting entry is not exported to dependent projects. This method is equivalent to newLibraryEntry(-,-,-,false).

Parameters:
path - the absolute path of the binary archive
sourceAttachmentPath - the absolute path of the corresponding source archive or folder, or null if none
sourceAttachmentRootPath - the location of the root within the source archive or folder or null if this location should be automatically detected.
Returns:
a new library classpath entry
See Also:
newLibraryEntry(IPath, IPath, IPath, boolean)

newLibraryEntry

public static IClasspathEntry newLibraryEntry(IPath path,
                                              IPath sourceAttachmentPath,
                                              IPath sourceAttachmentRootPath,
                                              boolean isExported)
Creates and returns a new classpath entry of kind CPE_LIBRARY for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type IClassFile.

A library entry is used to denote a prerequisite JAR or root folder containing binaries. The target JAR or folder can either be defined internally to the workspace (absolute path relative to the workspace root) or externally to the workspace (absolute path in the file system).

e.g. Here are some examples of binary path usage

Note that this operation does not attempt to validate or access the resources at the given paths.

Parameters:
path - the absolute path of the binary archive
sourceAttachmentPath - the absolute path of the corresponding source archive or folder, or null if none
sourceAttachmentRootPath - the location of the root within the source archive or folder or null if this location should be automatically detected.
isExported - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
a new library classpath entry
Since:
2.0

newProjectEntry

public static IClasspathEntry newProjectEntry(IPath path)
Creates and returns a new non-exported classpath entry of kind CPE_PROJECT for the project identified by the given absolute path.

A project entry is used to denote a prerequisite project on a classpath. The referenced project will be contributed as a whole, either as sources (in the Java Model, it contributes all its package fragment roots) or as binaries (when building, it contributes its whole output location).

A project reference allows to indirect through another project, independently from its internal layout.

The prerequisite project is referred to using an absolute path relative to the workspace root.

The resulting entry is not exported to dependent projects. This method is equivalent to newProjectEntry(_,false).

Parameters:
path - the absolute path of the binary archive
Returns:
a new project classpath entry
See Also:
newProjectEntry(IPath, boolean)

newProjectEntry

public static IClasspathEntry newProjectEntry(IPath path,
                                              boolean isExported)
Creates and returns a new classpath entry of kind CPE_PROJECT for the project identified by the given absolute path.

A project entry is used to denote a prerequisite project on a classpath. The referenced project will be contributed as a whole, either as sources (in the Java Model, it contributes all its package fragment roots) or as binaries (when building, it contributes its whole output location).

A project reference allows to indirect through another project, independently from its internal layout.

The prerequisite project is referred to using an absolute path relative to the workspace root.

Parameters:
path - the absolute path of the prerequisite project
isExported - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
a new project classpath entry
Since:
2.0

newRegion

public static IRegion newRegion()
Returns a new empty region.
Returns:
a new empty region

newSourceEntry

public static IClasspathEntry newSourceEntry(IPath path)
Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path. This specifies that all package fragments within the root will have children of type ICompilationUnit.

The source folder is referred to using an absolute path relative to the workspace root, e.g. /Project/src. A project's source folders are located with that project. That is, a source classpath entry specifying the path /P1/src is only usable for project P1.

The source classpath entry created by this method includes all source files below the given workspace-relative path. To selectively exclude some of these source files, use the factory method JavaCore.newSourceEntry(IPath,IPath[]) instead.

Note that all sources/binaries inside a project are contributed as a whole through a project entry (see JavaCore.newProjectEntry). Particular source entries cannot be selectively exported.

Parameters:
path - the absolute workspace-relative path of a source folder
Returns:
a new source classpath entry with not exclusion patterns
See Also:
newSourceEntry(org.eclipse.core.runtime.IPath,org.eclipse.core.runtime.IPath[])

newSourceEntry

public static IClasspathEntry newSourceEntry(IPath path,
                                             IPath[] exclusionPatterns)
Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns. This specifies that all package fragments within the root will have children of type ICompilationUnit.

The source folder is referred to using an absolute path relative to the workspace root, e.g. /Project/src. A project's source folders are located with that project. That is, a source classpath entry specifying the path /P1/src is only usable for project P1.

The source classpath entry created by this method includes all source files below the given workspace-relative path except for those matched by one (or more) of the given exclusion patterns. Each exclusion pattern is represented by a relative path, which is interpreted as relative to the source folder. For example, if the source folder path is /Project/src and the exclusion pattern is com/xyz/tests/**, then source files like /Project/src/com/xyz/Foo.java and /Project/src/com/xyz/utils/Bar.java would be included, whereas /Project/src/com/xyz/tests/T1.java and /Project/src/com/xyz/tests/quick/T2.java would be excluded. Exclusion patterns can contain can contain '**', '*' or '?' wildcards; see IClasspathEntry.getExclusionPatterns for the full description of the syntax and semantics of exclusion patterns.

If the empty list of exclusion patterns is specified, the source folder will automatically include all resources located inside the source folder. In that case, the result is entirely equivalent to using the factory method JavaCore.newSourceEntry(IPath).

Note that all sources/binaries inside a project are contributed as a whole through a project entry (see JavaCore.newProjectEntry). Particular source entries cannot be selectively exported.

Parameters:
path - the absolute workspace-relative path of a source folder
exclusionPatterns - the possibly empty list of exclusion patterns represented as relative paths
Returns:
a new source classpath entry with the given exclusion patterns
Since:
2.1
See Also:
newSourceEntry(org.eclipse.core.runtime.IPath), IClasspathEntry.getExclusionPatterns()

newSourceEntry

public static IClasspathEntry newSourceEntry(IPath path,
                                             IPath[] exclusionPatterns,
                                             IPath specificOutputLocation)
Creates and returns a new classpath entry of kind CPE_SOURCE for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location). All package fragments within the root will have children of type ICompilationUnit.

The source folder is referred to using an absolute path relative to the workspace root, e.g. /Project/src. A project's source folders are located with that project. That is, a source classpath entry specifying the path /P1/src is only usable for project P1.

The source classpath entry created by this method includes all source files below the given workspace-relative path except for those matched by one (or more) of the given exclusion patterns. Each exclusion pattern is represented by a relative path, which is interpreted as relative to the source folder. For example, if the source folder path is /Project/src and the exclusion pattern is com/xyz/tests/**, then source files like /Project/src/com/xyz/Foo.java and /Project/src/com/xyz/utils/Bar.java would be included, whereas /Project/src/com/xyz/tests/T1.java and /Project/src/com/xyz/tests/quick/T2.java would be excluded. Exclusion patterns can contain can contain '**', '*' or '?' wildcards; see IClasspathEntry.getExclusionPatterns for the full description of the syntax and semantics of exclusion patterns.

If the empty list of exclusion patterns is specified, the source folder will automatically include all resources located inside the source folder. In that case, the result is entirely equivalent to using the factory method JavaCore.newSourceEntry(IPath).

Additionally, a source entry can be associated with a specific output location. By doing so, the Java builder will ensure that the generated ".class" files will be issued inside this output location, as opposed to be generated into the project default output location (when output location is null). Note that multiple source entries may target the same output location. The output location is referred to using an absolute path relative to the workspace root, e.g. "/Project/bin", it must be located inside the same project as the source folder.

Also note that all sources/binaries inside a project are contributed as a whole through a project entry (see JavaCore.newProjectEntry). Particular source entries cannot be selectively exported.

Parameters:
path - the absolute workspace-relative path of a source folder
exclusionPatterns - the possibly empty list of exclusion patterns represented as relative paths
outputLocation - the specific output location for this source entry (null if using project default ouput location)
Returns:
a new source classpath entry with the given exclusion patterns
Since:
2.1
See Also:
newSourceEntry(org.eclipse.core.runtime.IPath), IClasspathEntry.getExclusionPatterns(), IClasspathEntry.getOutputLocation()

newVariableEntry

public static IClasspathEntry newVariableEntry(IPath variablePath,
                                               IPath variableSourceAttachmentPath,
                                               IPath sourceAttachmentRootPath)
Creates and returns a new non-exported classpath entry of kind CPE_VARIABLE for the given path. The first segment of the path is the name of a classpath variable. The trailing segments of the path will be appended to resolved variable path.

A variable entry allows to express indirect references on a classpath to other projects or libraries, depending on what the classpath variable is referring.

It is possible to register an automatic initializer (ClasspathVariableInitializer), which will be invoked through the extension point "org.eclipse.jdt.core.classpathVariableInitializer". After resolution, a classpath variable entry may either correspond to a project or a library entry.

e.g. Here are some examples of variable path usage

Note that this operation does not attempt to validate classpath variables or access the resources at the given paths.

The resulting entry is not exported to dependent projects. This method is equivalent to newVariableEntry(-,-,-,false).

Parameters:
variablePath - the path of the binary archive; first segment is the name of a classpath variable
variableSourceAttachmentPath - the path of the corresponding source archive, or null if none; if present, the first segment is the name of a classpath variable (not necessarily the same variable as the one that begins variablePath)
sourceAttachmentRootPath - the location of the root within the source archive or null if archivePath is also null
Returns:
a new library classpath entry
See Also:
newVariableEntry(IPath, IPath, IPath, boolean)

newVariableEntry

public static IClasspathEntry newVariableEntry(IPath variablePath,
                                               IPath variableSourceAttachmentPath,
                                               IPath variableSourceAttachmentRootPath,
                                               boolean isExported)
Creates and returns a new non-exported classpath entry of kind CPE_VARIABLE for the given path. The first segment of the path is the name of a classpath variable. The trailing segments of the path will be appended to resolved variable path.

A variable entry allows to express indirect references on a classpath to other projects or libraries, depending on what the classpath variable is referring.

It is possible to register an automatic initializer (ClasspathVariableInitializer), which will be invoked through the extension point "org.eclipse.jdt.core.classpathVariableInitializer". After resolution, a classpath variable entry may either correspond to a project or a library entry.

e.g. Here are some examples of variable path usage

Note that this operation does not attempt to validate classpath variables or access the resources at the given paths.

Parameters:
variablePath - the path of the binary archive; first segment is the name of a classpath variable
variableSourceAttachmentPath - the path of the corresponding source archive, or null if none; if present, the first segment is the name of a classpath variable (not necessarily the same variable as the one that begins variablePath)
sourceAttachmentRootPath - the location of the root within the source archive or null if archivePath is also null
isExported - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
a new variable classpath entry
Since:
2.0

removeClasspathVariable

public static void removeClasspathVariable(String variableName)
Deprecated. - use version with extra IProgressMonitor

Removed the given classpath variable. Does nothing if no value was set for this classpath variable.

This functionality cannot be used while the resource tree is locked.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Parameters:
variableName - the name of the classpath variable
See Also:
setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath)

removeClasspathVariable

public static void removeClasspathVariable(String variableName,
                                           IProgressMonitor monitor)
Removed the given classpath variable. Does nothing if no value was set for this classpath variable.

This functionality cannot be used while the resource tree is locked.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Parameters:
variableName - the name of the classpath variable
monitor - the progress monitor to report progress
See Also:
setClasspathVariable(java.lang.String, org.eclipse.core.runtime.IPath)

removeElementChangedListener

public static void removeElementChangedListener(IElementChangedListener listener)
Removes the given element changed listener. Has no affect if an identical listener is not registered.
Parameters:
listener - the listener

run

public static void run(IWorkspaceRunnable action,
                       IProgressMonitor monitor)
                throws CoreException
Runs the given action as an atomic Java model operation.

After running a method that modifies Java elements, registered listeners receive after-the-fact notification of what just transpired, in the form of a element changed event. This method allows clients to call a number of methods that modify java elements and only have element changed event notifications reported at the end of the entire batch.

If this method is called outside the dynamic scope of another such call, this method runs the action and then reports a single element changed event describing the net effect of all changes done to java elements by the action.

If this method is called in the dynamic scope of another such call, this method simply runs the action.

Parameters:
action - the action to perform
monitor - a progress monitor, or null if progress reporting and cancellation are not desired
Throws:
CoreException - if the operation failed.
Since:
2.1

setClasspathContainer

public static void setClasspathContainer(IPath containerPath,
                                         IJavaProject[] affectedProjects,
                                         IClasspathContainer[] respectiveContainers,
                                         IProgressMonitor monitor)
                                  throws JavaModelException
Bind a container reference path to some actual containers (IClasspathContainer). This API must be invoked whenever changes in container need to be reflected onto the JavaModel. Containers can have distinct values in different projects, therefore this API considers a set of projects with their respective containers.

containerPath is the path under which these values can be referenced through container classpath entries (IClasspathEntry#CPE_CONTAINER). A container path is formed by a first ID segment followed with extra segments, which can be used as additional hints for the resolution. The container ID is used to identify a ClasspathContainerInitializer registered on the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

There is no assumption that each individual container value passed in argument (respectiveContainers) must answer the exact same path when requested IClasspathContainer#getPath. Indeed, the containerPath is just an indication for resolving it to an actual container object. It can be delegated to a ClasspathContainerInitializer, which can be activated through the extension point "org.eclipse.jdt.core.ClasspathContainerInitializer").

In reaction to changing container values, the JavaModel will be updated to reflect the new state of the updated container.

This functionality cannot be used while the resource tree is locked.

Classpath container values are persisted locally to the workspace, but are not preserved from a session to another. It is thus highly recommended to register a ClasspathContainerInitializer for each referenced container (through the extension point "org.eclipse.jdt.core.ClasspathContainerInitializer").

Note: setting a container to null will cause it to be lazily resolved again whenever its value is required. In particular, this will cause a registered initializer to be invoked again.

Parameters:
containerPath - - the name of the container reference, which is being updated
affectedProjects - - the set of projects for which this container is being bound
respectiveContainers - - the set of respective containers for the affected projects
monitor - a monitor to report progress
Since:
2.0
See Also:
ClasspathContainerInitializer, getClasspathContainer(IPath, IJavaProject), IClasspathContainer

setClasspathVariable

public static void setClasspathVariable(String variableName,
                                        IPath path)
                                 throws JavaModelException
Deprecated. - use API with IProgressMonitor

Sets the value of the given classpath variable. The path must have at least one segment.

This functionality cannot be used while the resource tree is locked.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Parameters:
variableName - the name of the classpath variable
path - the path
See Also:
getClasspathVariable(java.lang.String)

setClasspathVariable

public static void setClasspathVariable(String variableName,
                                        IPath path,
                                        IProgressMonitor monitor)
                                 throws JavaModelException
Sets the value of the given classpath variable. The path must not be null.

This functionality cannot be used while the resource tree is locked.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Updating a variable with the same value has no effect.

Parameters:
variableName - the name of the classpath variable
path - the path
monitor - a monitor to report progress
See Also:
getClasspathVariable(java.lang.String)

setClasspathVariables

public static void setClasspathVariables(String[] variableNames,
                                         IPath[] paths,
                                         IProgressMonitor monitor)
                                  throws JavaModelException
Sets the values of all the given classpath variables at once. Null paths can be used to request corresponding variable removal.

This functionality cannot be used while the resource tree is locked.

Classpath variable values are persisted locally to the workspace, and are preserved from session to session.

Updating a variable with the same value has no effect.

Parameters:
variableNames - an array of names for the updated classpath variables
paths - an array of path updates for the modified classpath variables (null meaning that the corresponding value will be removed
monitor - a monitor to report progress
Since:
2.0
See Also:
getClasspathVariable(java.lang.String)

setInitializationData

public void setInitializationData(IConfigurationElement cfig,
                                  String propertyName,
                                  Object data)
                           throws CoreException
Specified by:
setInitializationData in interface IExecutableExtension

setOptions

public static void setOptions(Hashtable newOptions)
Sets the current table of options. All and only the options explicitly included in the given table are remembered; all previous option settings are forgotten, including ones not explicitly mentioned.

For a complete description of the configurable options, see getDefaultOptions.

Parameters:
newOptions - the new options (key type: String; value type: String), or null to reset all options to their default values
See Also:
getDefaultOptions()

shutdown

public void shutdown()
Shutdown the JavaCore plug-in.

De-registers the JavaModelManager as a resource changed listener and save participant.

Overrides:
shutdown in class Plugin
See Also:
Plugin.shutdown()

startup

public void startup()
Startup of the JavaCore plug-in.

Registers the JavaModelManager as a resource changed listener and save participant. Starts the background indexing, and restore saved classpath variable values.

Overrides:
startup in class Plugin
See Also:
Plugin.startup()

Eclipse JDT
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.