Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java125
1 files changed, 125 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java
new file mode 100644
index 0000000000..41f5632d9b
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Oracle. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0, which accompanies this distribution and is available at
+ * http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.core.internal;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.jpt.core.internal.content.java.IJavaAttributeMapping;
+import org.eclipse.jpt.core.internal.content.java.IJavaTypeMapping;
+import org.eclipse.jpt.core.internal.platform.IContext;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+
+/**
+ * This interface is to be implemented by a JPA vendor to provide extensions to
+ * the core JPA model. The core JPA model will provide functinality for JPA
+ * spec annotations in java and the orm.xml mapping file.
+ * The org.eclipse.jpt.core.genericPlatform extension supplies
+ * IJpaFileContentProvider for those file types. As another vendor option you
+ * will have to supply those IJpaFileContentProviders as well or different ones
+ * as necessary.
+ *
+ * See the org.eclipse.jpt.core.jpaPlatform extension point
+ */
+public interface IJpaPlatform
+{
+ /**
+ * Get the ID for this platform
+ */
+ String getId();
+
+ /**
+ * Set the ID for this platform
+ *
+ * *************
+ * * IMPORTANT * For INTERNAL use only!!
+ * *************
+ */
+ void setId(String theId);
+
+ /**
+ * Get the IJpaProject for this platform
+ */
+ IJpaProject getProject();
+
+ /**
+ * Set the IJpaProject on this platform
+ */
+ void setProject(IJpaProject jpaProject);
+
+ /**
+ * Return a collection of IJpaFileContentProviders. These will be used to
+ * determine which files will be read from an IProject based on contentType.
+ * These contentProviders should have unique contentTypes.
+ * @return
+ */
+ Collection<IJpaFileContentProvider> jpaFileContentProviders();
+
+ /**
+ * Build a project context to be used when resynching the intra-model
+ * references and creating validation problems.
+ * The JPA model containment hierarchy is inappropriate to use as a context
+ * for defaults because it is based on the IJpaProject containing files.
+ * The defaults context for the jpa model is based on the persistence.xml
+ * and the mapping files and classes it contains.
+ *
+ * @see refreshDefaults(Object)
+ * @return
+ */
+ IContext buildProjectContext();
+
+ /**
+ * Build a type context to be used when resynching the intra-model
+ * references and creating validation problems.
+ * The JPA model containment hierarchy is inappropriate to use as a context
+ * for defaults because it is based on the IJpaProject containing files.
+ * The defaults context for the jpa model is based on the persistence.xml
+ * and the mapping files and classes it contains.
+ *
+ * @see refreshDefaults(Object)
+ * @return
+ */
+ IContext buildJavaTypeContext(IContext parentContext, IJavaTypeMapping typeMapping);
+
+ /**
+ * Build an attribute context to be used when resynching the intra-model
+ * references and creating validation problems.
+ * The JPA model containment hierarchy is inappropriate to use as a context
+ * for defaults because it is based on the IJpaProject containing files.
+ * The defaults context for the jpa model is based on the persistence.xml
+ * and the mapping files and classes it contains.
+ *
+ * @see refreshDefaults(Object)
+ * @return
+ */
+ IContext buildJavaAttributeContext(IContext parentContext, IJavaAttributeMapping attributeMapping);
+
+ /**
+ * Resynchronize intra-model connections given the context hierarchy the
+ * IJpaPlatform built in buildContextHierarchy().
+ * This will be called each time an update to the jpa model occurs. If an
+ * update occurs while the resynch() job is in process, another resynch()
+ * will be started upon completion.
+ * @param contextHierarchy
+ */
+ void resynch(IContext contextHierarchy);
+
+ /**
+ * Adds validation messages to the growing list of messages
+ */
+ void addToMessages(List<IMessage> messages);
+ /**
+ * Returns the IGeneratorRepository for the persistence unit of the
+ * given IPersistentType. A NullGeneratorRepository should be returned
+ * if the IPersistentType is not part of a persistence unit
+ * @param persistentType
+ * @return
+ */
+ // IGeneratorRepository generatorRepository(IPersistentType persistentType);
+}

Back to the top