Skip to main content
summaryrefslogtreecommitdiffstats
blob: e91703861077f9a114bc182ea0aad899fa09d327 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/*******************************************************************************
 *  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);

}

Back to the top