blob: e91703861077f9a114bc182ea0aad899fa09d327 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 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.platform.base;
import org.eclipse.jpt.core.internal.IJpaFactory;
import org.eclipse.jpt.core.internal.context.base.IAbstractJoinColumn;
import org.eclipse.jpt.core.internal.context.base.IBaseJpaContent;
import org.eclipse.jpt.core.internal.context.base.IClassRef;
import org.eclipse.jpt.core.internal.context.base.IJoinColumn;
import org.eclipse.jpt.core.internal.context.base.IJpaContextNode;
import org.eclipse.jpt.core.internal.context.base.IMappingFileRef;
import org.eclipse.jpt.core.internal.context.base.INamedColumn;
import org.eclipse.jpt.core.internal.context.base.IOverride;
import org.eclipse.jpt.core.internal.context.base.IPersistence;
import org.eclipse.jpt.core.internal.context.base.IPersistenceUnit;
import org.eclipse.jpt.core.internal.context.base.IPersistenceXml;
import org.eclipse.jpt.core.internal.context.base.IProperty;
import org.eclipse.jpt.core.internal.context.java.IJavaAssociationOverride;
import org.eclipse.jpt.core.internal.context.java.IJavaAttributeMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaAttributeOverride;
import org.eclipse.jpt.core.internal.context.java.IJavaBasicMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaColumn;
import org.eclipse.jpt.core.internal.context.java.IJavaDiscriminatorColumn;
import org.eclipse.jpt.core.internal.context.java.IJavaEmbeddable;
import org.eclipse.jpt.core.internal.context.java.IJavaEmbeddedIdMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaEmbeddedMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaEntity;
import org.eclipse.jpt.core.internal.context.java.IJavaGeneratedValue;
import org.eclipse.jpt.core.internal.context.java.IJavaIdMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaJoinColumn;
import org.eclipse.jpt.core.internal.context.java.IJavaJoinTable;
import org.eclipse.jpt.core.internal.context.java.IJavaJpaContextNode;
import org.eclipse.jpt.core.internal.context.java.IJavaManyToManyMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaManyToOneMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaMappedSuperclass;
import org.eclipse.jpt.core.internal.context.java.IJavaNamedNativeQuery;
import org.eclipse.jpt.core.internal.context.java.IJavaNamedQuery;
import org.eclipse.jpt.core.internal.context.java.IJavaOneToManyMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaOneToOneMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.IJavaPersistentType;
import org.eclipse.jpt.core.internal.context.java.IJavaPrimaryKeyJoinColumn;
import org.eclipse.jpt.core.internal.context.java.IJavaQuery;
import org.eclipse.jpt.core.internal.context.java.IJavaQueryHint;
import org.eclipse.jpt.core.internal.context.java.IJavaRelationshipMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaSecondaryTable;
import org.eclipse.jpt.core.internal.context.java.IJavaSequenceGenerator;
import org.eclipse.jpt.core.internal.context.java.IJavaTable;
import org.eclipse.jpt.core.internal.context.java.IJavaTableGenerator;
import org.eclipse.jpt.core.internal.context.java.IJavaTransientMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaTypeMapping;
import org.eclipse.jpt.core.internal.context.java.IJavaVersionMapping;
import org.eclipse.jpt.core.internal.context.orm.EntityMappings;
import org.eclipse.jpt.core.internal.context.orm.OrmXml;
import org.eclipse.jpt.core.internal.context.orm.PersistenceUnitDefaults;
import org.eclipse.jpt.core.internal.context.orm.PersistenceUnitMetadata;
import org.eclipse.jpt.core.internal.context.orm.XmlEmbeddable;
import org.eclipse.jpt.core.internal.context.orm.XmlEntity;
import org.eclipse.jpt.core.internal.context.orm.XmlMappedSuperclass;
import org.eclipse.jpt.core.internal.context.orm.XmlPersistentAttribute;
import org.eclipse.jpt.core.internal.context.orm.XmlPersistentType;
/**
* An IJpaFactory that also assumes a base JPA project context structure
* corresponding to the JPA spec:
*
* RootContent
* |- persistence.xml
* |- persistence unit(s)
* |- mapping file(s) (e.g. orm.xml)
* | |- persistent type mapping(s) (e.g. Entity)
* | |- persistent attribute mapping(s) (e.g. Basic)
* |- persistent type mapping(s)
*
* ... and associated objects.
*/
public interface IJpaBaseContextFactory extends IJpaFactory
{
IPersistenceXml createPersistenceXml(IBaseJpaContent parent);
IPersistence createPersistence(IPersistenceXml parent);
OrmXml createOrmXml(IMappingFileRef parent);
EntityMappings createEntityMappings(OrmXml parent);
PersistenceUnitMetadata createPersistenceUnitMetadata(EntityMappings parent);
PersistenceUnitDefaults createPersistenceUnitDefaults(PersistenceUnitMetadata parent);
IPersistenceUnit createPersistenceUnit(IPersistence parent);
IMappingFileRef createMappingFileRef(IPersistenceUnit parent);
IClassRef createClassRef(IPersistenceUnit parent);
IProperty createProperty(IPersistenceUnit parent);
IJavaPersistentType createJavaPersistentType(IJpaContextNode parent);
IJavaPersistentAttribute createJavaPersistentAttribute(IJavaPersistentType parent);
IJavaTypeMapping createJavaNullTypeMapping(IJavaPersistentType parent);
IJavaEntity createJavaEntity(IJavaPersistentType parent);
IJavaMappedSuperclass createJavaMappedSuperclass(IJavaPersistentType parent);
IJavaEmbeddable createJavaEmbeddable(IJavaPersistentType parent);
IJavaTable createJavaTable(IJavaEntity parent);
IJavaJoinTable createJavaJoinTable(IJavaRelationshipMapping parent);
IJavaColumn createJavaColumn(IJavaJpaContextNode parent, IJavaColumn.Owner owner);
IJavaDiscriminatorColumn createJavaDiscriminatorColumn(IJavaEntity parent, INamedColumn.Owner owner);
IJavaJoinColumn createJavaJoinColumn(IJavaJpaContextNode parent, IJoinColumn.Owner owner);
IJavaSecondaryTable createJavaSecondaryTable(IJavaEntity parent);
IJavaBasicMapping createJavaBasicMapping(IJavaPersistentAttribute parent);
IJavaEmbeddedIdMapping createJavaEmbeddedIdMapping(IJavaPersistentAttribute parent);
IJavaEmbeddedMapping createJavaEmbeddedMapping(IJavaPersistentAttribute parent);
IJavaIdMapping createJavaIdMapping(IJavaPersistentAttribute parent);
IJavaManyToManyMapping createJavaManyToManyMapping(IJavaPersistentAttribute parent);
IJavaManyToOneMapping createJavaManyToOneMapping(IJavaPersistentAttribute parent);
IJavaOneToManyMapping createJavaOneToManyMapping(IJavaPersistentAttribute parent);
IJavaOneToOneMapping createJavaOneToOneMapping(IJavaPersistentAttribute parent);
IJavaTransientMapping createJavaTransientMapping(IJavaPersistentAttribute parent);
IJavaVersionMapping createJavaVersionMapping(IJavaPersistentAttribute parent);
IJavaAttributeMapping createJavaNullAttributeMapping(IJavaPersistentAttribute parent);
IJavaSequenceGenerator createJavaSequenceGenerator(IJavaJpaContextNode parent);
IJavaTableGenerator createJavaTableGenerator(IJavaJpaContextNode parent);
IJavaGeneratedValue createJavaGeneratedValue(IJavaAttributeMapping parent);
IJavaPrimaryKeyJoinColumn createJavaPrimaryKeyJoinColumn(IJavaJpaContextNode parent, IAbstractJoinColumn.Owner owner);
IJavaAttributeOverride createJavaAttributeOverride(IJavaJpaContextNode parent, IOverride.Owner owner);
IJavaAssociationOverride createJavaAssociationOverride(IJavaJpaContextNode parent, IOverride.Owner owner);
IJavaNamedQuery createJavaNamedQuery(IJavaJpaContextNode parent);
IJavaNamedNativeQuery createJavaNamedNativeQuery(IJavaJpaContextNode parent);
IJavaQueryHint createJavaQueryHint(IJavaQuery<?> parent);
//TODO need an interface??
XmlPersistentType createXmlPersistentType(EntityMappings parent, String mappingKey);
XmlEntity createXmlEntity(XmlPersistentType parent);
XmlMappedSuperclass createXmlMappedSuperclass(XmlPersistentType parent);
XmlEmbeddable createXmlEmbeddable(XmlPersistentType parent);
XmlPersistentAttribute createXmlPersistentAttribute(XmlPersistentType parent, String mappingKey);
}