org.eclipse.jpt.core
Interface JpaProject

All Superinterfaces:
org.eclipse.core.runtime.IAdaptable, IResourcePart, JpaNode, Model
All Known Subinterfaces:
EclipseLinkJpaProject, JpaProject2_0

public interface JpaProject
extends JpaNode

A JPA project is associated with an Eclipse project (and its corresponding Java project). It holds the "resource" model that corresponds to the various JPA-related resources (the persistence.xml file, its mapping files [orm.xml], and the Java source files). It also holds the "context" model that represents the JPA metadata, as derived from spec-defined defaults, Java source code annotations, and XML descriptors.

Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Since:
2.0
Version:
2.3

Nested Class Summary
static interface JpaProject.Config
          The settings used to construct a JPA project.
static interface JpaProject.Updater
          Define a strategy that can be used to "update" a JPA project whenever something changes.
 
Field Summary
static java.lang.String DISCOVERS_ANNOTATED_CLASSES_PROPERTY
          ID string used when discoversAnnotatedClasses property is changed.
static java.lang.String EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION
          ID string used when the JPA project's collection of external Java resource compilation units changes.
static java.lang.String JPA_FILES_COLLECTION
          ID string used when the JPA project's collection of JPA files changes.
static java.lang.String USER_OVERRIDE_DEFAULT_CATALOG_PROPERTY
          ID string used when the JPA project's user override default catalog changes.
static java.lang.String USER_OVERRIDE_DEFAULT_SCHEMA_PROPERTY
          ID string used when the JPA project's user override default schema changes.
 
Method Summary
 java.util.Iterator<java.lang.String> annotatedJavaSourceClassNames()
          Return the names of the JPA project's annotated Java classes (ignoring classes in JARs referenced in the persistence.xml).
 org.eclipse.core.resources.IFile convertToPlatformFile(java.lang.String fileName)
          Convert the specified file name to a file mapped to the appropriate deployment location.
 boolean discoversAnnotatedClasses()
          Return whether the JPA project will "discover" annotated classes automatically, as opposed to requiring the classes to be listed in the persistence.xml or one of its mapping files.
 void dispose()
          The JPA project has been removed from the JPA model.
 java.util.Iterator<JavaResourceCompilationUnit> externalJavaResourceCompilationUnits()
          Return the JPA project's external Java resource compilation units.
 int externalJavaResourceCompilationUnitsSize()
          Return the size of the JPA project's external Java resource compilation units.
 ConnectionProfile getConnectionProfile()
          Return the JPA project's connection.
 JpaDataSource getDataSource()
          Return the data source the JPA project is mapped to.
 java.lang.String getDefaultCatalog()
          Return the JPA project's default catalog; which is either the user override catalog or the database's default catalog.
 Catalog getDefaultDbCatalog()
          Return the JPA project's default database catalog.
 Schema getDefaultDbSchema()
          Return the JPA project's default database schema.
 SchemaContainer getDefaultDbSchemaContainer()
          Return the JPA project's default database schema container; which is either the JPA project's default catalog or the JPA project's database, depending on how the DTP model is implemented.
 JpaXmlResource getDefaultOrmXmlResource()
          Return the XML resource model corresponding to the file META-INF/orm.xml if that file has the mapping file content type.
 java.lang.String getDefaultSchema()
          Return the JPA project's default schema; which can be one of the following: the user override schema the default catalog's default schema the database's default schema (if catalogs are not supported)
 JavaResourcePersistentTypeCache getExternalJavaResourcePersistentTypeCache()
          Return the JPA project's external Java resource persistent type cache.
 org.eclipse.jdt.core.IJavaProject getJavaProject()
          Return the Java project associated with the JPA project.
 JavaResourcePackageFragmentRoot getJavaResourcePackageFragmentRoot(java.lang.String jarFileName)
          Return the Java resource package fragement root for the specified JAR.
 JavaResourcePersistentType getJavaResourcePersistentType(java.lang.String typeName)
          Return the Java resource persistent type for the specified type.
 JpaFile getJpaFile(org.eclipse.core.resources.IFile file)
          Return the JPA file corresponding to the specified file.
 JpaPlatform getJpaPlatform()
          Return the vendor-specific JPA platform that builds the JPA project and its contents.
 JpaXmlResource getMappingFileXmlResource(java.lang.String filePath)
          Return the XML resource model corresponding to the specified file if that file has the mapping file content type ("org.eclipse.jpt.core.content.mappingFile")
 CommandExecutor getModifySharedDocumentCommandExecutor()
          Return the project-wide implementation of the CommandExecutor interface.
 java.lang.String getName()
          Return the JPA project's name, which is the same as the associated Eclipse project's name.
 JpaXmlResource getPersistenceXmlResource()
          Return the XML resource model corresponding to the file META-INF/persistence.xml if that file has the persistence content type ("org.eclipse.jpt.core.content.persistence").
 org.eclipse.core.resources.IProject getProject()
          Return the Eclipse project associated with the JPA project.
 JpaRootContextNode getRootContextNode()
          Return the root of the JPA project's context model.
 JpaProject.Updater getUpdater()
          Return the implementation of the Updater interface that will be used to "update" the JPA project.
 java.lang.String getUserOverrideDefaultCatalog()
          Return the identifier of the catalog to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.
 java.lang.String getUserOverrideDefaultSchema()
          Return the identifier of the schema to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.
 void javaElementChanged(org.eclipse.jdt.core.ElementChangedEvent event)
          Synchronize the JPA project with the specified Java change.
 java.util.Iterator<JpaFile> jpaFiles()
          Return the JPA project's JPA files.
 int jpaFilesSize()
          Return the size of the JPA project's JPA files.
 java.util.Iterator<java.lang.String> mappedJavaSourceClassNames()
          Return the names of the JPA project's mapped (i.e.
 void projectChanged(org.eclipse.core.resources.IResourceDelta delta)
          Synchronize the JPA project with the specified project resource delta, watching for added and removed files in particular.
 void setDiscoversAnnotatedClasses(boolean discoversAnnotatedClasses)
          Set whether the JPA project will "discover" annotated classes automatically, as opposed to requiring the classes to be listed in the persistence.xml.
 void setThreadLocalModifySharedDocumentCommandExecutor(CommandExecutor commandExecutor)
          Set a thread-specific implementation of the CommandExecutor interface that will be used to execute a command to modify a shared document.
 void setUpdater(JpaProject.Updater updater)
          Set the implementation of the Updater interface that will be used to "update" the JPA project.
 void setUserOverrideDefaultCatalog(java.lang.String catalog)
          Set the identifier of the catalog to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.
 void setUserOverrideDefaultSchema(java.lang.String schema)
          Set the identifier of the schema to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.
 void synchronizeContextModel()
           
 void update()
          The JPA project's state has changed, "update" those parts of the JPA project that are dependent on other parts of the JPA project.
 org.eclipse.core.runtime.IStatus update(org.eclipse.core.runtime.IProgressMonitor monitor)
          This is the callback used by the updater to perform the actual "update", which most likely will happen asynchronously.
 void updateQuiesced()
          This is the callback used by the updater to notify the JPA project that the "update" has quiesced (i.e.
 java.util.Iterator<org.eclipse.wst.validation.internal.provisional.core.IMessage> validationMessages(org.eclipse.wst.validation.internal.provisional.core.IReporter reporter)
          Return JPA project's validation messages.
 
Methods inherited from interface org.eclipse.jpt.core.JpaNode
getJpaProject, getParent
 
Methods inherited from interface org.eclipse.jpt.utility.model.Model
addChangeListener, addCollectionChangeListener, addListChangeListener, addPropertyChangeListener, addStateChangeListener, addTreeChangeListener, removeChangeListener, removeCollectionChangeListener, removeListChangeListener, removePropertyChangeListener, removeStateChangeListener, removeTreeChangeListener
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.jpt.core.IResourcePart
getResource
 

Field Detail

JPA_FILES_COLLECTION

static final java.lang.String JPA_FILES_COLLECTION
ID string used when the JPA project's collection of JPA files changes.

See Also:
Model.addCollectionChangeListener(String, org.eclipse.jpt.utility.model.listener.CollectionChangeListener), Constant Field Values

EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION

static final java.lang.String EXTERNAL_JAVA_RESOURCE_COMPILATION_UNITS_COLLECTION
ID string used when the JPA project's collection of external Java resource compilation units changes.

See Also:
Model.addCollectionChangeListener(String, org.eclipse.jpt.utility.model.listener.CollectionChangeListener), Constant Field Values

USER_OVERRIDE_DEFAULT_CATALOG_PROPERTY

static final java.lang.String USER_OVERRIDE_DEFAULT_CATALOG_PROPERTY
ID string used when the JPA project's user override default catalog changes.

See Also:
Model.addPropertyChangeListener(String, org.eclipse.jpt.utility.model.listener.PropertyChangeListener), Constant Field Values

USER_OVERRIDE_DEFAULT_SCHEMA_PROPERTY

static final java.lang.String USER_OVERRIDE_DEFAULT_SCHEMA_PROPERTY
ID string used when the JPA project's user override default schema changes.

See Also:
Model.addPropertyChangeListener(String, org.eclipse.jpt.utility.model.listener.PropertyChangeListener), Constant Field Values

DISCOVERS_ANNOTATED_CLASSES_PROPERTY

static final java.lang.String DISCOVERS_ANNOTATED_CLASSES_PROPERTY
ID string used when discoversAnnotatedClasses property is changed.

See Also:
Model.addPropertyChangeListener(String, org.eclipse.jpt.utility.model.listener.PropertyChangeListener), Constant Field Values
Method Detail

getName

java.lang.String getName()
Return the JPA project's name, which is the same as the associated Eclipse project's name.


getProject

org.eclipse.core.resources.IProject getProject()
Return the Eclipse project associated with the JPA project.


getJavaProject

org.eclipse.jdt.core.IJavaProject getJavaProject()
Return the Java project associated with the JPA project.


getJpaPlatform

JpaPlatform getJpaPlatform()
Return the vendor-specific JPA platform that builds the JPA project and its contents.


getRootContextNode

JpaRootContextNode getRootContextNode()
Return the root of the JPA project's context model.


dispose

void dispose()
The JPA project has been removed from the JPA model. Clean up any hooks to external resources etc.


jpaFiles

java.util.Iterator<JpaFile> jpaFiles()
Return the JPA project's JPA files.


jpaFilesSize

int jpaFilesSize()
Return the size of the JPA project's JPA files.


getJpaFile

JpaFile getJpaFile(org.eclipse.core.resources.IFile file)
Return the JPA file corresponding to the specified file. Return null if there is no JPA file associated with the specified file.


externalJavaResourceCompilationUnits

java.util.Iterator<JavaResourceCompilationUnit> externalJavaResourceCompilationUnits()
Return the JPA project's external Java resource compilation units.


externalJavaResourceCompilationUnitsSize

int externalJavaResourceCompilationUnitsSize()
Return the size of the JPA project's external Java resource compilation units.


getExternalJavaResourcePersistentTypeCache

JavaResourcePersistentTypeCache getExternalJavaResourcePersistentTypeCache()
Return the JPA project's external Java resource persistent type cache.


getPersistenceXmlResource

JpaXmlResource getPersistenceXmlResource()
Return the XML resource model corresponding to the file META-INF/persistence.xml if that file has the persistence content type ("org.eclipse.jpt.core.content.persistence").

See Also:
JptCorePlugin.DEFAULT_PERSISTENCE_XML_FILE_PATH

getMappingFileXmlResource

JpaXmlResource getMappingFileXmlResource(java.lang.String filePath)
Return the XML resource model corresponding to the specified file if that file has the mapping file content type ("org.eclipse.jpt.core.content.mappingFile")

See Also:
JptCorePlugin.MAPPING_FILE_CONTENT_TYPE

getDefaultOrmXmlResource

JpaXmlResource getDefaultOrmXmlResource()
Return the XML resource model corresponding to the file META-INF/orm.xml if that file has the mapping file content type.

See Also:
JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH

annotatedJavaSourceClassNames

java.util.Iterator<java.lang.String> annotatedJavaSourceClassNames()
Return the names of the JPA project's annotated Java classes (ignoring classes in JARs referenced in the persistence.xml).


mappedJavaSourceClassNames

java.util.Iterator<java.lang.String> mappedJavaSourceClassNames()
Return the names of the JPA project's mapped (i.e. annotated with @Entity, etc.) Java classes (ignoring classes in JARs referenced in the persistence.xml).


getJavaResourcePersistentType

JavaResourcePersistentType getJavaResourcePersistentType(java.lang.String typeName)
Return the Java resource persistent type for the specified type. Return null if invalid or absent.


getJavaResourcePackageFragmentRoot

JavaResourcePackageFragmentRoot getJavaResourcePackageFragmentRoot(java.lang.String jarFileName)
Return the Java resource package fragement root for the specified JAR. Return null if absent.


projectChanged

void projectChanged(org.eclipse.core.resources.IResourceDelta delta)
Synchronize the JPA project with the specified project resource delta, watching for added and removed files in particular.


javaElementChanged

void javaElementChanged(org.eclipse.jdt.core.ElementChangedEvent event)
Synchronize the JPA project with the specified Java change.


synchronizeContextModel

void synchronizeContextModel()

getUpdater

JpaProject.Updater getUpdater()
Return the implementation of the Updater interface that will be used to "update" the JPA project.


setUpdater

void setUpdater(JpaProject.Updater updater)
Set the implementation of the Updater interface that will be used to "update" the JPA project. Before setting the updater, clients should save the current updater so it can be restored later.


update

void update()
The JPA project's state has changed, "update" those parts of the JPA project that are dependent on other parts of the JPA project. This is called when


update

org.eclipse.core.runtime.IStatus update(org.eclipse.core.runtime.IProgressMonitor monitor)
This is the callback used by the updater to perform the actual "update", which most likely will happen asynchronously.


updateQuiesced

void updateQuiesced()
This is the callback used by the updater to notify the JPA project that the "update" has quiesced (i.e. the "update" has completed and there are no outstanding requests for further "updates").


convertToPlatformFile

org.eclipse.core.resources.IFile convertToPlatformFile(java.lang.String fileName)
Convert the specified file name to a file mapped to the appropriate deployment location.


validationMessages

java.util.Iterator<org.eclipse.wst.validation.internal.provisional.core.IMessage> validationMessages(org.eclipse.wst.validation.internal.provisional.core.IReporter reporter)
Return JPA project's validation messages.


getDataSource

JpaDataSource getDataSource()
Return the data source the JPA project is mapped to.


getConnectionProfile

ConnectionProfile getConnectionProfile()
Return the JPA project's connection. The connection profile is null if the JPA project's connection profile name does not match the name of a DTP connection profile.


getDefaultDbSchemaContainer

SchemaContainer getDefaultDbSchemaContainer()
Return the JPA project's default database schema container; which is either the JPA project's default catalog or the JPA project's database, depending on how the DTP model is implemented.


getDefaultCatalog

java.lang.String getDefaultCatalog()
Return the JPA project's default catalog; which is either the user override catalog or the database's default catalog.


getDefaultDbCatalog

Catalog getDefaultDbCatalog()
Return the JPA project's default database catalog.

See Also:
getDefaultCatalog()

getDefaultSchema

java.lang.String getDefaultSchema()
Return the JPA project's default schema; which can be one of the following:


getDefaultDbSchema

Schema getDefaultDbSchema()
Return the JPA project's default database schema.

See Also:
getDefaultSchema(), getDefaultDbSchemaContainer()

getUserOverrideDefaultCatalog

java.lang.String getUserOverrideDefaultCatalog()
Return the identifier of the catalog to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.

Returns:
The catalog identifier. May be null (implying the connection profile default catalog should be used).

setUserOverrideDefaultCatalog

void setUserOverrideDefaultCatalog(java.lang.String catalog)
Set the identifier of the catalog to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.


getUserOverrideDefaultSchema

java.lang.String getUserOverrideDefaultSchema()
Return the identifier of the schema to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.

Returns:
The schema identifier. May be null (implying the connection profile default schema should be used).

setUserOverrideDefaultSchema

void setUserOverrideDefaultSchema(java.lang.String schema)
Set the identifier of the schema to be used as a default for the JPA project instead of the one that is associated by default with the connection profile.


discoversAnnotatedClasses

boolean discoversAnnotatedClasses()
Return whether the JPA project will "discover" annotated classes automatically, as opposed to requiring the classes to be listed in the persistence.xml or one of its mapping files. This is a user-specified preference that is probably only helpful when deploying to a JavaSE environment. The JPA spec says annotated classes are to be discovered automatically in a JavaEE environment; while the managed persistence classes must be explicitly listed in a JavaSE environment: "A list of all named managed persistence classes must be specified in Java SE environments to insure portability". This flag allows Dali to behave consistently with the user's JPA implementation, which may allow "discovery" in a JavaSE environment (e.g. EclipseLink). This setting can also be used when the user wants to explicitly list classes, even when the classes are "discovered" by the JPA implementation. If this flag is set to false, error messages will be generated for all of the annotated classes that are not explicitly listed.


setDiscoversAnnotatedClasses

void setDiscoversAnnotatedClasses(boolean discoversAnnotatedClasses)
Set whether the JPA project will "discover" annotated classes automatically, as opposed to requiring the classes to be listed in the persistence.xml.


setThreadLocalModifySharedDocumentCommandExecutor

void setThreadLocalModifySharedDocumentCommandExecutor(CommandExecutor commandExecutor)
Set a thread-specific implementation of the CommandExecutor interface that will be used to execute a command to modify a shared document. If necessary, the command executor can be cleared by setting it to null. This allows background clients to modify documents that are already present in the UI. See implementations of CommandExecutor.


getModifySharedDocumentCommandExecutor

CommandExecutor getModifySharedDocumentCommandExecutor()
Return the project-wide implementation of the CommandExecutor interface.