diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java')
76 files changed, 0 insertions, 12503 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourceNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourceNode.java deleted file mode 100644 index f0fb9e4117..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourceNode.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jpt.core.JpaAnnotationProvider; -import org.eclipse.jpt.core.resource.java.JavaResourceModel; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -import org.eclipse.jpt.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.utility.CommandExecutorProvider; -import org.eclipse.jpt.utility.internal.model.AbstractModel; -import org.eclipse.jpt.utility.internal.model.CallbackChangeSupport; -import org.eclipse.jpt.utility.internal.model.ChangeSupport; - -/** - * resource containment hierarchy - */ -public abstract class AbstractJavaResourceNode - extends AbstractModel - implements JavaResourceNode, CallbackChangeSupport.Source -{ - private final JavaResourceNode parent; - - - // ********** construction ********** - - protected AbstractJavaResourceNode(JavaResourceNode parent) { - super(); - this.checkParent(parent); - this.parent = parent; - } - - protected void checkParent(JavaResourceNode p) { - if (p == null) { - if (this.requiresParent()) { - throw new IllegalArgumentException("'parent' cannot be null"); - } - } else { - if (this.forbidsParent()) { - throw new IllegalArgumentException("'parent' must be null"); - } - } - } - - protected boolean requiresParent() { - return true; - } - - protected boolean forbidsParent() { - return ! this.requiresParent(); // assume 'parent' is not optional - } - - @Override - protected ChangeSupport buildChangeSupport() { - return new CallbackChangeSupport(this); - } - - - // ********** JavaResourceNode implementation ********** - - public JpaCompilationUnit getJpaCompilationUnit() { - return this.parent.getJpaCompilationUnit(); - } - - public JavaResourceModel getResourceModel() { - return this.getJpaCompilationUnit().getResourceModel(); - } - - - // ********** CallbackChangeSupport.Source implementation ********** - - public void aspectChanged(String aspectName) { - this.getJpaCompilationUnit().resourceChanged(); - } - - - // ********** convenience methods ********** - - protected JavaResourceNode getParent() { - return this.parent; - } - - public JpaAnnotationProvider getAnnotationProvider() { - return this.getJpaCompilationUnit().getAnnotationProvider(); - } - - public CommandExecutorProvider getModifySharedDocumentCommandExecutorProvider() { - return this.getJpaCompilationUnit().getModifySharedDocumentCommandExecutorProvider(); - } - - public AnnotationEditFormatter getAnnotationEditFormatter() { - return this.getJpaCompilationUnit().getAnnotationEditFormatter(); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourcePersistentMember.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourcePersistentMember.java deleted file mode 100644 index 34fe50aa5e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourcePersistentMember.java +++ /dev/null @@ -1,563 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.ASTVisitor; -import org.eclipse.jdt.core.dom.BodyDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.core.internal.utility.jdt.ASTNodeTextRange; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.MethodSignature; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator; -import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator; - -public abstract class AbstractJavaResourcePersistentMember<E extends Member> - extends AbstractJavaResourceNode - implements JavaResourcePersistentMember -{ - private final E member; - - /** - * stores all annotations(non-mapping) except duplicates, java compiler has an error for duplicates - */ - private final Collection<Annotation> annotations; - - /** - * stores all mapping annotations except duplicates, java compiler has an error for duplicates - */ - private final Collection<Annotation> mappingAnnotations; - - private boolean persistable; - - AbstractJavaResourcePersistentMember(JavaResourceNode parent, E member){ - super(parent); - this.member = member; - this.annotations = new ArrayList<Annotation>(); - this.mappingAnnotations = new ArrayList<Annotation>(); - } - - public void initialize(CompilationUnit astRoot) { - getMember().getBodyDeclaration(astRoot).accept(this.buildInitialAnnotationVisitor(astRoot)); - this.persistable = buildPersistable(astRoot); - } - - protected ASTVisitor buildInitialAnnotationVisitor(CompilationUnit astRoot) { - return new LocalASTVisitor(astRoot, this.getMember().getBodyDeclaration(astRoot)) { - @Override - protected void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - AbstractJavaResourcePersistentMember.this.addInitialAnnotation(node, this.astRoot); - } - }; - } - - protected void addInitialAnnotation(org.eclipse.jdt.core.dom.Annotation node, CompilationUnit astRoot) { - String qualifiedAnnotationName = JDTTools.resolveAnnotation(node); - if (qualifiedAnnotationName == null) { - return; - } - if (isPossibleAnnotation(qualifiedAnnotationName)) { - if (getAnnotation(qualifiedAnnotationName) == null) { //don't want duplicates - Annotation annotation = buildAnnotation(qualifiedAnnotationName); - annotation.initialize(astRoot); - this.annotations.add(annotation); - } - } - else if (isPossibleMappingAnnotation(qualifiedAnnotationName)) { - if (getMappingAnnotation(qualifiedAnnotationName) == null) { //don't want duplicates - Annotation annotation = buildMappingAnnotation(qualifiedAnnotationName); - annotation.initialize(astRoot); - this.mappingAnnotations.add(annotation); - } - } - } - - public E getMember() { - return this.member; - } - - protected abstract Annotation buildAnnotation(String annotationName); - - protected abstract Annotation buildNullAnnotation(String annotationName); - - protected abstract Annotation buildMappingAnnotation(String mappingAnnotationName); - - protected abstract Annotation buildNullMappingAnnotation(String annotationName); - - protected abstract ListIterator<String> possibleMappingAnnotationNames(); - - protected abstract boolean isPossibleAnnotation(String annotationName); - - protected abstract boolean isPossibleMappingAnnotation(String annotationName); - - protected boolean buildPersistable(CompilationUnit astRoot) { - return this.getMember().isPersistable(astRoot); - } - - - public Annotation getAnnotation(String annotationName) { - for (Iterator<Annotation> i = annotations(); i.hasNext(); ) { - Annotation annotation = i.next(); - if (annotation.getAnnotationName().equals(annotationName)) { - return annotation; - } - } - return null; - } - - public JavaResourceNode getNonNullAnnotation(String annotationName) { - Annotation annotation = getAnnotation(annotationName); - if (annotation == null) { - return buildNullAnnotation(annotationName); - } - return annotation; - } - - public Annotation getMappingAnnotation(String annotationName) { - for (Iterator<Annotation> i = mappingAnnotations(); i.hasNext(); ) { - Annotation mappingAnnotation = i.next(); - if (mappingAnnotation.getAnnotationName().equals(annotationName)) { - return mappingAnnotation; - } - } - return null; - } - - public JavaResourceNode getNullMappingAnnotation(String annotationName) { - return buildNullMappingAnnotation(annotationName); - } - - @SuppressWarnings("unchecked") - public Iterator<Annotation> annotations() { - return new CloneIterator<Annotation>(this.annotations); - } - - public int annotationsSize() { - return this.annotations.size(); - } - - public Annotation addAnnotation(String annotationName) { - Annotation annotation = buildAnnotation(annotationName); - this.annotations.add(annotation); - annotation.newAnnotation(); - this.fireItemAdded(ANNOTATIONS_COLLECTION, annotation); - return annotation; - } - - @SuppressWarnings("unchecked") - protected ContainerAnnotation<NestableAnnotation> addContainerAnnotation(String containerAnnotationName) { - return (ContainerAnnotation<NestableAnnotation>) addAnnotation(containerAnnotationName); - } - - protected ContainerAnnotation<NestableAnnotation> addContainerAnnotationTwoNestableAnnotations(String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = buildContainerAnnotation(containerAnnotationName); - this.annotations.add(containerAnnotation); - containerAnnotation.newAnnotation(); - containerAnnotation.addInternal(0).newAnnotation(); - containerAnnotation.addInternal(1).newAnnotation(); - return containerAnnotation; - } - - @SuppressWarnings("unchecked") - protected ContainerAnnotation<NestableAnnotation> buildContainerAnnotation(String containerAnnotationName) { - return (ContainerAnnotation<NestableAnnotation>) buildAnnotation(containerAnnotationName); - } - - @SuppressWarnings("unchecked") - protected ContainerAnnotation<NestableAnnotation> getContainerAnnotation(String containerAnnotationName) { - return (ContainerAnnotation<NestableAnnotation>) getAnnotation(containerAnnotationName); - } - - protected NestableAnnotation getNestableAnnotation(String nestableAnnotationName) { - return (NestableAnnotation) getAnnotation(nestableAnnotationName); - } - - protected NestableAnnotation addNestableAnnotation(String nestableAnnotationName) { - return (NestableAnnotation) addAnnotation(nestableAnnotationName); - } - - //TODO it seems we should be firing one change notification here, that a new nestable annotation was added. - public NestableAnnotation addAnnotation(int index, String nestableAnnotationName, String containerAnnotationName) { - NestableAnnotation nestedAnnotation = (NestableAnnotation) getAnnotation(nestableAnnotationName); - - ContainerAnnotation<NestableAnnotation> containerAnnotation = getContainerAnnotation(containerAnnotationName); - - if (containerAnnotation != null) { - //ignore any nestableAnnotation and just add to the plural one - NestableAnnotation newNestedAnnotation = ContainerAnnotationTools.addNestedAnnotation(index, containerAnnotation); - //TODO any event notification being fired for the add??? - return newNestedAnnotation; - } - if (nestedAnnotation == null) { - //add the nestable since neither nestable or container exists - return addNestableAnnotation(nestableAnnotationName); - } - //move the nestable to a new container annotation and add to it - ContainerAnnotation<NestableAnnotation> newContainerAnnotation = addContainerAnnotationTwoNestableAnnotations(containerAnnotationName); - if (index == 0) { - newContainerAnnotation.nestedAnnotationAt(1).initializeFrom(nestedAnnotation); - } - else { - newContainerAnnotation.nestedAnnotationAt(0).initializeFrom(nestedAnnotation); - } - removeAnnotation(nestedAnnotation); - return newContainerAnnotation.nestedAnnotationAt(index); - } - - public void move(int targetIndex, int sourceIndex, String containerAnnotationName) { - move(targetIndex, sourceIndex, getContainerAnnotation(containerAnnotationName)); - } - - protected void move(int targetIndex, int sourceIndex, ContainerAnnotation<NestableAnnotation> containerAnnotation) { - containerAnnotation.move(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, containerAnnotation); - } - - protected void addAnnotation(Annotation annotation) { - addItemToCollection(annotation, this.annotations, ANNOTATIONS_COLLECTION); - } - - protected void removeAnnotation(Annotation annotation) { - removeAnnotation_(annotation); - //TODO looks odd that we remove the annotation here, but in addAnnotation(Annotation) we don't do the same - annotation.removeAnnotation(); - } - - protected void removeAnnotation_(Annotation annotation) { - removeItemFromCollection(annotation, this.annotations, ANNOTATIONS_COLLECTION); - } - - protected void addMappingAnnotation(String mappingAnnotationName) { - if (getMappingAnnotation(mappingAnnotationName) != null) { - return; - } - Annotation mappingAnnotation = buildMappingAnnotation(mappingAnnotationName); - addMappingAnnotation(mappingAnnotation); - //TODO should this be done here or should creating the Annotation do this?? - mappingAnnotation.newAnnotation(); - } - - protected void addMappingAnnotation(Annotation annotation) { - addItemToCollection(annotation, this.mappingAnnotations, MAPPING_ANNOTATIONS_COLLECTION); - } - - protected void removeMappingAnnotation(Annotation annotation) { - removeMappingAnnotation_(annotation); - annotation.removeAnnotation(); - } - - protected void removeMappingAnnotation_(Annotation annotation) { - removeItemFromCollection(annotation, this.mappingAnnotations, MAPPING_ANNOTATIONS_COLLECTION); - } - - @SuppressWarnings("unchecked") - public Iterator<Annotation> mappingAnnotations() { - return new CloneIterator<Annotation>(this.mappingAnnotations); - } - - public int mappingAnnotationsSize() { - return this.mappingAnnotations.size(); - } - - public void removeAnnotation(String annotationName) { - Annotation annotation = getAnnotation(annotationName); - if (annotation != null) { - removeAnnotation(annotation); - } - } - - public void removeAnnotation(int index, String nestableAnnotationName, String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = getContainerAnnotation(containerAnnotationName); - if (containerAnnotation == null) { - Annotation annotation = getAnnotation(nestableAnnotationName); - removeAnnotation(annotation); - } - else { - removeAnnotation(index, containerAnnotation); - } - } - - protected void removeAnnotation(int index, ContainerAnnotation<NestableAnnotation> containerAnnotation) { - NestableAnnotation nestableAnnotation = containerAnnotation.nestedAnnotationAt(index); - containerAnnotation.remove(index); - //TODO move these 2 lines to the ContainerAnnotation implementation, i think - nestableAnnotation.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, containerAnnotation); - - if (containerAnnotation.nestedAnnotationsSize() == 0) { - removeAnnotation(containerAnnotation); - } - else if (containerAnnotation.nestedAnnotationsSize() == 1) { - NestableAnnotation nestedAnnotation = containerAnnotation.nestedAnnotationAt(0); - - this.annotations.remove(containerAnnotation); - containerAnnotation.removeAnnotation(); - - - NestableAnnotation newAnnotation = (NestableAnnotation) buildAnnotation(containerAnnotation.getNestableAnnotationName()); - this.annotations.add(newAnnotation); - newAnnotation.newAnnotation(); - - newAnnotation.initializeFrom(nestedAnnotation); - - this.fireItemAdded(ANNOTATIONS_COLLECTION, newAnnotation); - fireItemRemoved(ANNOTATIONS_COLLECTION, containerAnnotation); - } - } - // removes all other *mapping* annotations that exist, not just the one returned by mappingAnnotation() - // mappingAnnotation() returns the first mapping annotation found in the source. if there are multiple - // mapping annotations (which is a validation error condition) then calling this api would not work - // because the new mapping annotatio would be added to the end of the list of annotations. - public void setMappingAnnotation(String annotationName) { - if (getMappingAnnotation(annotationName) != null) { - throw new IllegalStateException("The mapping annotation named " + annotationName + " already exists."); - } - Annotation oldMapping = getMappingAnnotation(); - Annotation newMapping = null; - if (oldMapping != null) { - removeUnnecessaryAnnotations(annotationName); - } - if (annotationName != null) { - if (getMappingAnnotation(annotationName) != null) { - return; - } - newMapping = buildMappingAnnotation(annotationName); - this.mappingAnnotations.add(newMapping); - newMapping.newAnnotation(); - } - //have to hold property change notification until the end so a project update does not occur - //before we are finished removing the old mapping and adding the new mapping - //just firing collectio changed since one or more removes and one add was completed. - //if we ever listen for specific events instead of just doing a mass update, we might need to make this more specific - fireCollectionChanged(MAPPING_ANNOTATIONS_COLLECTION); - } - /** - * Remove all mapping annotations that already exist. - * No change notification fired. - */ - protected void removeUnnecessaryAnnotations(String newMappingAnnotationName) { - for (ListIterator<String> i = possibleMappingAnnotationNames(); i.hasNext(); ) { - String mappingAnnotationName = i.next(); - if (mappingAnnotationName != newMappingAnnotationName) { - Annotation mappingAnnotation = getMappingAnnotation(mappingAnnotationName); - if (mappingAnnotation != null) { - this.mappingAnnotations.remove(mappingAnnotation); - mappingAnnotation.removeAnnotation(); - } - } - } - } - - //TODO need property change notification on this mappingAnnotation changing - //from the context model we don't really care if their are multiple mapping annotations, - //just which one we need to use - public Annotation getMappingAnnotation() { - for (ListIterator<String> i = possibleMappingAnnotationNames(); i.hasNext(); ) { - String mappingAnnotationName = i.next(); - for (Iterator<Annotation> j = mappingAnnotations(); j.hasNext(); ) { - Annotation mappingAnnotation = j.next(); - if (mappingAnnotationName == mappingAnnotation.getAnnotationName()) { - return mappingAnnotation; - } - } - } - return null; - } - - @SuppressWarnings("unchecked") - public ListIterator<NestableAnnotation> annotations(String nestableAnnotationName, String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = getContainerAnnotation(containerAnnotationName); - if (containerAnnotation != null) { - return containerAnnotation.nestedAnnotations(); - } - NestableAnnotation nestableAnnotation = getNestableAnnotation(nestableAnnotationName); - if (nestableAnnotation != null) { - return new SingleElementListIterator<NestableAnnotation>(nestableAnnotation); - } - return EmptyListIterator.instance(); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.updateAnnotations(astRoot); - this.setPersistable(this.buildPersistable(astRoot)); - } - - public void resolveTypes(CompilationUnit astRoot) { - this.setPersistable(this.buildPersistable(astRoot)); - } - - protected void updateAnnotations(CompilationUnit astRoot) { - getMember().getBodyDeclaration(astRoot).accept(this.buildUpdateAnnotationVisitor(astRoot)); - removeMappingAnnotationsNotInSource(astRoot); - removeAnnotationsNotInSource(astRoot); - } - - protected void removeAnnotationsNotInSource(CompilationUnit astRoot) { - for (Annotation annotation : CollectionTools.iterable(annotations())) { - if (annotation.getJdtAnnotation(astRoot) == null) { - removeAnnotation_(annotation); - } - } - } - - protected void removeMappingAnnotationsNotInSource(CompilationUnit astRoot) { - for (Annotation mappingAnnotation : CollectionTools.iterable(mappingAnnotations())) { - if (mappingAnnotation.getJdtAnnotation(astRoot) == null) { - removeMappingAnnotation_(mappingAnnotation); - } - } - } - - protected ASTVisitor buildUpdateAnnotationVisitor(CompilationUnit astRoot) { - return new LocalASTVisitor(astRoot, this.getMember().getBodyDeclaration(astRoot)) { - @Override - protected void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - AbstractJavaResourcePersistentMember.this.addOrUpdateAnnotation(node, this.astRoot); - } - }; - } - - protected void addOrUpdateAnnotation(org.eclipse.jdt.core.dom.Annotation node, CompilationUnit astRoot) { - String qualifiedAnnotationName = JDTTools.resolveAnnotation(node); - if (qualifiedAnnotationName == null) { - return; - } - if (isPossibleAnnotation(qualifiedAnnotationName)) { - Annotation annotation = getAnnotation(qualifiedAnnotationName); - if (annotation != null) { - annotation.updateFromJava(astRoot); - } - else { - annotation = buildAnnotation(qualifiedAnnotationName); - annotation.initialize(astRoot); - addAnnotation(annotation); - } - } - else if (isPossibleMappingAnnotation(qualifiedAnnotationName)) { - Annotation annotation = getMappingAnnotation(qualifiedAnnotationName); - if (annotation != null) { - annotation.updateFromJava(astRoot); - } - else { - annotation = buildMappingAnnotation(qualifiedAnnotationName); - annotation.initialize(astRoot); - addMappingAnnotation(annotation); - } - } - } - - public boolean isFor(String memberName, int occurrence) { - return this.member.matches(memberName, occurrence); - } - - public boolean isFor(MethodSignature methodSignature, int occurrence) { - return false; - } - - public boolean isPersistable() { - return this.persistable; - } - - protected void setPersistable(boolean newPersistable) { - boolean oldPersistable = this.persistable; - this.persistable = newPersistable; - firePropertyChanged(PERSISTABLE_PROPERTY, oldPersistable, newPersistable); - //TODO change notification to parent so that the context model gets notification - //that the list of persistable fields has been updated - // - } - - public boolean isPersisted() { - return getMappingAnnotation() != null; - } - - public TextRange fullTextRange(CompilationUnit astRoot) { - return this.getTextRange(this.getMember().getBodyDeclaration(astRoot)); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return this.fullTextRange(astRoot); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getMember().getNameTextRange(astRoot); - } - - protected TextRange getTextRange(ASTNode astNode) { - return (astNode == null) ? null : new ASTNodeTextRange(astNode); - } - - protected static <T extends JavaResourcePersistentMember> Iterator<T> persistableMembers(Iterator<T> attributes) { - return new FilteringIterator<T, T>(attributes) { - @Override - protected boolean accept(T attribute) { - return attribute.isPersistable(); - } - }; - } - - - // ********** AST visitor ********** - - protected abstract class LocalASTVisitor extends ASTVisitor { - protected final CompilationUnit astRoot; - protected final BodyDeclaration bodyDeclaration; - - protected LocalASTVisitor(CompilationUnit astRoot, BodyDeclaration bodyDeclaration) { - super(); - this.astRoot = astRoot; - this.bodyDeclaration = bodyDeclaration; - } - - @Override - public boolean visit(SingleMemberAnnotation node) { - return visit_(node); - } - - @Override - public boolean visit(NormalAnnotation node) { - return visit_(node); - } - - @Override - public boolean visit(MarkerAnnotation node) { - return visit_(node); - } - - protected boolean visit_(org.eclipse.jdt.core.dom.Annotation node) { - // ignore annotations for child members, only this member - if (node.getParent() == this.bodyDeclaration) { - this.visitChildAnnotation(node); - } - return false; - } - - protected abstract void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node); - - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedColumn.java deleted file mode 100644 index ddf131e8af..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedColumn.java +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NumberIntegerExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NamedColumnAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public abstract class AbstractNamedColumn extends AbstractResourceAnnotation<Member> implements NamedColumnAnnotation -{ - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - // hold this so we can get the 'columnDefinition' text range - private final DeclarationAnnotationElementAdapter<String> columnDefinitionDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private final AnnotationElementAdapter<String> columnDefinitionAdapter; - - private String name; - private String columnDefinition; - - public AbstractNamedColumn(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.nameDeclarationAdapter = this.buildStringElementAdapter(this.nameElementName()); - this.nameAdapter = this.buildShortCircuitElementAdapter(this.nameDeclarationAdapter); - this.columnDefinitionDeclarationAdapter = this.buildStringElementAdapter(this.columnDefinitionElementName()); - this.columnDefinitionAdapter = this.buildShortCircuitElementAdapter(this.columnDefinitionDeclarationAdapter); - } - - protected DeclarationAnnotationElementAdapter<String> buildStringElementAdapter(String elementName) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(getDeclarationAnnotationAdapter(), elementName); - } - - protected DeclarationAnnotationElementAdapter<Boolean> buildBooleanElementAdapter(String elementName) { - return new ConversionDeclarationAnnotationElementAdapter<Boolean>(getDeclarationAnnotationAdapter(), elementName, BooleanExpressionConverter.instance()); - } - - protected DeclarationAnnotationElementAdapter<Integer> buildIntegerElementAdapter(String elementName) { - return new ConversionDeclarationAnnotationElementAdapter<Integer>(getDeclarationAnnotationAdapter(), elementName, NumberIntegerExpressionConverter.instance()); - } - - protected AnnotationElementAdapter<String> buildShortCircuitElementAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(getMember(), daea); - } - - protected AnnotationElementAdapter<Boolean> buildShortCircuitBooleanElementAdapter(DeclarationAnnotationElementAdapter<Boolean> daea) { - return new ShortCircuitAnnotationElementAdapter<Boolean>(getMember(), daea); - } - - protected AnnotationElementAdapter<Integer> buildShortCircuitIntegerElementAdapter(DeclarationAnnotationElementAdapter<Integer> daea) { - return new ShortCircuitAnnotationElementAdapter<Integer>(getMember(), daea); - } - - protected AnnotationElementAdapter<String> buildShortCircuitStringElementAdapter(String elementName) { - return this.buildShortCircuitElementAdapter(this.buildStringElementAdapter(elementName)); - } - protected abstract String nameElementName(); - - protected abstract String columnDefinitionElementName(); - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - this.columnDefinition = this.columnDefinition(astRoot); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - NamedColumnAnnotation oldColumn = (NamedColumnAnnotation) oldAnnotation; - setName(oldColumn.getName()); - setColumnDefinition(oldColumn.getColumnDefinition()); - } - - //************* NamedColumn implementation ************** - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public String getColumnDefinition() { - return this.columnDefinition; - } - - public void setColumnDefinition(String newColumnDefinition) { - if (attributeValueHasNotChanged(this.columnDefinition, newColumnDefinition)) { - return; - } - String oldColumnDefinition = this.columnDefinition; - this.columnDefinition = newColumnDefinition; - this.columnDefinitionAdapter.setValue(newColumnDefinition); - firePropertyChanged(COLUMN_DEFINITION_PROPERTY, oldColumnDefinition, newColumnDefinition); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public TextRange getColumnDefinitionTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.columnDefinitionDeclarationAdapter, astRoot); - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.nameDeclarationAdapter, pos, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - this.setColumnDefinition(this.columnDefinition(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - protected String columnDefinition(CompilationUnit astRoot) { - return this.columnDefinitionAdapter.getValue(astRoot); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedQuery.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedQuery.java deleted file mode 100644 index f06e4dbdad..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedQuery.java +++ /dev/null @@ -1,309 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableQueryHint; -import org.eclipse.jpt.core.resource.java.QueryAnnotation; -import org.eclipse.jpt.core.resource.java.QueryHintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Type; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public abstract class AbstractNamedQuery extends AbstractResourceAnnotation<Type> - implements QueryAnnotation -{ - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - // hold this so we can get the 'query' text range - private final DeclarationAnnotationElementAdapter<String> queryDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private final AnnotationElementAdapter<String> queryAdapter; - - private String name; - - private String query; - - private final List<NestableQueryHint> hints; - private final HintsContainerAnnotation hintsContainerAnnotation; - - protected AbstractNamedQuery(JavaResourceNode parent, Type type,DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, type, daa, annotationAdapter); - this.nameDeclarationAdapter = nameAdapter(daa); - this.queryDeclarationAdapter = queryAdapter(daa); - this.nameAdapter = this.buildAdapter(this.nameDeclarationAdapter); - this.queryAdapter = this.buildAdapter(this.queryDeclarationAdapter); - this.hints = new ArrayList<NestableQueryHint>(); - this.hintsContainerAnnotation = new HintsContainerAnnotation(); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - this.query = this.query(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.hintsContainerAnnotation); - } - - - // ********** initialization ********** - protected AnnotationElementAdapter<String> buildAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(getMember(), daea); - } - - protected DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, nameElementName()); - } - - protected DeclarationAnnotationElementAdapter<String> queryAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, queryElementName()); - } - - protected abstract String nameElementName(); - - protected abstract String queryElementName(); - - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public String getQuery() { - return this.query; - } - - public void setQuery(String newQuery) { - if (attributeValueHasNotChanged(this.query, newQuery)) { - return; - } - String oldQuery = this.query; - this.query = newQuery; - this.queryAdapter.setValue(newQuery); - firePropertyChanged(QUERY_PROPERTY, oldQuery, newQuery); - } - - public ListIterator<QueryHintAnnotation> hints() { - return new CloneListIterator<QueryHintAnnotation>(this.hints); - } - - public int hintsSize() { - return this.hints.size(); - } - - public NestableQueryHint hintAt(int index) { - return this.hints.get(index); - } - - public int indexOfHint(QueryHintAnnotation queryHint) { - return this.hints.indexOf(queryHint); - } - - public NestableQueryHint addHint(int index) { - NestableQueryHint queryHint = (NestableQueryHint) ContainerAnnotationTools.addNestedAnnotation(index, this.hintsContainerAnnotation); - fireItemAdded(QueryAnnotation.HINTS_LIST, index, queryHint); - return queryHint; - } - - private void addHint(int index, NestableQueryHint queryHint) { - addItemToList(index, queryHint, this.hints, HINTS_LIST); - } - - public void removeHint(int index) { - NestableQueryHint queryHint = hintAt(index); - removeHint(queryHint); - queryHint.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.hintsContainerAnnotation); - } - - private void removeHint(NestableQueryHint queryHint) { - removeItemFromList(queryHint, this.hints, HINTS_LIST); - } - - public void moveHint(int targetIndex, int sourceIndex) { - moveHintInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.hintsContainerAnnotation); - fireItemMoved(QueryAnnotation.HINTS_LIST, targetIndex, sourceIndex); - } - - protected void moveHintInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.hints, targetIndex, sourceIndex); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public TextRange getQueryTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.queryDeclarationAdapter, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - this.setQuery(this.query(astRoot)); - this.updateQueryHintsFromJava(astRoot); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - protected String query(CompilationUnit astRoot) { - return this.queryAdapter.getValue(astRoot); - } - - private void updateQueryHintsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.hintsContainerAnnotation); - } - - protected abstract NestableQueryHint createQueryHint(int index); - - // ********** persistence model -> java annotations ********** - public IndexedAnnotationAdapter getIndexedAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public void moveAnnotation(int newIndex) { - getIndexedAnnotationAdapter().moveAnnotation(newIndex); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - AbstractNamedQuery oldNamedQuery = (AbstractNamedQuery) oldAnnotation; - setName(oldNamedQuery.getName()); - setQuery(oldNamedQuery.getQuery()); - for (QueryHintAnnotation queryHint : CollectionTools.iterable(oldNamedQuery.hints())) { - NestableQueryHint newQueryHint = addHint(oldNamedQuery.indexOfHint(queryHint)); - newQueryHint.initializeFrom((NestableQueryHint) queryHint); - } - } - - - private class HintsContainerAnnotation extends AbstractJavaResourceNode implements ContainerAnnotation<NestableQueryHint> { - - public HintsContainerAnnotation() { - super(AbstractNamedQuery.this); - } - - public void initialize(CompilationUnit astRoot) { - // nothing to initialize - } - - public NestableQueryHint add(int index) { - NestableQueryHint queryHint = AbstractNamedQuery.this.createQueryHint(index); - AbstractNamedQuery.this.addHint(index, queryHint); - return queryHint; - } - - public NestableQueryHint addInternal(int index) { - NestableQueryHint queryHint = AbstractNamedQuery.this.createQueryHint(index); - AbstractNamedQuery.this.hints.add(index, queryHint); - return queryHint; - } - - public String getAnnotationName() { - return AbstractNamedQuery.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.QUERY_HINT; - } - - public int indexOf(NestableQueryHint hint) { - return AbstractNamedQuery.this.indexOfHint(hint); - } - - public void move(int targetIndex, int sourceIndex) { - AbstractNamedQuery.this.moveHint(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - AbstractNamedQuery.this.moveHintInternal(targetIndex, sourceIndex); - } - - public NestableQueryHint nestedAnnotationAt(int index) { - return AbstractNamedQuery.this.hintAt(index); - } - - public NestableQueryHint nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestableQueryHint uniqueConstraint : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == uniqueConstraint.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return uniqueConstraint; - } - } - return null; - } - - public ListIterator<NestableQueryHint> nestedAnnotations() { - return new CloneListIterator<NestableQueryHint>(AbstractNamedQuery.this.hints); - } - - public int nestedAnnotationsSize() { - return AbstractNamedQuery.this.hintsSize(); - } - - public void remove(NestableQueryHint queryHint) { - AbstractNamedQuery.this.removeHint(queryHint); - } - - public void remove(int index) { - AbstractNamedQuery.this.removeHint(nestedAnnotationAt(index)); - } - - public Annotation getJdtAnnotation(CompilationUnit astRoot) { - return AbstractNamedQuery.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - AbstractNamedQuery.this.newAnnotation(); - } - - public void removeAnnotation() { - AbstractNamedQuery.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - AbstractNamedQuery.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AbstractNamedQuery.this.getTextRange(astRoot); - } - - public String getElementName() { - return "hints"; - } - - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractRelationshipMappingAnnotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractRelationshipMappingAnnotation.java deleted file mode 100644 index 768c01ae60..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractRelationshipMappingAnnotation.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.EnumArrayDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitArrayAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter; -import org.eclipse.jpt.core.resource.java.CascadeType; -import org.eclipse.jpt.core.resource.java.FetchType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.utility.internal.CollectionTools; - - -public abstract class AbstractRelationshipMappingAnnotation extends AbstractResourceAnnotation<Attribute> implements RelationshipMappingAnnotation -{ - // hold this so we can get the 'targetEntity' text range - private final DeclarationAnnotationElementAdapter<String> targetEntityDeclarationAdapter; - - // hold this so we can get the 'fetch' text range - private final DeclarationAnnotationElementAdapter<String> fetchDeclarationAdapter; - - // hold this so we can get the 'cascade' text range - private final DeclarationAnnotationElementAdapter<String[]> cascadeDeclarationAdapter; - - private final AnnotationElementAdapter<String> targetEntityAdapter; - - private final AnnotationElementAdapter<String> fetchAdapter; - - private final AnnotationElementAdapter<String[]> cascadeAdapter; - - private String targetEntity; - - private String fullyQualifiedTargetEntity; - - private FetchType fetch; - - protected boolean cascadeAll; - - protected boolean cascadePersist; - - protected boolean cascadeMerge; - - protected boolean cascadeRemove; - - protected boolean cascadeRefresh; - - - public AbstractRelationshipMappingAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute, DeclarationAnnotationAdapter daa) { - super(parent, attribute, daa); - this.targetEntityDeclarationAdapter = targetEntityAdapter(); - this.targetEntityAdapter = buildAnnotationElementAdapter(this.targetEntityDeclarationAdapter); - this.fetchDeclarationAdapter = fetchAdapter(); - this.fetchAdapter = buildAnnotationElementAdapter(this.fetchDeclarationAdapter); - this.cascadeDeclarationAdapter = cascadeAdapter(); - this.cascadeAdapter = new ShortCircuitArrayAnnotationElementAdapter<String>(attribute, this.cascadeDeclarationAdapter); - } - - protected AnnotationElementAdapter<String> buildAnnotationElementAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(this.getMember(), daea); - } - - protected AnnotationElementAdapter<Boolean> buildBooleanAnnotationElementAdapter(DeclarationAnnotationElementAdapter<Boolean> daea) { - return new ShortCircuitAnnotationElementAdapter<Boolean>(this.getMember(), daea); - } - - /** - * return the Java adapter's 'targetEntity' element adapter config - */ - protected abstract DeclarationAnnotationElementAdapter<String> targetEntityAdapter(); - - /** - * return the Java adapter's 'cascade' element adapter config - */ - protected abstract DeclarationAnnotationElementAdapter<String[]> cascadeAdapter(); - - /** - * return the Java adapter's 'fetch' element adapter config - */ - protected abstract DeclarationAnnotationElementAdapter<String> fetchAdapter(); - - public void initialize(CompilationUnit astRoot) { - this.targetEntity = this.targetEntity(astRoot); - this.fullyQualifiedTargetEntity = this.fullyQualifiedTargetEntity(astRoot); - this.fetch = this.fetch(astRoot); - this.initializeCascadeTypes(astRoot); - } - - protected void initializeCascadeTypes(CompilationUnit astRoot) { - String[] javaValue = this.cascadeAdapter.getValue(astRoot); - CascadeType[] cascadeTypes = CascadeType.fromJavaAnnotationValue(javaValue); - - this.cascadeAll = CollectionTools.contains(cascadeTypes, CascadeType.ALL); - this.cascadeMerge = CollectionTools.contains(cascadeTypes, CascadeType.MERGE); - this.cascadePersist = CollectionTools.contains(cascadeTypes, CascadeType.PERSIST); - this.cascadeRefresh = CollectionTools.contains(cascadeTypes, CascadeType.REFRESH); - this.cascadeRemove = CollectionTools.contains(cascadeTypes, CascadeType.REMOVE); - } - - public String getTargetEntity() { - return this.targetEntity; - } - - public void setTargetEntity(String newTargetEntity) { - if (attributeValueHasNotChanged(this.targetEntity, newTargetEntity)) { - return; - } - String oldTargetEntity = this.targetEntity; - this.targetEntity = newTargetEntity; - this.targetEntityAdapter.setValue(newTargetEntity); - firePropertyChanged(TARGET_ENTITY_PROPERTY, oldTargetEntity, newTargetEntity); - } - - public String getFullyQualifiedTargetEntity() { - return this.fullyQualifiedTargetEntity; - } - - protected void setFullyQualifiedTargetEntity(String newTargetEntity) { - String oldTargetEntity = this.fullyQualifiedTargetEntity; - this.fullyQualifiedTargetEntity = newTargetEntity; - firePropertyChanged(FULLY_QUALFIEID_TARGET_ENTITY_PROPERTY, oldTargetEntity, newTargetEntity); - } - - public FetchType getFetch() { - return this.fetch; - } - - public void setFetch(FetchType newFetch) { - if (attributeValueHasNotChanged(this.fetch, newFetch)) { - return; - } - FetchType oldFetch = this.fetch; - this.fetch = newFetch; - this.fetchAdapter.setValue(FetchType.toJavaAnnotationValue(newFetch)); - firePropertyChanged(FETCH_PROPERTY, oldFetch, newFetch); - } - - public boolean isCascadeAll() { - return this.cascadeAll; - } - - public void setCascadeAll(boolean newCascadeAll) { - if (this.cascadeAll == newCascadeAll) { - return; - } - boolean oldCascadeAll = this.cascadeAll; - this.cascadeAll = newCascadeAll; - setCascade(newCascadeAll, CascadeType.ALL); - firePropertyChanged(CASCADE_ALL_PROPERTY, oldCascadeAll, newCascadeAll); - } - - public boolean isCascadePersist() { - return this.cascadePersist; - } - - public void setCascadePersist(boolean newCascadePersist) { - if (this.cascadePersist == newCascadePersist) { - return; - } - boolean oldCascadePersist = this.cascadePersist; - this.cascadePersist = newCascadePersist; - setCascade(newCascadePersist, CascadeType.PERSIST); - firePropertyChanged(CASCADE_PERSIST_PROPERTY, oldCascadePersist, newCascadePersist); - } - - public boolean isCascadeMerge() { - return this.cascadeMerge; - } - - public void setCascadeMerge(boolean newCascadeMerge) { - if (this.cascadeMerge == newCascadeMerge) { - return; - } - boolean oldCascadeMerge = this.cascadeMerge; - this.cascadeMerge = newCascadeMerge; - setCascade(newCascadeMerge, CascadeType.MERGE); - firePropertyChanged(CASCADE_MERGE_PROPERTY, oldCascadeMerge, newCascadeMerge); - } - - public boolean isCascadeRemove() { - return this.cascadeRemove; - } - - public void setCascadeRemove(boolean newCascadeRemove) { - if (this.cascadeRemove == newCascadeRemove) { - return; - } - boolean oldCascadeRemove = this.cascadeRemove; - this.cascadeRemove = newCascadeRemove; - setCascade(newCascadeRemove, CascadeType.REMOVE); - firePropertyChanged(CASCADE_REMOVE_PROPERTY, oldCascadeRemove, newCascadeRemove); - } - - public boolean isCascadeRefresh() { - return this.cascadeRefresh; - } - - public void setCascadeRefresh(boolean newCascadeRefresh) { - if (this.cascadeRefresh == newCascadeRefresh) { - return; - } - boolean oldCascadeRefresh = this.cascadeRefresh; - this.cascadeRefresh = newCascadeRefresh; - setCascade(newCascadeRefresh, CascadeType.REFRESH); - firePropertyChanged(CASCADE_REFRESH_PROPERTY, oldCascadeRefresh, newCascadeRefresh); - } - - private void setCascadeTypes(CascadeType[] cascadeTypes) { - String[] newJavaValue = CascadeType.toJavaAnnotationValue(cascadeTypes); - this.cascadeAdapter.setValue(newJavaValue); - } - - private void setCascade(boolean isSet, CascadeType cascadeType) { - String[] javaValue = this.cascadeAdapter.getValue(); - CascadeType[] cascadeTypes = CascadeType.fromJavaAnnotationValue(javaValue); - List<CascadeType> cascadeCollection = CollectionTools.list(cascadeTypes); - - if (cascadeCollection.contains(cascadeType)) { - if (!isSet) { - cascadeCollection.remove(cascadeType); - setCascadeTypes(cascadeCollection.toArray(new CascadeType[cascadeCollection.size()])); - } - } - else { - if (isSet) { - cascadeCollection.add(cascadeType); - setCascadeTypes(cascadeCollection.toArray(new CascadeType[cascadeCollection.size()])); - } - } - } - - public TextRange getTargetEntityTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.targetEntityDeclarationAdapter, astRoot); - } - - public TextRange getFetchTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.fetchDeclarationAdapter, astRoot); - } - - public TextRange getCascadeTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.cascadeDeclarationAdapter, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setFetch(this.fetch(astRoot)); - this.setTargetEntity(this.targetEntity(astRoot)); - this.setFullyQualifiedTargetEntity(this.fullyQualifiedTargetEntity(astRoot)); - this.updateCascadeFromJava(astRoot); - } - - protected FetchType fetch(CompilationUnit astRoot) { - return FetchType.fromJavaAnnotationValue(this.fetchAdapter.getValue(astRoot)); - } - - protected String targetEntity(CompilationUnit astRoot) { - return this.targetEntityAdapter.getValue(astRoot); - } - - private void updateCascadeFromJava(CompilationUnit astRoot) { - String[] javaValue = this.cascadeAdapter.getValue(astRoot); - CascadeType[] cascadeTypes = CascadeType.fromJavaAnnotationValue(javaValue); - setCascadeAll(CollectionTools.contains(cascadeTypes, CascadeType.ALL)); - setCascadeMerge(CollectionTools.contains(cascadeTypes, CascadeType.MERGE)); - setCascadePersist(CollectionTools.contains(cascadeTypes, CascadeType.PERSIST)); - setCascadeRefresh(CollectionTools.contains(cascadeTypes, CascadeType.REFRESH)); - setCascadeRemove(CollectionTools.contains(cascadeTypes, CascadeType.REMOVE)); - } - - private String fullyQualifiedTargetEntity(CompilationUnit astRoot) { - if (getTargetEntity() == null) { - return null; - } - return JDTTools.resolveFullyQualifiedName(this.targetEntityAdapter.getExpression(astRoot)); - } - - // ********** static methods ********** - - protected static DeclarationAnnotationElementAdapter<String> buildTargetEntityAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - // TODO what about QualifiedType? - return buildAnnotationElementAdapter(annotationAdapter, elementName, SimpleTypeStringExpressionConverter.instance()); - } - - protected static DeclarationAnnotationElementAdapter<String> buildAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName, ExpressionConverter<String> converter) { - return new ConversionDeclarationAnnotationElementAdapter<String>(annotationAdapter, elementName, false, converter); - } - - protected static DeclarationAnnotationElementAdapter<String> buildFetchAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new EnumDeclarationAnnotationElementAdapter(annotationAdapter, elementName, false); - } - - protected static DeclarationAnnotationElementAdapter<String[]> buildEnumArrayAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new EnumArrayDeclarationAnnotationElementAdapter(annotationAdapter, elementName, false); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceAnnotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceAnnotation.java deleted file mode 100644 index 1036203dc1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceAnnotation.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.Expression; -import org.eclipse.jpt.core.internal.utility.jdt.ASTNodeTextRange; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public abstract class AbstractResourceAnnotation<E extends Member> - extends AbstractJavaResourceNode - implements Annotation -{ - private final E member; - - private final DeclarationAnnotationAdapter daa; - - private final AnnotationAdapter annotationAdapter; - - protected AbstractResourceAnnotation(JavaResourceNode parent, E member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent); - this.member = member; - this.daa = daa; - this.annotationAdapter = annotationAdapter; - } - - public E getMember() { - return this.member; - } - - protected AbstractResourceAnnotation(JavaResourceNode parent, E member, DeclarationAnnotationAdapter daa) { - this(parent, member, daa, new MemberAnnotationAdapter(member, daa)); - } - - - public AnnotationAdapter getAnnotationAdapter() { - return this.annotationAdapter; - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return getAnnotationAdapter().getAnnotation(astRoot); - } - - public DeclarationAnnotationAdapter getDeclarationAnnotationAdapter() { - return this.daa; - } - - public void removeAnnotation() { - getAnnotationAdapter().removeAnnotation(); - } - - public void newAnnotation() { - getAnnotationAdapter().newMarkerAnnotation(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return getAnnotationTextRange(astRoot); - } - - protected TextRange getTextRange(ASTNode astNode) { - return (astNode == null) ? null : new ASTNodeTextRange(astNode); - } - - /** - * Return the text range corresponding to the specified annotation. - * If the annotation is missing, return null. - */ - protected TextRange getAnnotationTextRange(CompilationUnit astRoot) { - return this.getTextRange(getAnnotation(astRoot)); - } - - protected org.eclipse.jdt.core.dom.Annotation getAnnotation(CompilationUnit astRoot) { - return this.daa.getAnnotation(getMember().getModifiedDeclaration(astRoot)); - - } - - protected Expression getAnnotationElementExpression(DeclarationAnnotationElementAdapter<?> adapter, CompilationUnit astRoot) { - return adapter.getExpression(getMember().getModifiedDeclaration(astRoot)); - } - - protected TextRange getAnnotationElementTextRange(DeclarationAnnotationElementAdapter<?> adapter, CompilationUnit astRoot) { - return this.getTextRange(getAnnotationElementExpression(adapter, astRoot)); - - } - - /** - * Convenience method. If the specified element is missing - * return the member's text range instead. - */ - protected TextRange getElementTextRange(DeclarationAnnotationElementAdapter<?> elementAdapter, CompilationUnit astRoot) { - return this.getElementTextRange(getAnnotationElementTextRange(elementAdapter, astRoot), astRoot); - } - - /** - * Convenience method. If the specified element text range is null - * return the member's text range instead. - */ - protected TextRange getElementTextRange(TextRange elementTextRange, CompilationUnit astRoot) { - return (elementTextRange != null) ? elementTextRange : this.getTextRange(astRoot); - } - - /** - * Convenience method. Return whether the specified position touches the element. - * Returns false if the element does not exist - */ - protected boolean elementTouches(DeclarationAnnotationElementAdapter<?> elementAdapter, int pos, CompilationUnit astRoot) { - return this.elementTouches(getAnnotationElementTextRange(elementAdapter, astRoot), pos); - } - - /** - * Convenience method. Return whether element's text range is not - * null (meaning the element exists) and the specified position touches it. - */ - protected boolean elementTouches(TextRange elementTextRange, int pos) { - return (elementTextRange != null) && elementTextRange.touches(pos); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceTable.java deleted file mode 100644 index ab4b056265..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceTable.java +++ /dev/null @@ -1,339 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.resource.java.TableAnnotation; -import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public abstract class AbstractResourceTable extends AbstractResourceAnnotation<Member> implements TableAnnotation -{ - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - // hold this so we can get the 'schema' text range - private final DeclarationAnnotationElementAdapter<String> schemaDeclarationAdapter; - - // hold this so we can get the 'catalog' text range - private final DeclarationAnnotationElementAdapter<String> catalogDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private final AnnotationElementAdapter<String> schemaAdapter; - - private final AnnotationElementAdapter<String> catalogAdapter; - - private String name; - - private String catalog; - - private String schema; - - private final List<NestableUniqueConstraint> uniqueConstraints; - - private final UniqueConstraintsContainerAnnotation uniqueConstraintsContainerAnnotation; - - protected AbstractResourceTable(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.nameDeclarationAdapter = this.nameAdapter(daa); - this.schemaDeclarationAdapter = this.schemaAdapter(daa); - this.catalogDeclarationAdapter = this.catalogAdapter(daa); - this.nameAdapter = buildAnnotationElementAdapter(this.nameDeclarationAdapter); - this.schemaAdapter = buildAnnotationElementAdapter(this.schemaDeclarationAdapter); - this.catalogAdapter = buildAnnotationElementAdapter(this.catalogDeclarationAdapter); - this.uniqueConstraints = new ArrayList<NestableUniqueConstraint>(); - this.uniqueConstraintsContainerAnnotation = new UniqueConstraintsContainerAnnotation(); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - this.catalog = this.catalog(astRoot); - this.schema = this.schema(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.uniqueConstraintsContainerAnnotation); - } - - protected AnnotationElementAdapter<String> buildAnnotationElementAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(this.getMember(), daea); - } - - /** - * Build and return a declaration element adapter for the table's 'name' element - */ - protected abstract DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - /** - * Build and return a declaration element adapter for the table's 'schema' element - */ - protected abstract DeclarationAnnotationElementAdapter<String> schemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - /** - * Build and return a declaration element adapter for the table's 'catalog' element - */ - protected abstract DeclarationAnnotationElementAdapter<String> catalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public String getCatalog() { - return this.catalog; - } - - public void setCatalog(String newCatalog) { - if (attributeValueHasNotChanged(this.catalog, newCatalog)) { - return; - } - String oldCatalog = this.catalog; - this.catalog = newCatalog; - this.catalogAdapter.setValue(newCatalog); - firePropertyChanged(CATALOG_PROPERTY, oldCatalog, newCatalog); - } - - public String getSchema() { - return this.schema; - } - - public void setSchema(String newSchema) { - if (attributeValueHasNotChanged(this.schema, newSchema)) { - return; - } - String oldSchema = this.schema; - this.schema = newSchema; - this.schemaAdapter.setValue(newSchema); - firePropertyChanged(SCHEMA_PROPERTY, oldSchema, newSchema); - } - - public ListIterator<UniqueConstraintAnnotation> uniqueConstraints() { - return new CloneListIterator<UniqueConstraintAnnotation>(this.uniqueConstraints); - } - - public int uniqueConstraintsSize() { - return this.uniqueConstraints.size(); - } - - public NestableUniqueConstraint uniqueConstraintAt(int index) { - return this.uniqueConstraints.get(index); - } - - public int indexOfUniqueConstraint(UniqueConstraintAnnotation uniqueConstraint) { - return this.uniqueConstraints.indexOf(uniqueConstraint); - } - - public NestableUniqueConstraint addUniqueConstraint(int index) { - NestableUniqueConstraint uniqueConstraint = (NestableUniqueConstraint) ContainerAnnotationTools.addNestedAnnotation(index, this.uniqueConstraintsContainerAnnotation); - fireItemAdded(TableAnnotation.UNIQUE_CONSTRAINTS_LIST, index, uniqueConstraint); - return uniqueConstraint; - } - - private void addUniqueConstraint(int index, NestableUniqueConstraint uniqueConstraint) { - addItemToList(index, uniqueConstraint, this.uniqueConstraints, UNIQUE_CONSTRAINTS_LIST); - } - - public void removeUniqueConstraint(int index) { - NestableUniqueConstraint uniqueConstraint = this.uniqueConstraintAt(index); - removeUniqueConstraint(uniqueConstraint); - uniqueConstraint.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.uniqueConstraintsContainerAnnotation); - } - - private void removeUniqueConstraint(NestableUniqueConstraint uniqueConstraint) { - removeItemFromList(uniqueConstraint, this.uniqueConstraints, UNIQUE_CONSTRAINTS_LIST); - } - - public void moveUniqueConstraint(int targetIndex, int sourceIndex) { - moveUniqueConstraintInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.uniqueConstraintsContainerAnnotation); - fireItemMoved(TableAnnotation.UNIQUE_CONSTRAINTS_LIST, targetIndex, sourceIndex); - } - - protected void moveUniqueConstraintInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.uniqueConstraints, targetIndex, sourceIndex); - } - - protected abstract NestableUniqueConstraint createUniqueConstraint(int index); - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public TextRange getSchemaTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.schemaDeclarationAdapter, astRoot); - } - - public TextRange getCatalogTextRange(CompilationUnit astRoot) { - return getElementTextRange(this.catalogDeclarationAdapter, astRoot); - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.nameDeclarationAdapter, pos, astRoot); - } - - public boolean catalogTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.catalogDeclarationAdapter, pos, astRoot); - } - - public boolean schemaTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.schemaDeclarationAdapter, pos, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - this.setSchema(this.schema(astRoot)); - this.setCatalog(this.catalog(astRoot)); - this.updateUniqueConstraintsFromJava(astRoot); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - protected String schema(CompilationUnit astRoot) { - return this.schemaAdapter.getValue(astRoot); - } - - protected String catalog(CompilationUnit astRoot) { - return this.catalogAdapter.getValue(astRoot); - } - - /** - * here we just worry about getting the unique constraints lists the same size; - * then we delegate to the unique constraints to synch themselves up - */ - private void updateUniqueConstraintsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.uniqueConstraintsContainerAnnotation); - } - - - private class UniqueConstraintsContainerAnnotation extends AbstractJavaResourceNode - implements ContainerAnnotation<NestableUniqueConstraint> - { - public UniqueConstraintsContainerAnnotation() { - super(AbstractResourceTable.this); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public NestableUniqueConstraint addInternal(int index) { - NestableUniqueConstraint uniqueConstraint = AbstractResourceTable.this.createUniqueConstraint(index); - AbstractResourceTable.this.uniqueConstraints.add(index, uniqueConstraint); - return uniqueConstraint; - } - - public NestableUniqueConstraint add(int index) { - NestableUniqueConstraint uniqueConstraint = AbstractResourceTable.this.createUniqueConstraint(index); - AbstractResourceTable.this.addUniqueConstraint(index, uniqueConstraint); - return uniqueConstraint; - } - - public String getAnnotationName() { - return AbstractResourceTable.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.UNIQUE_CONSTRAINT; - } - - public int indexOf(NestableUniqueConstraint uniqueConstraint) { - return AbstractResourceTable.this.indexOfUniqueConstraint(uniqueConstraint); - } - - public void move(int targetIndex, int sourceIndex) { - AbstractResourceTable.this.moveUniqueConstraint(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - AbstractResourceTable.this.moveUniqueConstraintInternal(targetIndex, sourceIndex); - } - - public NestableUniqueConstraint nestedAnnotationAt(int index) { - return AbstractResourceTable.this.uniqueConstraintAt(index); - } - - public NestableUniqueConstraint nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestableUniqueConstraint uniqueConstraint : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == uniqueConstraint.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return uniqueConstraint; - } - } - return null; - } - - public ListIterator<NestableUniqueConstraint> nestedAnnotations() { - return new CloneListIterator<NestableUniqueConstraint>(AbstractResourceTable.this.uniqueConstraints); - } - - public int nestedAnnotationsSize() { - return AbstractResourceTable.this.uniqueConstraintsSize(); - } - - public void remove(NestableUniqueConstraint uniqueConstraint) { - AbstractResourceTable.this.removeUniqueConstraint(uniqueConstraint); - } - - public void remove(int index) { - this.remove(nestedAnnotationAt(index)); - } - - public Annotation getJdtAnnotation(CompilationUnit astRoot) { - return AbstractResourceTable.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - AbstractResourceTable.this.newAnnotation(); - } - - public void removeAnnotation() { - AbstractResourceTable.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - AbstractResourceTable.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AbstractResourceTable.this.getTextRange(astRoot); - } - - public String getElementName() { - return "uniqueConstraints"; - } - - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverrideImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverrideImpl.java deleted file mode 100644 index 5e7663ddf5..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverrideImpl.java +++ /dev/null @@ -1,285 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAssociationOverride; -import org.eclipse.jpt.core.resource.java.NestableJoinColumn; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class AssociationOverrideImpl - extends OverrideImpl - implements NestableAssociationOverride -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final List<NestableJoinColumn> joinColumns; - - private final JoinColumnsContainerAnnotation joinColumnsContainerAnnotation; - - protected AssociationOverrideImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.joinColumns = new ArrayList<NestableJoinColumn>(); - this.joinColumnsContainerAnnotation = new JoinColumnsContainerAnnotation(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.joinColumnsContainerAnnotation); - } - - public String getAnnotationName() { - return AssociationOverrideAnnotation.ANNOTATION_NAME; - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - AssociationOverrideAnnotation oldAssociationOverride = (AssociationOverrideAnnotation) oldAnnotation; - for (JoinColumnAnnotation joinColumn : CollectionTools.iterable(oldAssociationOverride.joinColumns())) { - NestableJoinColumn newJoinColumn = addJoinColumn(oldAssociationOverride.indexOfJoinColumn(joinColumn)); - newJoinColumn.initializeFrom((NestableAnnotation) joinColumn); - } - } - - - // ************* Association implementation ******************* - - public ListIterator<JoinColumnAnnotation> joinColumns() { - return new CloneListIterator<JoinColumnAnnotation>(this.joinColumns); - } - - public int joinColumnsSize() { - return this.joinColumns.size(); - } - - public NestableJoinColumn joinColumnAt(int index) { - return this.joinColumns.get(index); - } - - public int indexOfJoinColumn(JoinColumnAnnotation joinColumn) { - return this.joinColumns.indexOf(joinColumn); - } - - public NestableJoinColumn addJoinColumn(int index) { - NestableJoinColumn joinColumn = (NestableJoinColumn) ContainerAnnotationTools.addNestedAnnotation(index, this.joinColumnsContainerAnnotation); - fireItemAdded(AssociationOverrideAnnotation.JOIN_COLUMNS_LIST, index, joinColumn); - return joinColumn; - } - - private void addJoinColumn(int index, NestableJoinColumn joinColumn) { - addItemToList(index, joinColumn, this.joinColumns, AssociationOverrideAnnotation.JOIN_COLUMNS_LIST); - } - - public void removeJoinColumn(int index) { - NestableJoinColumn joinColumn = this.joinColumns.get(index); - removeJoinColumn(joinColumn); - joinColumn.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.joinColumnsContainerAnnotation); - } - - private void removeJoinColumn(NestableJoinColumn joinColumn) { - removeItemFromList(joinColumn, this.joinColumns, AssociationOverrideAnnotation.JOIN_COLUMNS_LIST); - } - - public void moveJoinColumn(int targetIndex, int sourceIndex) { - moveJoinColumnInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.joinColumnsContainerAnnotation); - fireItemMoved(AssociationOverrideAnnotation.JOIN_COLUMNS_LIST, targetIndex, sourceIndex); - } - - protected void moveJoinColumnInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.joinColumns, targetIndex, sourceIndex); - } - - protected NestableJoinColumn createJoinColumn(int index) { - return JoinColumnImpl.createAssociationOverrideJoinColumn(getDeclarationAnnotationAdapter(), this, getMember(), index); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.updateJoinColumnsFromJava(astRoot); - } - - private void updateJoinColumnsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.joinColumnsContainerAnnotation); - } - - - // ********** static methods ********** - static AssociationOverrideImpl createAssociationOverride(JavaResourceNode parent, Member member) { - return new AssociationOverrideImpl(parent, member, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(member, DECLARATION_ANNOTATION_ADAPTER)); - } - - static AssociationOverrideImpl createNestedAssociationOverride(JavaResourceNode parent, Member member, int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, attributeOverridesAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(member, idaa); - return new AssociationOverrideImpl(parent, member, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(attributeOverridesAdapter, index, JPA.ASSOCIATION_OVERRIDE); - } - - private class JoinColumnsContainerAnnotation extends AbstractJavaResourceNode - implements ContainerAnnotation<NestableJoinColumn> - { - public JoinColumnsContainerAnnotation() { - super(AssociationOverrideImpl.this); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public NestableJoinColumn addInternal(int index) { - NestableJoinColumn joinColumn = AssociationOverrideImpl.this.createJoinColumn(index); - AssociationOverrideImpl.this.joinColumns.add(index, joinColumn); - return joinColumn; - } - - public NestableJoinColumn add(int index) { - NestableJoinColumn joinColumn = AssociationOverrideImpl.this.createJoinColumn(index); - AssociationOverrideImpl.this.addJoinColumn(index, joinColumn); - return joinColumn; - } - - public int indexOf(NestableJoinColumn pkJoinColumn) { - return AssociationOverrideImpl.this.indexOfJoinColumn(pkJoinColumn); - } - - public void move(int targetIndex, int sourceIndex) { - AssociationOverrideImpl.this.moveJoinColumn(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - AssociationOverrideImpl.this.moveJoinColumnInternal(targetIndex, sourceIndex); - } - - public NestableJoinColumn nestedAnnotationAt(int index) { - return AssociationOverrideImpl.this.joinColumnAt(index); - } - - public ListIterator<NestableJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestableJoinColumn>(AssociationOverrideImpl.this.joinColumns); - } - - public int nestedAnnotationsSize() { - return joinColumnsSize(); - } - - public void remove(int index) { - this.remove(nestedAnnotationAt(index)); - } - - public void remove(NestableJoinColumn joinColumn) { - AssociationOverrideImpl.this.removeJoinColumn(joinColumn); - } - - public String getAnnotationName() { - return AssociationOverrideImpl.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.JOIN_COLUMN; - } - - public NestableJoinColumn nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableJoinColumn pkJoinColumn : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == pkJoinColumn.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return pkJoinColumn; - } - } - return null; - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return AssociationOverrideImpl.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - AssociationOverrideImpl.this.newAnnotation(); - } - - public void removeAnnotation() { - AssociationOverrideImpl.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - AssociationOverrideImpl.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AssociationOverrideImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return "joinColumns"; - } - - } - - public static class AssociationOverrideAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final AssociationOverrideAnnotationDefinition INSTANCE = new AssociationOverrideAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private AssociationOverrideAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return AssociationOverrideImpl.createAssociationOverride(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return AssociationOverrideAnnotation.ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverridesImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverridesImpl.java deleted file mode 100644 index 28be72a16f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverridesImpl.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.AssociationOverridesAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAssociationOverride; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class AssociationOverridesImpl extends AbstractResourceAnnotation<Member> implements AssociationOverridesAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected final List<NestableAssociationOverride> associationOverrides; - - protected AssociationOverridesImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.associationOverrides = new ArrayList<NestableAssociationOverride>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return AssociationOverrideAnnotation.ANNOTATION_NAME; - } - - public ListIterator<NestableAssociationOverride> nestedAnnotations() { - return new CloneListIterator<NestableAssociationOverride>(this.associationOverrides); - } - - public int nestedAnnotationsSize() { - return this.associationOverrides.size(); - } - - public NestableAssociationOverride addInternal(int index) { - NestableAssociationOverride associationOverride = createAssociationOverride(index); - this.associationOverrides.add(index, associationOverride); - return associationOverride; - } - - public NestableAssociationOverride add(int index) { - NestableAssociationOverride associationOverride = createAssociationOverride(index); - add(index, associationOverride); - return associationOverride; - } - - private void add(int index, NestableAssociationOverride associationOverride) { - addItemToList(index, associationOverride, this.associationOverrides, ASSOCIATION_OVERRIDES_LIST); - } - - public void remove(NestableAssociationOverride associationOverride) { - removeItemFromList(associationOverride, this.associationOverrides, ASSOCIATION_OVERRIDES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.associationOverrides, ASSOCIATION_OVERRIDES_LIST); - } - - public int indexOf(NestableAssociationOverride associationOverride) { - return this.associationOverrides.indexOf(associationOverride); - } - - public NestableAssociationOverride nestedAnnotationAt(int index) { - return this.associationOverrides.get(index); - } - - public NestableAssociationOverride nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestableAssociationOverride associationOverride : this.associationOverrides) { - if (jdtAnnotation == associationOverride.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return associationOverride; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.associationOverrides, ASSOCIATION_OVERRIDES_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.associationOverrides, targetIndex, sourceIndex); - } - - public String getElementName() { - return "value"; - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private AssociationOverrideImpl createAssociationOverride(int index) { - return AssociationOverrideImpl.createNestedAssociationOverride(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - public static class AssociationOverridesAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final AssociationOverridesAnnotationDefinition INSTANCE = new AssociationOverridesAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private AssociationOverridesAnnotationDefinition() { - super(); - } - - public AssociationOverridesAnnotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new AssociationOverridesImpl(parent, member); - } - - public AssociationOverridesAnnotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverrideImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverrideImpl.java deleted file mode 100644 index 94f9c20cba..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverrideImpl.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.ColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAttributeOverride; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class AttributeOverrideImpl - extends OverrideImpl - implements NestableAttributeOverride -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final MemberAnnotationAdapter columnAdapter; - - private ColumnImpl column; - - - protected AttributeOverrideImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.columnAdapter = new MemberAnnotationAdapter(getMember(), ColumnImpl.buildAttributeOverrideAnnotationAdapter(getDeclarationAnnotationAdapter())); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - if (this.columnAdapter.getAnnotation(astRoot) != null) { - this.column = ColumnImpl.createAttributeOverrideColumn(this, getMember(), getDeclarationAnnotationAdapter()); - this.column.initialize(astRoot); - } - } - - public String getAnnotationName() { - return AttributeOverrideAnnotation.ANNOTATION_NAME; - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - AttributeOverrideAnnotation oldAttributeOverride = (AttributeOverrideAnnotation) oldAnnotation; - if (oldAttributeOverride.getColumn() != null) { - ColumnAnnotation column = addColumn(); - ((NestableAnnotation) column).initializeFrom((NestableAnnotation) oldAttributeOverride.getColumn()); - } - } - - //************ AttributeOverride implementation **************** - - public ColumnAnnotation getNonNullColumn() { - return (getColumn() != null) ? getColumn() : new NullAttributeOverrideColumn(this); - } - - public ColumnAnnotation getColumn() { - return this.column; - } - - public ColumnAnnotation addColumn() { - ColumnImpl column = ColumnImpl.createAttributeOverrideColumn(this, getMember(), getDeclarationAnnotationAdapter()); - column.newAnnotation(); - setColumn(column); - return column; - } - - public void removeColumn() { - this.column.removeAnnotation(); - setColumn(null); - } - - protected void setColumn(ColumnImpl newColumn) { - ColumnImpl oldColumn = this.column; - this.column = newColumn; - firePropertyChanged(AttributeOverrideAnnotation.COLUMN_PROPERTY, oldColumn, newColumn); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - if (this.columnAdapter.getAnnotation(astRoot) == null) { - this.setColumn(null); - } - else { - if (getColumn() != null) { - getColumn().updateFromJava(astRoot); - } - else { - ColumnImpl column = ColumnImpl.createAttributeOverrideColumn(this, getMember(), getDeclarationAnnotationAdapter()); - column.initialize(astRoot); - this.setColumn(column); - } - } - } - - // ********** static methods ********** - static AttributeOverrideImpl createAttributeOverride(JavaResourceNode parent, Member member) { - return new AttributeOverrideImpl(parent, member, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(member, DECLARATION_ANNOTATION_ADAPTER)); - } - - static AttributeOverrideImpl createNestedAttributeOverride(JavaResourceNode parent, Member member, int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, attributeOverridesAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(member, idaa); - return new AttributeOverrideImpl(parent, member, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(attributeOverridesAdapter, index, JPA.ATTRIBUTE_OVERRIDE); - } - - public static class AttributeOverrideAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final AttributeOverrideAnnotationDefinition INSTANCE = new AttributeOverrideAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private AttributeOverrideAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return AttributeOverrideImpl.createAttributeOverride(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return AttributeOverrideAnnotation.ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverridesImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverridesImpl.java deleted file mode 100644 index f8cbff5faf..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverridesImpl.java +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAttributeOverride; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class AttributeOverridesImpl extends AbstractResourceAnnotation<Member> implements AttributeOverridesAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final List<NestableAttributeOverride> attributesOverrides; - - protected AttributeOverridesImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.attributesOverrides = new ArrayList<NestableAttributeOverride>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return AttributeOverrideAnnotation.ANNOTATION_NAME; - } - - public ListIterator<NestableAttributeOverride> nestedAnnotations() { - return new CloneListIterator<NestableAttributeOverride>(this.attributesOverrides); - } - - public int nestedAnnotationsSize() { - return this.attributesOverrides.size(); - } - - public NestableAttributeOverride addInternal(int index) { - NestableAttributeOverride attributeOverride = createAttributeOverride(index); - this.attributesOverrides.add(index, attributeOverride); - return attributeOverride; - } - - public NestableAttributeOverride add(int index) { - NestableAttributeOverride attributeOverride = createAttributeOverride(index); - add(index, attributeOverride); - return attributeOverride; - } - - private void add(int index, NestableAttributeOverride attributeOverride) { - addItemToList(index, attributeOverride, this.attributesOverrides, ATTRIBUTE_OVERRIDES_LIST); - } - - public void remove(NestableAttributeOverride attributeOverride) { - removeItemFromList(attributeOverride, this.attributesOverrides, ATTRIBUTE_OVERRIDES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.attributesOverrides, ATTRIBUTE_OVERRIDES_LIST); - } - - public int indexOf(NestableAttributeOverride attributeOverride) { - return this.attributesOverrides.indexOf(attributeOverride); - } - - public NestableAttributeOverride nestedAnnotationAt(int index) { - return this.attributesOverrides.get(index); - } - - public NestableAttributeOverride nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestableAttributeOverride attributeOverride : this.attributesOverrides) { - if (jdtAnnotation == attributeOverride.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return attributeOverride; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.attributesOverrides, ATTRIBUTE_OVERRIDES_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.attributesOverrides, targetIndex, sourceIndex); - } - - public String getElementName() { - return "value"; - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private AttributeOverrideImpl createAttributeOverride(int index) { - return AttributeOverrideImpl.createNestedAttributeOverride(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - - public static class AttributeOverridesAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final AttributeOverridesAnnotationDefinition INSTANCE = new AttributeOverridesAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private AttributeOverridesAnnotationDefinition() { - super(); - } - - public AttributeOverridesAnnotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new AttributeOverridesImpl(parent, member); - } - - public AttributeOverridesAnnotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BaseColumnImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BaseColumnImpl.java deleted file mode 100644 index 5980461ada..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BaseColumnImpl.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.BaseColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public abstract class BaseColumnImpl extends AbstractNamedColumn implements BaseColumnAnnotation -{ - // hold this so we can get the 'table' text range - private final DeclarationAnnotationElementAdapter<String> tableDeclarationAdapter; - - // hold this so we can get the 'unique' text range - private final DeclarationAnnotationElementAdapter<Boolean> uniqueDeclarationAdapter; - - // hold this so we can get the 'nullable' text range - private final DeclarationAnnotationElementAdapter<Boolean> nullableDeclarationAdapter; - - // hold this so we can get the 'insertable' text range - private final DeclarationAnnotationElementAdapter<Boolean> insertableDeclarationAdapter; - - // hold this so we can get the 'updatable' text range - private final DeclarationAnnotationElementAdapter<Boolean> updatableDeclarationAdapter; - - private final AnnotationElementAdapter<String> tableAdapter; - - private final AnnotationElementAdapter<Boolean> uniqueAdapter; - - private final AnnotationElementAdapter<Boolean> nullableAdapter; - - private final AnnotationElementAdapter<Boolean> insertableAdapter; - - private final AnnotationElementAdapter<Boolean> updatableAdapter; - - private String table; - private Boolean unique; - private Boolean nullable; - private Boolean insertable; - private Boolean updatable; - - - public BaseColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - this(parent, member, daa, new MemberAnnotationAdapter(member, daa)); - } - - public BaseColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.tableDeclarationAdapter = this.buildStringElementAdapter(this.tableElementName()); - this.tableAdapter = this.buildShortCircuitElementAdapter(this.tableDeclarationAdapter); - this.uniqueDeclarationAdapter = this.buildBooleanElementAdapter(this.uniqueElementName()); - this.uniqueAdapter = this.buildShortCircuitBooleanElementAdapter(this.uniqueDeclarationAdapter); - this.nullableDeclarationAdapter = this.buildBooleanElementAdapter(this.nullableElementName()); - this.nullableAdapter = this.buildShortCircuitBooleanElementAdapter(this.nullableDeclarationAdapter); - this.insertableDeclarationAdapter = this.buildBooleanElementAdapter(this.insertableElementName()); - this.insertableAdapter = this.buildShortCircuitBooleanElementAdapter(this.insertableDeclarationAdapter); - this.updatableDeclarationAdapter = this.buildBooleanElementAdapter(this.updatableElementName()); - this.updatableAdapter = this.buildShortCircuitBooleanElementAdapter(this.updatableDeclarationAdapter); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.table = this.table(astRoot); - this.unique = this.unique(astRoot); - this.nullable = this.nullable(astRoot); - this.insertable = this.insertable(astRoot); - this.updatable = this.updatable(astRoot); - } - - protected abstract String tableElementName(); - - protected abstract String uniqueElementName(); - - protected abstract String nullableElementName(); - - protected abstract String insertableElementName(); - - protected abstract String updatableElementName(); - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - BaseColumnAnnotation oldColumn = (BaseColumnAnnotation) oldAnnotation; - setTable(oldColumn.getTable()); - setUnique(oldColumn.getUnique()); - setNullable(oldColumn.getNullable()); - setInsertable(oldColumn.getInsertable()); - setUpdatable(oldColumn.getUpdatable()); - } - - //************* AbstractColumn implementation ************* - public String getTable() { - return this.table; - } - - public void setTable(String newTable) { - if (attributeValueHasNotChanged(this.table, newTable)) { - return; - } - String oldTable = this.table; - this.table = newTable; - this.tableAdapter.setValue(newTable); - firePropertyChanged(TABLE_PROPERTY, oldTable, newTable); - } - - public Boolean getUnique() { - return this.unique; - } - - public void setUnique(Boolean newUnique) { - if (attributeValueHasNotChanged(this.unique, newUnique)) { - return; - } - Boolean oldUnique = this.unique; - this.unique = newUnique; - this.uniqueAdapter.setValue(newUnique); - firePropertyChanged(UNIQUE_PROPERTY, oldUnique, newUnique); - } - - public Boolean getNullable() { - return this.nullable; - } - - public void setNullable(Boolean newNullable) { - if (attributeValueHasNotChanged(this.nullable, newNullable)) { - return; - } - Boolean oldNullable = this.nullable; - this.nullable = newNullable; - this.nullableAdapter.setValue(newNullable); - firePropertyChanged(NULLABLE_PROPERTY, oldNullable, newNullable); - } - - public Boolean getInsertable() { - return this.insertable; - } - - public void setInsertable(Boolean newInsertable) { - if (attributeValueHasNotChanged(this.insertable, newInsertable)) { - return; - } - Boolean oldInsertable = this.insertable; - this.insertable = newInsertable; - this.insertableAdapter.setValue(newInsertable); - firePropertyChanged(INSERTABLE_PROPERTY, oldInsertable, newInsertable); - } - - public Boolean getUpdatable() { - return this.updatable; - } - - public void setUpdatable(Boolean newUpdatable) { - if (attributeValueHasNotChanged(this.updatable, newUpdatable)) { - return; - } - Boolean oldUpdatable = this.updatable; - this.updatable = newUpdatable; - this.updatableAdapter.setValue(newUpdatable); - firePropertyChanged(UPDATABLE_PROPERTY, oldUpdatable, newUpdatable); - } - - public TextRange getNullableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nullableDeclarationAdapter, astRoot); - } - - public TextRange getInsertableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.insertableDeclarationAdapter, astRoot); - } - - public TextRange getUniqueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.uniqueDeclarationAdapter, astRoot); - } - - public TextRange getUpdatableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.updatableDeclarationAdapter, astRoot); - } - - public TextRange getTableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.tableDeclarationAdapter, astRoot); - } - - public boolean tableTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.tableDeclarationAdapter, pos, astRoot); - } - - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setTable(this.table(astRoot)); - this.setUnique(this.unique(astRoot)); - this.setNullable(this.nullable(astRoot)); - this.setInsertable(this.insertable(astRoot)); - this.setUpdatable(this.updatable(astRoot)); - } - - protected String table(CompilationUnit astRoot) { - return this.tableAdapter.getValue(astRoot); - } - - protected Boolean unique(CompilationUnit astRoot) { - return this.uniqueAdapter.getValue(astRoot); - } - - protected Boolean nullable(CompilationUnit astRoot) { - return this.nullableAdapter.getValue(astRoot); - } - - protected Boolean insertable(CompilationUnit astRoot) { - return this.insertableAdapter.getValue(astRoot); - } - - protected Boolean updatable(CompilationUnit astRoot) { - return this.updatableAdapter.getValue(astRoot); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BasicImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BasicImpl.java deleted file mode 100644 index 7319cabad6..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/BasicImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.BasicAnnotation; -import org.eclipse.jpt.core.resource.java.FetchType; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - - -public class BasicImpl extends AbstractResourceAnnotation<Attribute> implements BasicAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final AnnotationElementAdapter<Boolean> optionalAdapter; - - private final AnnotationElementAdapter<String> fetchAdapter; - - private static final DeclarationAnnotationElementAdapter<Boolean> OPTIONAL_ADAPTER = buildOptionalAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter(); - - private Boolean optional; - - private FetchType fetch; - - protected BasicImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.optionalAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(attribute, OPTIONAL_ADAPTER); - this.fetchAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, FETCH_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.optional = this.optional(astRoot); - this.fetch = this.fetch(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - //*************** Basic implementation **************** - public Boolean getOptional() { - return this.optional; - } - - public void setOptional(Boolean newOptional) { - if (attributeValueHasNotChanged(this.optional, newOptional)) { - return; - } - Boolean oldOptional = this.optional; - this.optional = newOptional; - this.optionalAdapter.setValue(newOptional); - firePropertyChanged(OPTIONAL_PROPERTY, oldOptional, newOptional); - } - - public FetchType getFetch() { - return this.fetch; - } - - public void setFetch(FetchType newFetch) { - if (attributeValueHasNotChanged(this.fetch, newFetch)) { - return; - } - FetchType oldFetch = this.fetch; - this.fetch = newFetch; - this.fetchAdapter.setValue(FetchType.toJavaAnnotationValue(newFetch)); - firePropertyChanged(FETCH_PROPERTY, oldFetch, newFetch); - } - - public TextRange getFetchTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(FETCH_ADAPTER, astRoot); - } - - public TextRange getOptionalTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(OPTIONAL_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setOptional(this.optional(astRoot)); - this.setFetch(this.fetch(astRoot)); - } - - protected FetchType fetch(CompilationUnit astRoot) { - return FetchType.fromJavaAnnotationValue(this.fetchAdapter.getValue(astRoot)); - } - - protected Boolean optional(CompilationUnit astRoot) { - return this.optionalAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter() { - return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, JPA.BASIC__OPTIONAL, false, BooleanExpressionConverter.instance()); - } - - private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.BASIC__FETCH, false); - } - - public static class BasicAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final BasicAnnotationDefinition INSTANCE = new BasicAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static BasicAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private BasicAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new BasicImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullBasic(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ColumnImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ColumnImpl.java deleted file mode 100644 index 56bed626d3..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ColumnImpl.java +++ /dev/null @@ -1,242 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.ColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class ColumnImpl extends BaseColumnImpl implements ColumnAnnotation, NestableAnnotation -{ - // this adapter is only used by a Column annotation associated with a mapping annotation (e.g. Basic) - public static final DeclarationAnnotationAdapter MAPPING_DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - // hold this so we can get the 'length' text range - private final DeclarationAnnotationElementAdapter<Integer> lengthDeclarationAdapter; - - // hold this so we can get the 'precision' text range - private final DeclarationAnnotationElementAdapter<Integer> precisionDeclarationAdapter; - - // hold this so we can get the 'scale' text range - private final DeclarationAnnotationElementAdapter<Integer> scaleDeclarationAdapter; - - private final AnnotationElementAdapter<Integer> lengthAdapter; - - private final AnnotationElementAdapter<Integer> precisionAdapter; - - private final AnnotationElementAdapter<Integer> scaleAdapter; - - private Integer length; - - private Integer precision; - - private Integer scale; - - protected ColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - super(parent, member, daa); - this.lengthDeclarationAdapter = this.buildIntegerElementAdapter(JPA.COLUMN__LENGTH); - this.lengthAdapter = this.buildShortCircuitIntegerElementAdapter(this.lengthDeclarationAdapter); - this.precisionDeclarationAdapter = this.buildIntegerElementAdapter(JPA.COLUMN__PRECISION); - this.precisionAdapter = this.buildShortCircuitIntegerElementAdapter(this.precisionDeclarationAdapter); - this.scaleDeclarationAdapter = this.buildIntegerElementAdapter(JPA.COLUMN__SCALE); - this.scaleAdapter = this.buildShortCircuitIntegerElementAdapter(this.scaleDeclarationAdapter); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.length = this.length(astRoot); - this.precision = this.precision(astRoot); - this.scale = this.scale(astRoot); - } - - @Override - protected String nameElementName() { - return JPA.COLUMN__NAME; - } - - @Override - protected String columnDefinitionElementName() { - return JPA.COLUMN__COLUMN_DEFINITION; - } - - @Override - protected String tableElementName() { - return JPA.COLUMN__TABLE; - } - - @Override - protected String uniqueElementName() { - return JPA.COLUMN__UNIQUE; - } - - @Override - protected String nullableElementName() { - return JPA.COLUMN__NULLABLE; - } - - @Override - protected String insertableElementName() { - return JPA.COLUMN__INSERTABLE; - } - - @Override - protected String updatableElementName() { - return JPA.COLUMN__UPDATABLE; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void moveAnnotation(int newIndex) { - //TODO move makes no sense for Column. maybe NestableAnnotation - //needs to be split up and we could have IndexableAnnotation - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - ColumnAnnotation oldColumn = (ColumnAnnotation) oldAnnotation; - setLength(oldColumn.getLength()); - setPrecision(oldColumn.getPrecision()); - setScale(oldColumn.getScale()); - } - - //************** Column implementation ************** - public Integer getLength() { - return this.length; - } - - public void setLength(Integer newLength) { - if (attributeValueHasNotChanged(this.length, newLength)) { - return; - } - Integer oldLength = this.length; - this.length = newLength; - this.lengthAdapter.setValue(newLength); - firePropertyChanged(LENGTH_PROPERTY, oldLength, newLength); - } - - public Integer getPrecision() { - return this.precision; - } - - public void setPrecision(Integer newPrecision) { - if (attributeValueHasNotChanged(this.precision, newPrecision)) { - return; - } - Integer oldPrecision = this.precision; - this.precision = newPrecision; - this.precisionAdapter.setValue(newPrecision); - firePropertyChanged(PRECISION_PROPERTY, oldPrecision, newPrecision); - } - - public Integer getScale() { - return this.scale; - } - - public void setScale(Integer newScale) { - if (attributeValueHasNotChanged(this.scale, newScale)) { - return; - } - Integer oldScale = this.scale; - this.scale = newScale; - this.scaleAdapter.setValue(newScale); - firePropertyChanged(SCALE_PROPERTY, oldScale, newScale); - } - - public TextRange getLengthTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.lengthDeclarationAdapter, astRoot); - } - - public TextRange getPrecisionTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.precisionDeclarationAdapter, astRoot); - } - - public TextRange getScaleTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.scaleDeclarationAdapter, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setLength(this.length(astRoot)); - this.setPrecision(this.precision(astRoot)); - this.setScale(this.scale(astRoot)); - } - - protected Integer length(CompilationUnit astRoot) { - return this.lengthAdapter.getValue(astRoot); - } - - protected Integer precision(CompilationUnit astRoot) { - return this.precisionAdapter.getValue(astRoot); - } - - protected Integer scale(CompilationUnit astRoot) { - return this.scaleAdapter.getValue(astRoot); - } - - // ********** static methods ********** - - static ColumnImpl createAttributeOverrideColumn(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter attributeOverrideAnnotationAdapter) { - return new ColumnImpl(parent, member, buildAttributeOverrideAnnotationAdapter(attributeOverrideAnnotationAdapter)); - } - - static DeclarationAnnotationAdapter buildAttributeOverrideAnnotationAdapter(DeclarationAnnotationAdapter attributeOverrideAnnotationAdapter) { - return new NestedDeclarationAnnotationAdapter(attributeOverrideAnnotationAdapter, JPA.ATTRIBUTE_OVERRIDE__COLUMN, JPA.COLUMN); - } - - public static class ColumnAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final ColumnAnnotationDefinition INSTANCE = new ColumnAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private ColumnAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new ColumnImpl(parent, member, ColumnImpl.MAPPING_DECLARATION_ANNOTATION_ADAPTER); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullColumn(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ContainerAnnotationTools.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ContainerAnnotationTools.java deleted file mode 100644 index f316e72bd3..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ContainerAnnotationTools.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.List; -import org.eclipse.jdt.core.dom.ASTVisitor; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.MarkerAnnotation; -import org.eclipse.jdt.core.dom.MemberValuePair; -import org.eclipse.jdt.core.dom.NormalAnnotation; -import org.eclipse.jdt.core.dom.SingleMemberAnnotation; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.utility.internal.CollectionTools; - -public class ContainerAnnotationTools -{ - - public static NestableAnnotation addNestedAnnotation(int index, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - int size = containerAnnotation.nestedAnnotationsSize(); - NestableAnnotation nestedAnnotation = containerAnnotation.addInternal(size); - nestedAnnotation.newAnnotation(); - containerAnnotation.moveInternal(index, size); - synchAnnotationsAfterMove(index, size, containerAnnotation); - return nestedAnnotation; - } - - /** - * synchronize the source annotations with the model nestableAnnotations, - * starting at the end of the list to prevent overlap - */ - public static void synchAnnotationsAfterAdd(int index, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - List<NestableAnnotation> nestableAnnotations = CollectionTools.list(containerAnnotation.nestedAnnotations()); - for (int i = nestableAnnotations.size(); i-- > index;) { - synch(nestableAnnotations.get(i), i); - } - } - - /** - * synchronize the source annotations with the model nestableAnnotations, - * starting at the specified index to prevent overlap - */ - public static void synchAnnotationsAfterRemove(int index, ContainerAnnotation<? extends NestableAnnotation> pluralAnnotation) { - List<NestableAnnotation> nestableAnnotations = CollectionTools.list(pluralAnnotation.nestedAnnotations()); - for (int i = index; i < nestableAnnotations.size(); i++) { - synch(nestableAnnotations.get(i), i); - } - } - - private static void synch(NestableAnnotation nestableAnnotation, int index) { - nestableAnnotation.moveAnnotation(index); - } - - /** - * synchronize the annotations with the model nestableAnnotations - */ - public static void synchAnnotationsAfterMove(int targetIndex, int sourceIndex, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - NestableAnnotation nestableAnnotation = containerAnnotation.nestedAnnotationAt(targetIndex); - - synch(nestableAnnotation, containerAnnotation.nestedAnnotationsSize()); - - List<NestableAnnotation> nestableAnnotations = CollectionTools.list(containerAnnotation.nestedAnnotations()); - if (sourceIndex < targetIndex) { - for (int i = sourceIndex; i < targetIndex; i++) { - synch(nestableAnnotations.get(i), i); - } - } - else { - for (int i = sourceIndex; i > targetIndex; i-- ) { - synch(nestableAnnotations.get(i), i); - } - } - synch(nestableAnnotation, targetIndex); - } - - - public static void initializeNestedAnnotations(CompilationUnit astRoot, ContainerAnnotation<?> containerAnnotation) { - addAnnotationsFromSource(astRoot, containerAnnotation); - } - - private static void addAnnotationsFromSource(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - containerAnnotation.getJdtAnnotation(astRoot).accept(initialJavaMemberAnnotationAstVisitor(astRoot, containerAnnotation)); - } - - /** - * Only visit the member value pair with the given element name. - * If there is no element name (like in the case of value elements) - * then we will visit all annotations with the annotation name inside - * the given container annotation - */ - private static ASTVisitor initialJavaMemberAnnotationAstVisitor(final CompilationUnit astRoot, final ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - return new ASTVisitor() { - @Override - public boolean visit(MemberValuePair node) { - return node.getName().getFullyQualifiedName().equals(containerAnnotation.getElementName()); - } - @Override - public boolean visit(SingleMemberAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - @Override - public boolean visit(NormalAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - @Override - public boolean visit(MarkerAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - private boolean visit(org.eclipse.jdt.core.dom.Annotation node) { - if (containerAnnotation.getAnnotationName().equals(JDTTools.resolveAnnotation(node))) { - return true; - } - if (containerAnnotation.getNestableAnnotationName().equals(JDTTools.resolveAnnotation(node))) { - Annotation nestedAnnotation = containerAnnotation.addInternal(containerAnnotation.nestedAnnotationsSize()); - nestedAnnotation.initialize(astRoot); - } - return false; - } - }; - } - - public static void updateNestedAnnotationsFromJava(CompilationUnit astRoot, ContainerAnnotation<?> containerAnnotation) { - addOrUpdateAnnotationInSource(astRoot, containerAnnotation); - //TODO not sure how to handle generics here and get rid of this warning - removeAnnotationsNotInSource(astRoot, (ContainerAnnotation<NestableAnnotation>) containerAnnotation); - } - - private static void addOrUpdateAnnotationInSource(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - containerAnnotation.getJdtAnnotation(astRoot).accept(javaMemberAnnotationAstVisitor(astRoot, containerAnnotation)); - } - - private static void removeAnnotationsNotInSource(CompilationUnit astRoot, ContainerAnnotation<NestableAnnotation> containerAnnotation) { - for (NestableAnnotation annotation : CollectionTools.iterable(containerAnnotation.nestedAnnotations())) { - if (annotation.getJdtAnnotation(astRoot) == null) { - containerAnnotation.remove(annotation); - } - } - } - - /** - * Only visit the member value pair with the given element name. - * If there is no element name (like in the case of value elements) - * then we will visit all annotations with the annotation name inside - * the given container annotation - */ - private static ASTVisitor javaMemberAnnotationAstVisitor(final CompilationUnit astRoot, final ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - return new ASTVisitor() { - @Override - public boolean visit(MemberValuePair node) { - return node.getName().getFullyQualifiedName().equals(containerAnnotation.getElementName()); - } - - @Override - public boolean visit(SingleMemberAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - @Override - public boolean visit(NormalAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - @Override - public boolean visit(MarkerAnnotation node) { - return visit((org.eclipse.jdt.core.dom.Annotation) node); - } - - private boolean visit(org.eclipse.jdt.core.dom.Annotation node) { - if (containerAnnotation.getAnnotationName().equals(JDTTools.resolveAnnotation(node))) { - return true; - } - if (containerAnnotation.getNestableAnnotationName().equals(JDTTools.resolveAnnotation(node))) { - NestableAnnotation nestedAnnotation = containerAnnotation.nestedAnnotationFor(node); - if (nestedAnnotation != null) { - nestedAnnotation.updateFromJava(astRoot); - } - else { - nestedAnnotation = containerAnnotation.add(containerAnnotation.nestedAnnotationsSize()); - nestedAnnotation.initialize(astRoot); - } - } - return false; - } - }; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorColumnImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorColumnImpl.java deleted file mode 100644 index 106aceab94..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorColumnImpl.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation; -import org.eclipse.jpt.core.resource.java.DiscriminatorType; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class DiscriminatorColumnImpl extends AbstractNamedColumn implements DiscriminatorColumnAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> DISCRIMINATOR_TYPE_ADAPTER = buildDiscriminatorTypeAdapter(); - - // hold this so we can get the 'length' text range - private final DeclarationAnnotationElementAdapter<Integer> lengthDeclarationAdapter; - - private final AnnotationElementAdapter<String> discriminatorTypeAdapter; - - private final AnnotationElementAdapter<Integer> lengthAdapter; - - private DiscriminatorType discriminatorType; - - private Integer length; - - protected DiscriminatorColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - super(parent, member, daa, new MemberAnnotationAdapter(member, daa)); - this.discriminatorTypeAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, DISCRIMINATOR_TYPE_ADAPTER); - this.lengthDeclarationAdapter = this.buildIntegerElementAdapter(JPA.DISCRIMINATOR_COLUMN__LENGTH); - this.lengthAdapter = this.buildShortCircuitIntegerElementAdapter(this.lengthDeclarationAdapter); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.discriminatorType = this.discriminatorType(astRoot); - this.length = this.length(astRoot); - } - - @Override - protected String nameElementName() { - return JPA.DISCRIMINATOR_COLUMN__NAME; - } - - @Override - protected String columnDefinitionElementName() { - return JPA.DISCRIMINATOR_COLUMN__COLUMN_DEFINITION; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void moveAnnotation(int newIndex) { - //TODO move makes no sense for DiscriminatorColumn. maybe NestableAnnotation - //needs to be split up and we could have IndexableAnnotation - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - DiscriminatorColumnAnnotation oldColumn = (DiscriminatorColumnAnnotation) oldAnnotation; - setLength(oldColumn.getLength()); - setDiscriminatorType(oldColumn.getDiscriminatorType()); - } - - public DiscriminatorType getDiscriminatorType() { - return this.discriminatorType; - } - - public void setDiscriminatorType(DiscriminatorType newDiscriminatorType) { - if (attributeValueHasNotChanged(this.discriminatorType, newDiscriminatorType)) { - return; - } - DiscriminatorType oldDiscriminatorType = this.discriminatorType; - this.discriminatorType = newDiscriminatorType; - this.discriminatorTypeAdapter.setValue(DiscriminatorType.toJavaAnnotationValue(newDiscriminatorType)); - firePropertyChanged(DISCRIMINATOR_TYPE_PROPERTY, oldDiscriminatorType, newDiscriminatorType); - } - - public Integer getLength() { - return this.length; - } - - public void setLength(Integer newLength) { - if (attributeValueHasNotChanged(this.length, newLength)) { - return; - } - Integer oldLength = this.length; - this.length = newLength; - this.lengthAdapter.setValue(newLength); - firePropertyChanged(LENGTH_PROPERTY, oldLength, newLength); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setLength(this.length(astRoot)); - this.setDiscriminatorType(this.discriminatorType(astRoot)); - } - - protected Integer length(CompilationUnit astRoot) { - return this.lengthAdapter.getValue(astRoot); - } - - protected DiscriminatorType discriminatorType(CompilationUnit astRoot) { - return DiscriminatorType.fromJavaAnnotationValue(this.discriminatorTypeAdapter.getValue(astRoot)); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildDiscriminatorTypeAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.DISCRIMINATOR_COLUMN__DISCRIMINATOR_TYPE); - } - - public static class DiscriminatorColumnAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final DiscriminatorColumnAnnotationDefinition INSTANCE = new DiscriminatorColumnAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private DiscriminatorColumnAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new DiscriminatorColumnImpl(parent, member, DiscriminatorColumnImpl.DECLARATION_ANNOTATION_ADAPTER); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullDiscriminatorColumn(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorValueImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorValueImpl.java deleted file mode 100644 index 96ba135b6a..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/DiscriminatorValueImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.DiscriminatorValueAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class DiscriminatorValueImpl extends AbstractResourceAnnotation<Type> implements DiscriminatorValueAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); - - - private final AnnotationElementAdapter<String> valueAdapter; - - private String value; - - protected DiscriminatorValueImpl(JavaResourceNode parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, VALUE_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.value = this.value(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getValue() { - return this.value; - } - - public void setValue(String newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - String oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(newValue); - firePropertyChanged(VALUE_PROPERTY, oldValue, newValue); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setValue(this.value(astRoot)); - } - - protected String value(CompilationUnit astRoot) { - return this.valueAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.DISCRIMINATOR_VALUE__VALUE); - } - - - public static class DiscriminatorValueAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final DiscriminatorValueAnnotationDefinition INSTANCE = new DiscriminatorValueAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private DiscriminatorValueAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new DiscriminatorValueImpl(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullDiscriminatorValue(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddableImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddableImpl.java deleted file mode 100644 index 283dcf3d20..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddableImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - - -public class EmbeddableImpl extends AbstractResourceAnnotation<Type> implements EmbeddableAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected EmbeddableImpl(JavaResourcePersistentType parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - - public static class EmbeddableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EmbeddableAnnotationDefinition INSTANCE = new EmbeddableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static EmbeddableAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private EmbeddableAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new EmbeddableImpl((JavaResourcePersistentType) parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedIdImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedIdImpl.java deleted file mode 100644 index c500e301c2..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedIdImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class EmbeddedIdImpl extends AbstractResourceAnnotation<Attribute> implements EmbeddedIdAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected EmbeddedIdImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - - public static class EmbeddedIdAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EmbeddedIdAnnotationDefinition INSTANCE = new EmbeddedIdAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static EmbeddedIdAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private EmbeddedIdAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new EmbeddedIdImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedImpl.java deleted file mode 100644 index bb975fee65..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EmbeddedImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - - -public class EmbeddedImpl extends AbstractResourceAnnotation<Attribute> implements EmbeddedAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected EmbeddedImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - public static class EmbeddedAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EmbeddedAnnotationDefinition INSTANCE = new EmbeddedAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static EmbeddedAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private EmbeddedAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new EmbeddedImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullEmbedded(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EntityImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EntityImpl.java deleted file mode 100644 index bff7e3ac5c..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EntityImpl.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.EntityAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - - -public class EntityImpl extends AbstractResourceAnnotation<Type> implements EntityAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final AnnotationElementAdapter<String> nameAdapter; - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = buildNameAdapter(); - - private String name; - - protected EntityImpl(JavaResourcePersistentType parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.nameAdapter = new ShortCircuitAnnotationElementAdapter<String>(getMember(), NAME_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - } - - //*********** Annotation implementation **************** - public String getAnnotationName() { - return EntityAnnotation.ANNOTATION_NAME; - } - - //*********** Entity implementation **************** - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(EntityAnnotation.NAME_PROPERTY, oldName, newName); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(NAME_ADAPTER, astRoot); - } - - //*********** JavaResource implementation **************** - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - //*********** static methods **************** - private static DeclarationAnnotationElementAdapter<String> buildNameAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.ENTITY__NAME, false); // false = do not remove annotation when empty - } - - - public static class EntityAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EntityAnnotationDefinition INSTANCE = new EntityAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static EntityAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private EntityAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new EntityImpl((JavaResourcePersistentType) parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - - public String getAnnotationName() { - return EntityAnnotation.ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EnumeratedImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EnumeratedImpl.java deleted file mode 100644 index ec03293bdb..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EnumeratedImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.EnumType; -import org.eclipse.jpt.core.resource.java.EnumeratedAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class EnumeratedImpl extends AbstractResourceAnnotation<Attribute> implements EnumeratedAnnotation -{ - - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); - - private final AnnotationElementAdapter<String> valueAdapter; - - private EnumType value; - - protected EnumeratedImpl(JavaResourceNode parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, VALUE_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.value = this.value(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public EnumType getValue() { - return this.value; - } - - public void setValue(EnumType newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - EnumType oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(EnumType.toJavaAnnotationValue(newValue)); - firePropertyChanged(VALUE_PROPERTY, oldValue, newValue); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setValue(this.value(astRoot)); - } - - protected EnumType value(CompilationUnit astRoot) { - return EnumType.fromJavaAnnotationValue(this.valueAdapter.getValue(astRoot)); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ENUMERATED__VALUE); - } - - public static class EnumeratedAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EnumeratedAnnotationDefinition INSTANCE = new EnumeratedAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private EnumeratedAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new EnumeratedImpl(parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullEnumerated(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratedValueImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratedValueImpl.java deleted file mode 100644 index e34d0d7ab9..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratedValueImpl.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation; -import org.eclipse.jpt.core.resource.java.GenerationType; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class GeneratedValueImpl extends AbstractResourceAnnotation<Member> implements GeneratedValueAnnotation -{ - private final AnnotationElementAdapter<String> strategyAdapter; - - private final AnnotationElementAdapter<String> generatorAdapter; - - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> STRATEGY_ADAPTER = buildStrategyAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> GENERATOR_ADAPTER = buildGeneratorAdapter(); - - private GenerationType strategy; - - private String generator; - - - protected GeneratedValueImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.strategyAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, STRATEGY_ADAPTER); - this.generatorAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, GENERATOR_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.strategy = this.strategy(astRoot); - this.generator = this.generator(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public GenerationType getStrategy() { - return this.strategy; - } - - public void setStrategy(GenerationType newStrategy) { - if (attributeValueHasNotChanged(this.strategy, newStrategy)) { - return; - } - GenerationType oldStrategy = this.strategy; - this.strategy = newStrategy; - this.strategyAdapter.setValue(GenerationType.toJavaAnnotationValue(newStrategy)); - firePropertyChanged(STRATEGY_PROPERTY, oldStrategy, newStrategy); - } - - public String getGenerator() { - return this.generator; - } - - public void setGenerator(String newGenerator) { - if (attributeValueHasNotChanged(this.generator, newGenerator)) { - return; - } - String oldGenerator = this.generator; - this.generator = newGenerator; - this.generatorAdapter.setValue(newGenerator); - firePropertyChanged(GENERATOR_PROPERTY, oldGenerator, newGenerator); - } - - public TextRange getStrategyTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(STRATEGY_ADAPTER, astRoot); - } - - public TextRange getGeneratorTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(GENERATOR_ADAPTER, astRoot); - } - - // ********** java annotations -> persistence model ********** - public void updateFromJava(CompilationUnit astRoot) { - this.setStrategy(this.strategy(astRoot)); - this.setGenerator(this.generator(astRoot)); - } - - protected GenerationType strategy(CompilationUnit astRoot) { - return GenerationType.fromJavaAnnotationValue(this.strategyAdapter.getValue(astRoot)); - } - - protected String generator(CompilationUnit astRoot) { - return this.generatorAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildStrategyAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.GENERATED_VALUE__STRATEGY, false); - } - - private static DeclarationAnnotationElementAdapter<String> buildGeneratorAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.GENERATED_VALUE__GENERATOR, false); - } - - public static class GeneratedValueAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final GeneratedValueAnnotationDefinition INSTANCE = new GeneratedValueAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private GeneratedValueAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new GeneratedValueImpl(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratorImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratorImpl.java deleted file mode 100644 index be017c645c..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratorImpl.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NumberIntegerExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.GeneratorAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public abstract class GeneratorImpl extends AbstractResourceAnnotation<Member> implements GeneratorAnnotation -{ - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - // hold this so we can get the 'initialValue' text range - private final DeclarationAnnotationElementAdapter<Integer> initialValueDeclarationAdapter; - - // hold this so we can get the 'allocationSize' text range - private final DeclarationAnnotationElementAdapter<Integer> allocationSizeDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private final AnnotationElementAdapter<Integer> initialValueAdapter; - - private final AnnotationElementAdapter<Integer> allocationSizeAdapter; - - private String name; - - private Integer initialValue; - - private Integer allocationSize; - - public GeneratorImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - super(parent, member, daa); - this.nameDeclarationAdapter = this.nameAdapter(); - this.nameAdapter = this.buildAdapter(this.nameDeclarationAdapter); - this.initialValueDeclarationAdapter = this.initialValueAdapter(); - this.initialValueAdapter = this.buildIntegerAdapter(this.initialValueDeclarationAdapter); - this.allocationSizeDeclarationAdapter = this.allocationSizeAdapter(); - this.allocationSizeAdapter = this.buildIntegerAdapter(this.allocationSizeDeclarationAdapter); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - this.initialValue = this.initialValue(astRoot); - this.allocationSize = this.allocationSize(astRoot); - } - - // ********** initialization ********** - protected AnnotationElementAdapter<String> buildAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(getMember(), daea); - } - - protected AnnotationElementAdapter<Integer> buildIntegerAdapter(DeclarationAnnotationElementAdapter<Integer> daea) { - return new ShortCircuitAnnotationElementAdapter<Integer>(getMember(), daea); - } - - protected abstract DeclarationAnnotationAdapter annotationAdapter(); - - protected abstract DeclarationAnnotationElementAdapter<String> nameAdapter(); - - protected abstract DeclarationAnnotationElementAdapter<Integer> initialValueAdapter(); - - protected abstract DeclarationAnnotationElementAdapter<Integer> allocationSizeAdapter(); - - - - public Integer getAllocationSize() { - return this.allocationSize; - } - - public void setAllocationSize(Integer newAllocationSize) { - if (attributeValueHasNotChanged(this.allocationSize, newAllocationSize)) { - return; - } - Integer oldAllocationSize = this.allocationSize; - this.allocationSize = newAllocationSize; - this.allocationSizeAdapter.setValue(newAllocationSize); - firePropertyChanged(ALLOCATION_SIZE_PROPERTY, oldAllocationSize, newAllocationSize); - } - - public Integer getInitialValue() { - return this.initialValue; - } - - public void setInitialValue(Integer newInitialValue) { - if (attributeValueHasNotChanged(this.initialValue, newInitialValue)) { - return; - } - Integer oldInitialValue = this.initialValue; - this.initialValue = newInitialValue; - this.initialValueAdapter.setValue(newInitialValue); - firePropertyChanged(INITIAL_VALUE_PROPERTY, oldInitialValue, newInitialValue); - } - - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public TextRange getInitialValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.initialValueDeclarationAdapter, astRoot); - } - - public TextRange getAllocationSizeTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.allocationSizeDeclarationAdapter, astRoot); - } - - // ********** java annotations -> persistence model ********** - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - this.setAllocationSize(this.allocationSize(astRoot)); - this.setInitialValue(this.initialValue(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - protected Integer allocationSize(CompilationUnit astRoot) { - return this.allocationSizeAdapter.getValue(astRoot); - } - - protected Integer initialValue(CompilationUnit astRoot) { - return this.initialValueAdapter.getValue(astRoot); - } - - // ********** static methods ********** - protected static DeclarationAnnotationElementAdapter<String> buildAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(annotationAdapter, elementName); - } - - protected static DeclarationAnnotationElementAdapter<Integer> buildIntegerAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter<Integer>(annotationAdapter, elementName, NumberIntegerExpressionConverter.instance()); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdClassImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdClassImpl.java deleted file mode 100644 index 024657059e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdClassImpl.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.IdClassAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class IdClassImpl extends AbstractResourceAnnotation<Type> implements IdClassAnnotation -{ - private final AnnotationElementAdapter<String> valueAdapter; - - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); - - private String value; - - private String fullyQualifiedValue; - - public IdClassImpl(JavaResourceNode parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, VALUE_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.value = this.value(astRoot); - this.fullyQualifiedValue = fullyQualifiedClass(astRoot); - } - - public String getAnnotationName() { - return IdClassAnnotation.ANNOTATION_NAME; - } - - public String getValue() { - return this.value; - } - - public void setValue(String newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - String oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(newValue); - firePropertyChanged(IdClassAnnotation.VALUE_PROPERTY, oldValue, newValue); - } - - public String getFullyQualifiedClass() { - return this.fullyQualifiedValue; - } - - private void setFullyQualifiedClass(String newQualifiedClass) { - String oldQualifiedClass = this.fullyQualifiedValue; - this.fullyQualifiedValue = newQualifiedClass; - firePropertyChanged(IdClassAnnotation.FULLY_QUALIFIED_CLASS_PROPERTY, oldQualifiedClass, newQualifiedClass); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setValue(this.value(astRoot)); - this.setFullyQualifiedClass(this.fullyQualifiedClass(astRoot)); - } - - protected String value(CompilationUnit astRoot) { - return this.valueAdapter.getValue(astRoot); - } - - private String fullyQualifiedClass(CompilationUnit astRoot) { - if (getValue() == null) { - return null; - } - return JDTTools.resolveFullyQualifiedName(this.valueAdapter.getExpression(astRoot)); - } - - // ********** static methods ********** - protected static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { - return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, JPA.ID_CLASS__VALUE, SimpleTypeStringExpressionConverter.instance()); - } - - - public static class IdClassAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final IdClassAnnotationDefinition INSTANCE = new IdClassAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private IdClassAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new IdClassImpl(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdImpl.java deleted file mode 100644 index a4fadcee93..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/IdImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.IdAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - - -public class IdImpl extends AbstractResourceAnnotation<Attribute> implements IdAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected IdImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - public static class IdAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final IdAnnotationDefinition INSTANCE = new IdAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static IdAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private IdAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new IdImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/InheritanceImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/InheritanceImpl.java deleted file mode 100644 index ea7f303f40..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/InheritanceImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.InheritanceAnnotation; -import org.eclipse.jpt.core.resource.java.InheritanceType; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class InheritanceImpl extends AbstractResourceAnnotation<Type> implements InheritanceAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - private static final DeclarationAnnotationElementAdapter<String> STRATEGY_ADAPTER = buildStrategyAdapter(); - - private final AnnotationElementAdapter<String> strategyAdapter; - - private InheritanceType strategy; - - protected InheritanceImpl(JavaResourceNode parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.strategyAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, STRATEGY_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.strategy = this.strategy(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public InheritanceType getStrategy() { - return this.strategy; - } - - public void setStrategy(InheritanceType newStrategy) { - if (attributeValueHasNotChanged(this.strategy, newStrategy)) { - return; - } - InheritanceType oldStrategy = this.strategy; - this.strategy = newStrategy; - this.strategyAdapter.setValue(InheritanceType.toJavaAnnotationValue(newStrategy)); - firePropertyChanged(STRATEGY_PROPERTY, oldStrategy, newStrategy); - } - - public TextRange getStrategyTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(STRATEGY_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setStrategy(this.strategy(astRoot)); - } - - protected InheritanceType strategy(CompilationUnit astRoot) { - return InheritanceType.fromJavaAnnotationValue(this.strategyAdapter.getValue(astRoot)); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildStrategyAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.INHERITANCE__STRATEGY); - } - - public static class InheritanceAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final InheritanceAnnotationDefinition INSTANCE = new InheritanceAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private InheritanceAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new InheritanceImpl(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullInheritance(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java deleted file mode 100644 index 72a535074d..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourceModelImpl.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.Collection; -import org.eclipse.core.resources.IFile; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaElementDelta; -import org.eclipse.jpt.core.JpaAnnotationProvider; -import org.eclipse.jpt.core.ResourceModelListener; -import org.eclipse.jpt.core.internal.AbstractResourceModel; -import org.eclipse.jpt.core.resource.java.JavaResourceModel; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -import org.eclipse.jpt.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.utility.CommandExecutorProvider; -import org.eclipse.jpt.utility.internal.BitTools; - -// TODO we need access to the JPA platform -public class JavaResourceModelImpl - extends AbstractResourceModel - implements JavaResourceModel -{ - private final Collection<ResourceModelListener> resourceModelListeners; - - private final JpaCompilationUnit jpaCompilationUnit; - - - public JavaResourceModelImpl( - IFile file, JpaAnnotationProvider annotationProvider, - CommandExecutorProvider modifySharedDocumentCommandExecutorProvider, - AnnotationEditFormatter annotationEditFormatter) { - super(file); - this.resourceModelListeners = new ArrayList<ResourceModelListener>(); - // TODO use JPA factory, via the platform - this.jpaCompilationUnit = - new JpaCompilationUnitImpl(file, annotationProvider, modifySharedDocumentCommandExecutorProvider, annotationEditFormatter, this); - } - - public String getResourceType() { - return JAVA_RESOURCE_TYPE; - } - - public JpaCompilationUnit getJpaCompilationUnit() { - return this.jpaCompilationUnit; - } - - public void addResourceModelChangeListener(ResourceModelListener listener) { - if (listener == null) { - throw new IllegalArgumentException("Listener cannot be null"); - } - if (this.resourceModelListeners.contains(listener)) { - throw new IllegalArgumentException("Listener " + listener + " already added"); - } - this.resourceModelListeners.add(listener); - } - - public void removeResourceModelChangeListener(ResourceModelListener listener) { - if (!this.resourceModelListeners.contains(listener)) { - throw new IllegalArgumentException("Listener " + listener + " was never added"); - } - this.resourceModelListeners.add(listener); - } - - public void resourceChanged() { - if (this.jpaCompilationUnit == null) { - throw new IllegalStateException("Change events should not be fired during construction"); - } - for (ResourceModelListener listener : this.resourceModelListeners) { - listener.resourceModelChanged(); - } - } - - public void javaElementChanged(ElementChangedEvent event) { - synchWithJavaDelta(event.getDelta()); - } - - private void synchWithJavaDelta(IJavaElementDelta delta) { - switch (delta.getElement().getElementType()) { - case IJavaElement.JAVA_PROJECT : - if (this.updateOnClasspathChanges(delta)) { - break; - } - case IJavaElement.JAVA_MODEL : - case IJavaElement.PACKAGE_FRAGMENT_ROOT : - case IJavaElement.PACKAGE_FRAGMENT : - this.synchChildrenWithJavaDelta(delta); - break; - case IJavaElement.COMPILATION_UNIT : - this.synchCompilationUnitWithJavaDelta(delta); - break; - default : - break; // the event is somehow lower than a compilation unit - } - } - - private void synchChildrenWithJavaDelta(IJavaElementDelta delta) { - for (IJavaElementDelta child : delta.getAffectedChildren()) { - this.synchWithJavaDelta(child); // recurse - } - } - - private void synchCompilationUnitWithJavaDelta(IJavaElementDelta delta) { - // ignore changes to/from primary working copy - no content has changed; - // and make sure there are no other flags set that indicate both a change to/from - // primary working copy AND content has changed - if (BitTools.onlyFlagIsSet(delta.getFlags(), IJavaElementDelta.F_PRIMARY_WORKING_COPY)) { - return; - } - if (delta.getKind() == IJavaElementDelta.REMOVED) { - //we get the java notification for removal before we get the resource notification. - //we do not need to handle this event and will get exceptions building an astRoot if we try. - return; - } - if (delta.getElement().equals(this.jpaCompilationUnit.getCompilationUnit())) { - //TODO possibly hop on the UI thread here so that we know only 1 thread is changing our model - this.jpaCompilationUnit.updateFromJava(); - } - } - - //bug 235384 - we need to update all compilation units when a classpath change occurs. - //The persistence.jar could have been added/removed from the classpath which affects - //whether we know about the jpa annotations or not. - private boolean updateOnClasspathChanges(IJavaElementDelta delta) { - if (BitTools.flagIsSet(delta.getFlags(), IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) || - BitTools.flagIsSet(delta.getFlags(), IJavaElementDelta.F_CLASSPATH_CHANGED)) { - this.jpaCompilationUnit.updateFromJava(); - return true; - } - return false; - } - - public void updateFromResource() { - this.jpaCompilationUnit.updateFromJava(); - } - - public void resolveTypes() { - this.jpaCompilationUnit.resolveTypes(); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentAttributeImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentAttributeImpl.java deleted file mode 100644 index f3c8d6cfad..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentAttributeImpl.java +++ /dev/null @@ -1,486 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.Iterator; -import java.util.ListIterator; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.IBinding; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.Modifier; -import org.eclipse.jpt.core.internal.utility.jdt.JDTFieldAttribute; -import org.eclipse.jpt.core.internal.utility.jdt.JDTMethodAttribute; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.MethodAttribute; -import org.eclipse.jpt.core.utility.jdt.Type; -import org.eclipse.jpt.utility.MethodSignature; -import org.eclipse.jpt.utility.internal.CollectionTools; - -public class JavaResourcePersistentAttributeImpl - extends AbstractJavaResourcePersistentMember<Attribute> - implements JavaResourcePersistentAttribute -{ - - private boolean typeIsBasic; - - private String qualifiedTypeName; - - private boolean typeIsContainer; - - private String qualifiedReferenceEntityTypeName; - - private String qualifiedReferenceEntityElementTypeName; - - private boolean public_; // 'public' is a reserved word - - private boolean final_; // 'final' is a reserved word - - /** - * construct field attribute - */ - public static JavaResourcePersistentAttribute newInstance( - JavaResourcePersistentType parent, - Type declaringType, - String name, - int occurrence, - JpaCompilationUnit jpaCompilationUnit, - CompilationUnit astRoot) { - Attribute attribute = new JDTFieldAttribute( - declaringType, - name, - occurrence, - jpaCompilationUnit.getCompilationUnit(), - jpaCompilationUnit.getModifySharedDocumentCommandExecutorProvider(), - jpaCompilationUnit.getAnnotationEditFormatter()); - JavaResourcePersistentAttribute field = new JavaResourcePersistentAttributeImpl(parent, attribute); - field.initialize(astRoot); - return field; - } - - /** - * construct property attribute - */ - public static JavaResourcePersistentAttribute newInstance( - JavaResourcePersistentType parent, - Type declaringType, - MethodSignature signature, - int occurrence, - JpaCompilationUnit jpaCompilationUnit, - CompilationUnit astRoot) { - Attribute attribute = JDTMethodAttribute.newInstance( - declaringType, - signature, - occurrence, - jpaCompilationUnit.getCompilationUnit(), - jpaCompilationUnit.getModifySharedDocumentCommandExecutorProvider(), - jpaCompilationUnit.getAnnotationEditFormatter()); - JavaResourcePersistentAttribute field = new JavaResourcePersistentAttributeImpl(parent, attribute); - field.initialize(astRoot); - return field; - } - - public JavaResourcePersistentAttributeImpl(JavaResourcePersistentType parent, Attribute attribute){ - super(parent, attribute); - } - - public String getName() { - return getMember().getAttributeName(); - } - - // ******** AbstractJavaPersistentResource implementation ******** - - @Override - protected Annotation buildMappingAnnotation(String mappingAnnotationName) { - return getAnnotationProvider().buildAttributeMappingAnnotation(this, getMember(), mappingAnnotationName); - } - - @Override - protected Annotation buildAnnotation(String annotationName) { - return getAnnotationProvider().buildAttributeAnnotation(this, getMember(), annotationName); - } - - @Override - protected Annotation buildNullAnnotation(String annotationName) { - return getAnnotationProvider().buildNullAttributeAnnotation(this, getMember(), annotationName); - } - - @Override - protected Annotation buildNullMappingAnnotation(String annotationName) { - return getAnnotationProvider().buildNullAttributeMappingAnnotation(this, getMember(), annotationName); - } - - @Override - protected ListIterator<String> possibleMappingAnnotationNames() { - return getAnnotationProvider().attributeMappingAnnotationNames(); - } - - @Override - protected boolean isPossibleAnnotation(String annotationName) { - return CollectionTools.contains(getAnnotationProvider().attributeAnnotationNames(), annotationName); - } - - @Override - protected boolean isPossibleMappingAnnotation(String annotationName) { - return CollectionTools.contains(getAnnotationProvider().attributeMappingAnnotationNames(), annotationName); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public ListIterator<NestableAnnotation> annotations(String nestableAnnotationName, String containerAnnotationName) { - return super.annotations(nestableAnnotationName, containerAnnotationName); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public Iterator<Annotation> mappingAnnotations() { - return super.mappingAnnotations(); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public Iterator<Annotation> annotations() { - return super.annotations(); - } - - @Override - public boolean isFor(MethodSignature signature, int occurrence) { - return ((MethodAttribute) this.getMember()).matches(signature, occurrence); - } - - // ******** JavaPersistentAttributeResource implementation ******** - - public boolean isForField() { - return getMember().isField(); - } - - public boolean isForProperty() { - return !isForField(); - } - - public boolean hasAnyAnnotation() { - if (mappingAnnotationsSize() > 0) { - return true; - } - if (annotationsSize() > 0) { - return true; - } - return false; - } - - public boolean isPublic() { - return this.public_; - } - - protected void setPublic(boolean newPublic) { - boolean oldPublic = this.public_; - this.public_ = newPublic; - firePropertyChanged(PUBLIC_PROPERTY, oldPublic, newPublic); - } - - public boolean isFinal() { - return this.final_; - } - - protected void setFinal(boolean newFinal) { - boolean oldFinal = this.final_; - this.final_ = newFinal; - firePropertyChanged(FINAL_PROPERTY, oldFinal, newFinal); - } - - public boolean typeIsBasic() { - return this.typeIsBasic; - } - - protected void setTypeIsBasic(boolean newTypeIsBasic) { - boolean oldTypeIsBasic = this.typeIsBasic; - this.typeIsBasic = newTypeIsBasic; - firePropertyChanged(TYPE_IS_BASIC_PROPERTY, oldTypeIsBasic, newTypeIsBasic); - } - - public String getQualifiedTypeName() { - return this.qualifiedTypeName; - } - - protected void setQualifiedTypeName(String newQualifiedTypeName) { - String oldQualifiedTypeName = this.qualifiedTypeName; - this.qualifiedTypeName = newQualifiedTypeName; - firePropertyChanged(QUALIFIED_TYPE_NAME_PROPERTY, oldQualifiedTypeName, newQualifiedTypeName); - } - - public String getQualifiedReferenceEntityTypeName() { - return this.qualifiedReferenceEntityTypeName; - } - - protected void setQualifiedReferenceEntityTypeName(String newQualifiedReferenceEntityTypeName) { - String oldQualifiedReferenceEntityTypeName = this.qualifiedReferenceEntityTypeName; - this.qualifiedReferenceEntityTypeName = newQualifiedReferenceEntityTypeName; - firePropertyChanged(QUALIFIED_REFERENCE_ENTITY_TYPE_NAME_PROPERTY, oldQualifiedReferenceEntityTypeName, newQualifiedReferenceEntityTypeName); - } - - public String getQualifiedReferenceEntityElementTypeName() { - return this.qualifiedReferenceEntityElementTypeName; - } - - protected void setQualifiedReferenceEntityElementTypeName(String newQualifiedReferenceEntityElementTypeName) { - String oldQualifiedReferenceEntityElementTypeName = this.qualifiedReferenceEntityElementTypeName; - this.qualifiedReferenceEntityElementTypeName = newQualifiedReferenceEntityElementTypeName; - firePropertyChanged(QUALIFIED_REFERENCE_ENTITY_ELEMENT_TYPE_NAME_PROPERTY, oldQualifiedReferenceEntityElementTypeName, newQualifiedReferenceEntityElementTypeName); - } - - public boolean typeIsContainer() { - return this.typeIsContainer; - } - - protected void setTypeIsContainer(boolean newTypeIsContainer) { - boolean oldTypeIsContainer = this.typeIsContainer; - this.typeIsContainer = newTypeIsContainer; - firePropertyChanged(TYPE_IS_CONTAINER_PROPERTY, oldTypeIsContainer, newTypeIsContainer); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.typeIsBasic = this.typeIsBasic(astRoot); - this.qualifiedTypeName = this.qualifiedTypeName(astRoot); - this.qualifiedReferenceEntityTypeName = this.qualifiedReferenceEntityTypeName(astRoot); - this.qualifiedReferenceEntityElementTypeName = this.qualifiedReferenceEntityElementTypeName(astRoot); - this.typeIsContainer = this.typeIsContainer(astRoot); - this.final_ = this.isFinal(astRoot); - this.public_ = this.isPublic(astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setTypeIsBasic(this.typeIsBasic(astRoot)); - this.setQualifiedTypeName(this.qualifiedTypeName(astRoot)); - this.setQualifiedReferenceEntityTypeName(this.qualifiedReferenceEntityTypeName(astRoot)); - this.setQualifiedReferenceEntityElementTypeName(this.qualifiedReferenceEntityElementTypeName(astRoot)); - this.setTypeIsContainer(this.typeIsContainer(astRoot)); - this.setFinal(this.isFinal(astRoot)); - this.setPublic(this.isPublic(astRoot)); - } - - @Override - public void resolveTypes(CompilationUnit astRoot) { - super.resolveTypes(astRoot); - this.setTypeIsBasic(this.typeIsBasic(astRoot)); - this.setQualifiedTypeName(this.qualifiedTypeName(astRoot)); - this.setQualifiedReferenceEntityTypeName(this.qualifiedReferenceEntityTypeName(astRoot)); - this.setQualifiedReferenceEntityElementTypeName(this.qualifiedReferenceEntityElementTypeName(astRoot)); - this.setTypeIsContainer(this.typeIsContainer(astRoot)); - } - - protected boolean typeIsBasic(CompilationUnit astRoot) { - return typeIsBasic(this.getMember().getTypeBinding(astRoot), astRoot.getAST()); - } - - protected boolean isFinal(CompilationUnit astRoot) { - IBinding binding = getMember().getBinding(astRoot); - return (binding == null) ? false : Modifier.isFinal(binding.getModifiers()); - } - - protected boolean isPublic(CompilationUnit astRoot) { - IBinding binding = getMember().getBinding(astRoot); - return (binding == null) ? false : Modifier.isPublic(binding.getModifiers()); - } - - protected String qualifiedReferenceEntityTypeName(CompilationUnit astRoot) { - ITypeBinding typeBinding = this.getMember().getTypeBinding(astRoot); - return (typeBinding == null) ? null : buildReferenceEntityTypeName(typeBinding); - } - - public static String buildReferenceEntityTypeName(ITypeBinding typeBinding) { - if (typeBinding == null) { - return null; - } - if (typeBinding.isArray()) { - return null; // arrays cannot be entities - } - return typeBinding.getTypeDeclaration().getQualifiedName(); - } - - protected String qualifiedReferenceEntityElementTypeName(CompilationUnit astRoot) { - ITypeBinding typeBinding = this.getMember().getTypeBinding(astRoot); - if (typeBinding == null) { - return null; - } - - ITypeBinding[] typeArguments = typeBinding.getTypeArguments(); - if (typeArguments.length != 1) { - return null; - } - ITypeBinding elementTypeBinding = typeArguments[0]; - String elementTypeName = buildReferenceEntityTypeName(elementTypeBinding); - return typeNamedIsContainer(elementTypeName) ? null : elementTypeName; - } - - - protected boolean typeIsContainer(CompilationUnit astRoot) { - String typeName = buildReferenceEntityTypeName(this.getMember().getTypeBinding(astRoot)); - return (typeName == null) ? false : typeNamedIsContainer(typeName); - } - - /** - * return whether the specified non-array type is one of the container - * types allowed by the JPA spec - */ - public static boolean typeNamedIsContainer(String typeName) { - return CollectionTools.contains(CONTAINER_TYPE_NAMES, typeName); - } - - private static final String[] CONTAINER_TYPE_NAMES = { - java.util.Collection.class.getName(), - java.util.Set.class.getName(), - java.util.List.class.getName(), - java.util.Map.class.getName() - }; - - protected String qualifiedTypeName(CompilationUnit astRoot) { - ITypeBinding typeBinding = this.getMember().getTypeBinding(astRoot); - return (typeBinding == null) ? null : typeBinding.getTypeDeclaration().getQualifiedName(); - } - - - /** - * From the JPA spec, when the basic mapping applies: - * If the type of the attribute (field or property) is one of the following - * it must be mapped as @Basic: - * primitive types - * byte[] - * Byte[] - * char[] - * Character[] - * primitive wrappers - * java.lang.String - * java.math.BigInteger - * java.math.BigDecimal - * java.util.Date - * java.util.Calendar - * java.sql.Date - * java.sql.Time - * java.sql.Timestamp - * enums - * any other type that implements java.io.Serializable - */ - public static boolean typeIsBasic(ITypeBinding typeBinding, AST ast) { - if (typeBinding == null) { - return false; // type not found - } - if (typeBinding.isPrimitive()) { - return true; - } - if (typeBinding.isArray()) { - if (typeBinding.getDimensions() > 1) { - return false; // multi-dimensional arrays are not supported - } - ITypeBinding elementTypeBinding = typeBinding.getElementType(); - if (elementTypeBinding == null) { - return false;// unable to resolve the type - } - return elementTypeIsValid(elementTypeBinding.getQualifiedName()); - } - String typeName = typeBinding.getQualifiedName(); - if (typeIsPrimitiveWrapper(typeName)) { - return true; - } - if (typeIsOtherSupportedType(typeName)) { - return true; - } - if (typeBinding.isEnum()) { - return true; - } - if (typeImplementsSerializable(typeBinding, ast)) { - return true; - } - return false; - } - - /** - * Return whether the specified type is a valid element type for - * a one-dimensional array: - * byte - * char - * java.lang.Byte - * java.lang.Character - */ - private static boolean elementTypeIsValid(String elementTypeName) { - return CollectionTools.contains(VALID_ELEMENT_TYPE_NAMES, elementTypeName); - } - - private static final String[] VALID_ELEMENT_TYPE_NAMES = { - byte.class.getName(), - char.class.getName(), - java.lang.Byte.class.getName(), - java.lang.Character.class.getName() - }; - - /** - * Return whether the specified type is a primitive wrapper. - */ - private static boolean typeIsPrimitiveWrapper(String typeName) { - return CollectionTools.contains(PRIMITIVE_WRAPPER_TYPE_NAMES, typeName); - } - - private static final String[] PRIMITIVE_WRAPPER_TYPE_NAMES = { - java.lang.Byte.class.getName(), - java.lang.Character.class.getName(), - java.lang.Double.class.getName(), - java.lang.Float.class.getName(), - java.lang.Integer.class.getName(), - java.lang.Long.class.getName(), - java.lang.Short.class.getName(), - java.lang.Boolean.class.getName(), - }; - - /** - * Return whether the specified type is among the various other types - * that default to a Basic mapping. - */ - private static boolean typeIsOtherSupportedType(String typeName) { - return CollectionTools.contains(OTHER_SUPPORTED_TYPE_NAMES, typeName); - } - - private static final String[] OTHER_SUPPORTED_TYPE_NAMES = { - java.lang.String.class.getName(), - java.math.BigInteger.class.getName(), - java.math.BigDecimal.class.getName(), - java.util.Date.class.getName(), - java.util.Calendar.class.getName(), - java.sql.Date.class.getName(), - java.sql.Time.class.getName(), - java.sql.Timestamp.class.getName(), - }; - - /** - * Return whether the specified type implements java.io.Serializable. - */ - private static boolean typeImplementsSerializable(ITypeBinding typeBinding, AST ast) { - ITypeBinding serializableTypeBinding = ast.resolveWellKnownType(SERIALIZABLE_TYPE_NAME); - return typeBinding.isAssignmentCompatible(serializableTypeBinding); - } - - private static final String SERIALIZABLE_TYPE_NAME = java.io.Serializable.class.getName(); - - @Override - public void toString(StringBuilder sb) { - sb.append(getName()); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentTypeImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentTypeImpl.java deleted file mode 100644 index ca6546963d..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentTypeImpl.java +++ /dev/null @@ -1,663 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Vector; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.ITypeBinding; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.Modifier; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.internal.utility.jdt.JDTType; -import org.eclipse.jpt.core.resource.java.AccessType; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.utility.jdt.Type; -import org.eclipse.jpt.utility.MethodSignature; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.Counter; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; - -public class JavaResourcePersistentTypeImpl - extends AbstractJavaResourcePersistentMember<Type> - implements JavaResourcePersistentType -{ - private String qualifiedName; - - private String name; - - private String superClassQualifiedName; - - private boolean abstract_; // 'abstract' is a reserved word - - /** - * store all member types including those that aren't persistable so we can - * generate validation errors - */ - private final Vector<JavaResourcePersistentType> nestedTypes; - - private final Vector<JavaResourcePersistentAttribute> fields; - - private final Vector<JavaResourcePersistentAttribute> methods; - - private AccessType accessType; - - - // ********** construction ********** - - /** - * build top-level persistent type - */ - // TODO use JPA factory - public static JavaResourcePersistentType newInstance( - JpaCompilationUnit jpaCompilationUnit, - TypeDeclaration typeDeclaration, - CompilationUnit astRoot) { - Type type = new JDTType( - typeDeclaration, - jpaCompilationUnit.getCompilationUnit(), - jpaCompilationUnit.getModifySharedDocumentCommandExecutorProvider(), - jpaCompilationUnit.getAnnotationEditFormatter()); - JavaResourcePersistentType jrpt = new JavaResourcePersistentTypeImpl(jpaCompilationUnit, type); - jrpt.initialize(astRoot); - return jrpt; - } - - /** - * build nested persistent type - */ - // TODO use JPA factory - protected static JavaResourcePersistentType newInstance( - JpaCompilationUnit jpaCompilationUnit, - Type declaringType, - TypeDeclaration typeDeclaration, - int occurrence, - CompilationUnit astRoot) { - Type type = new JDTType( - declaringType, - typeDeclaration, - occurrence, - jpaCompilationUnit.getCompilationUnit(), - jpaCompilationUnit.getModifySharedDocumentCommandExecutorProvider(), - jpaCompilationUnit.getAnnotationEditFormatter()); - JavaResourcePersistentType jrpt = new JavaResourcePersistentTypeImpl(jpaCompilationUnit, type); - jrpt.initialize(astRoot); - return jrpt; - } - - public JavaResourcePersistentTypeImpl(JpaCompilationUnit jpaCompilationUnit, Type type) { - super(jpaCompilationUnit, type); - this.nestedTypes = new Vector<JavaResourcePersistentType>(); - this.fields = new Vector<JavaResourcePersistentAttribute>(); - this.methods = new Vector<JavaResourcePersistentAttribute>(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.qualifiedName = this.buildQualifiedName(astRoot); - this.name = this.buildName(astRoot); - this.superClassQualifiedName = this.buildSuperClassQualifiedName(astRoot); - this.abstract_ = this.buildAbstract(astRoot); - this.initializeNestedTypes(astRoot); - this.initializeFields(astRoot); - this.initializeMethods(astRoot); - this.accessType = this.buildAccessType(); - } - - protected void initializeNestedTypes(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - for (TypeDeclaration td : this.getMember().getTypes(astRoot)) { - String tdName = td.getName().getFullyQualifiedName(); - int occurrence = counters.increment(tdName); - this.nestedTypes.add(this.buildNestedType(td, occurrence, astRoot)); - } - } - - protected void initializeFields(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - for (FieldDeclaration fieldDeclaration : this.getMember().getFields(astRoot)) { - for (VariableDeclarationFragment fragment : fragments(fieldDeclaration)) { - String fieldName = fragment.getName().getFullyQualifiedName(); - int occurrence = counters.increment(fieldName); - this.fields.add(this.buildField(fieldName, occurrence, astRoot)); - } - } - } - - protected void initializeMethods(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - for (MethodDeclaration methodDeclaration : this.getMember().getMethods(astRoot)) { - MethodSignature signature = JDTTools.buildMethodSignature(methodDeclaration); - int occurrence = counters.increment(signature); - this.methods.add(this.buildMethod(signature, occurrence, astRoot)); - } - } - - - // ********** AbstractJavaResourcePersistentMember implementation ********** - - @Override - protected Annotation buildMappingAnnotation(String mappingAnnotationName) { - return getAnnotationProvider().buildTypeMappingAnnotation(this, getMember(), mappingAnnotationName); - } - - @Override - protected Annotation buildNullMappingAnnotation(String annotationName) { - return getAnnotationProvider().buildNullTypeMappingAnnotation(this, getMember(), annotationName); - } - - @Override - protected Annotation buildAnnotation(String annotationName) { - return getAnnotationProvider().buildTypeAnnotation(this, getMember(), annotationName); - } - - @Override - protected Annotation buildNullAnnotation(String annotationName) { - return getAnnotationProvider().buildNullTypeAnnotation(this, getMember(), annotationName); - } - - @Override - protected ListIterator<String> possibleMappingAnnotationNames() { - return getAnnotationProvider().typeMappingAnnotationNames(); - } - - @Override - protected boolean isPossibleAnnotation(String annotationName) { - return CollectionTools.contains(getAnnotationProvider().typeAnnotationNames(), annotationName); - } - - @Override - protected boolean isPossibleMappingAnnotation(String annotationName) { - return CollectionTools.contains(getAnnotationProvider().typeMappingAnnotationNames(), annotationName); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public ListIterator<NestableAnnotation> annotations(String nestableAnnotationName, String containerAnnotationName) { - return super.annotations(nestableAnnotationName, containerAnnotationName); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public Iterator<Annotation> mappingAnnotations() { - return super.mappingAnnotations(); - } - - @Override - @SuppressWarnings("unchecked") - //overriding purely to suppress the warning you get at the class level - public Iterator<Annotation> annotations() { - return super.annotations(); - } - - @Override - public void resolveTypes(CompilationUnit astRoot) { - super.resolveTypes(astRoot); - - this.setSuperClassQualifiedName(this.buildSuperClassQualifiedName(astRoot)); - - for (Iterator<JavaResourcePersistentAttribute> stream = this.fields_(); stream.hasNext(); ) { - stream.next().resolveTypes(astRoot); - } - - // a new type can trigger a method parameter type to be a resolved, - // fully-qualified name, so we need to rebuild our list of methods: - // "setFoo(Foo)" is not the same as "setFoo(com.bar.Foo)" - // and, vice-versa, a removed type can "unresolve" a parameter type - this.updateMethods(astRoot); - - for (Iterator<JavaResourcePersistentAttribute> stream = this.methods_(); stream.hasNext(); ) { - stream.next().resolveTypes(astRoot); - } - for (Iterator<JavaResourcePersistentType> stream = this.nestedTypes_(); stream.hasNext(); ) { - stream.next().resolveTypes(astRoot); - } - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - - // ******** JavaResourcePersistentType implementation ******** - - public JavaResourcePersistentType getJavaPersistentTypeResource(String fullyQualifiedTypeName) { - // TODO not sure why a null name is coming through here... ~bjv -// if (fullyQualifiedTypeName.equals(this.getQualifiedName())) { - if (this.getQualifiedName().equals(fullyQualifiedTypeName)) { - return this; - } - for (Iterator<JavaResourcePersistentType> stream = this.nestedTypes(); stream.hasNext(); ) { - JavaResourcePersistentType jrpt = stream.next(); - // recurse - JavaResourcePersistentType nestedJRPT = jrpt.getJavaPersistentTypeResource(fullyQualifiedTypeName); - if (nestedJRPT != null) { - return nestedJRPT; - } - } - return null; - } - - /** - * check only persistable attributes - */ - public boolean hasAnyAttributeAnnotations() { - for (Iterator<JavaResourcePersistentAttribute> stream = this.attributes(); stream.hasNext(); ) { - if (stream.next().hasAnyAnnotation()) { - return true; - } - } - return false; - } - - - // ********** nested types ********** - - /** - * return only persistable nested types - */ - public Iterator<JavaResourcePersistentType> nestedTypes() { - //TODO since we are filtering how do we handle the case where a type becomes persistable? - //what kind of change notificiation for that case? - return new FilteringIterator<JavaResourcePersistentType, JavaResourcePersistentType>(this.nestedTypes_()) { - @Override - protected boolean accept(JavaResourcePersistentType jrpt) { - return jrpt.isPersistable(); - } - }; - } - - /** - * *all* nested types - */ - protected Iterator<JavaResourcePersistentType> nestedTypes_() { - return new CloneIterator<JavaResourcePersistentType>(this.nestedTypes); - } - - protected void addNestedType(JavaResourcePersistentType nestedType) { - this.addItemToCollection(nestedType, this.nestedTypes, NESTED_TYPES_COLLECTION); - } - - protected void removeNestedType(JavaResourcePersistentType nestedType) { - this.removeItemFromCollection(nestedType, this.nestedTypes, NESTED_TYPES_COLLECTION); - } - - protected void removeNestedTypes(Collection<JavaResourcePersistentType> remove) { - this.removeItemsFromCollection(remove, this.nestedTypes, NESTED_TYPES_COLLECTION); - } - - protected JavaResourcePersistentType getNestedType(String typeName, int occurrence) { - for (Iterator<JavaResourcePersistentType> stream = this.nestedTypes_(); stream.hasNext(); ) { - JavaResourcePersistentType nestedType = stream.next(); - if (nestedType.isFor(typeName, occurrence)) { - return nestedType; - } - } - return null; - } - - - // ********** attributes ********** - - /** - * return only persistable attributes - */ - // TODO since we are filtering, how do we handle the case where an attribute becomes persistable? - // what kind of change notification for that case? - public Iterator<JavaResourcePersistentAttribute> attributes() { - return persistableMembers(this.attributes_()); - } - - /** - * *all* fields and methods - */ - @SuppressWarnings("unchecked") - protected Iterator<JavaResourcePersistentAttribute> attributes_() { - return new CompositeIterator<JavaResourcePersistentAttribute>(this.fields_(), this.methods_()); - } - - - // ********** fields ********** - - /** - * return only persistable fields - */ - public Iterator<JavaResourcePersistentAttribute> fields() { - return persistableMembers(this.fields_()); - } - - /** - * *all* fields - */ - protected Iterator<JavaResourcePersistentAttribute> fields_() { - return new CloneIterator<JavaResourcePersistentAttribute>(this.fields); - } - - protected void addField(JavaResourcePersistentAttribute attribute) { - this.addItemToCollection(attribute, this.fields, ATTRIBUTES_COLLECTION); - } - - protected void removeField(JavaResourcePersistentAttribute attribute) { - this.removeItemFromCollection(attribute, this.fields, ATTRIBUTES_COLLECTION); - } - - protected void removeFields(Collection<JavaResourcePersistentAttribute> remove) { - this.removeItemsFromCollection(remove, this.fields, ATTRIBUTES_COLLECTION); - } - - protected JavaResourcePersistentAttribute getField(String fieldName, int occurrence) { - for (Iterator<JavaResourcePersistentAttribute> stream = this.fields_(); stream.hasNext(); ) { - JavaResourcePersistentAttribute field = stream.next(); - if (field.isFor(fieldName, occurrence)) { - return field; - } - } - return null; - } - - - // ********** methods ********** - - /** - * return only persistable properties - */ - public Iterator<JavaResourcePersistentAttribute> properties() { - return persistableMembers(this.methods_()); - } - - /** - * *all* methods - */ - protected Iterator<JavaResourcePersistentAttribute> methods_() { - return new CloneIterator<JavaResourcePersistentAttribute>(this.methods); - } - - protected void addMethod(JavaResourcePersistentAttribute attribute) { - this.addItemToCollection(attribute, this.methods, ATTRIBUTES_COLLECTION); - } - - protected void removeMethod(JavaResourcePersistentAttribute attribute) { - this.removeItemFromCollection(attribute, this.methods, ATTRIBUTES_COLLECTION); - } - - protected void removeMethods(Collection<JavaResourcePersistentAttribute> remove) { - this.removeItemsFromCollection(remove, this.methods, ATTRIBUTES_COLLECTION); - } - - protected JavaResourcePersistentAttribute getMethod(MethodSignature signature, int occurrence) { - for (Iterator<JavaResourcePersistentAttribute> stream = this.methods_(); stream.hasNext(); ) { - JavaResourcePersistentAttribute method = stream.next(); - if (method.isFor(signature, occurrence)) { - return method; - } - } - return null; - } - - - // ********** simple instance variables ********** - - public String getQualifiedName() { - return this.qualifiedName; - } - - protected void setQualifiedName(String qualifiedName) { - String old = this.qualifiedName; - this.qualifiedName = qualifiedName; - this.firePropertyChanged(QUALIFIED_NAME_PROPERTY, old, qualifiedName); - } - - public String getName() { - return this.name; - } - - protected void setName(String name) { - String old = this.name; - this.name = name; - this.firePropertyChanged(NAME_PROPERTY, old, name); - } - - public String getSuperClassQualifiedName() { - return this.superClassQualifiedName; - } - - protected void setSuperClassQualifiedName(String superClassQualifiedName) { - String old = this.superClassQualifiedName; - this.superClassQualifiedName = superClassQualifiedName; - this.firePropertyChanged(SUPER_CLASS_QUALIFIED_NAME_PROPERTY, old, superClassQualifiedName); - } - - public boolean isAbstract() { - return this.abstract_; - } - - protected void setAbstract(boolean abstract_) { - boolean old = this.abstract_; - this.abstract_ = abstract_; - this.firePropertyChanged(ABSTRACT_PROPERTY, old, abstract_); - } - - public AccessType getAccess() { - return this.accessType; - } - - // TODO - //seems we could have a public changeAccess() api which would - //move all annotations from fields to their corresponding methods or vice versa - //though of course it's more complicated than that since what if the - //corresponding field/method does not exist? - //making this internal since it should only be set based on changes in the source, the - //context model should not need to set this - protected void setAccess(AccessType accessType) { - AccessType old = this.accessType; - this.accessType = accessType; - this.firePropertyChanged(ACCESS_PROPERTY, old, accessType); - } - - - // ********** update from Java ********** - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setQualifiedName(this.buildQualifiedName(astRoot)); - this.setName(this.buildName(astRoot)); - this.setSuperClassQualifiedName(this.buildSuperClassQualifiedName(astRoot)); - this.setAbstract(this.buildAbstract(astRoot)); - this.updateNestedTypes(astRoot); - this.updateFields(astRoot); - this.updateMethods(astRoot); - this.setAccess(this.buildAccessType()); - } - - protected void updateNestedTypes(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - @SuppressWarnings("unchecked") - Vector<JavaResourcePersistentType> nestedTypesToRemove = (Vector<JavaResourcePersistentType>) this.nestedTypes.clone(); - for (TypeDeclaration typeDeclaration : this.getMember().getTypes(astRoot)) { - String tdName = typeDeclaration.getName().getFullyQualifiedName(); - int occurrence = counters.increment(tdName); - - JavaResourcePersistentType nestedType = this.getNestedType(tdName, occurrence); - if (nestedType == null) { - this.addNestedType(this.buildNestedType(typeDeclaration, occurrence, astRoot)); - } else { - nestedTypesToRemove.remove(nestedType); - nestedType.updateFromJava(astRoot); - } - } - this.removeNestedTypes(nestedTypesToRemove); - } - - protected void updateFields(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - @SuppressWarnings("unchecked") - Vector<JavaResourcePersistentAttribute> fieldsToRemove = (Vector<JavaResourcePersistentAttribute>) this.fields.clone(); - for (FieldDeclaration fieldDeclaration : this.getMember().getFields(astRoot)) { - for (VariableDeclarationFragment fragment : fragments(fieldDeclaration)) { - String fieldName = fragment.getName().getFullyQualifiedName(); - int occurrence = counters.increment(fieldName); - - JavaResourcePersistentAttribute field = this.getField(fieldName, occurrence); - if (field == null) { - this.addField(this.buildField(fieldName, occurrence, astRoot)); - } else { - fieldsToRemove.remove(field); - field.updateFromJava(astRoot); - } - } - } - this.removeFields(fieldsToRemove); - } - - protected void updateMethods(CompilationUnit astRoot) { - CounterMap counters = new CounterMap(); - @SuppressWarnings("unchecked") - Vector<JavaResourcePersistentAttribute> methodsToRemove = (Vector<JavaResourcePersistentAttribute>) this.methods.clone(); - for (MethodDeclaration methodDeclaration : this.getMember().getMethods(astRoot)) { - MethodSignature signature = JDTTools.buildMethodSignature(methodDeclaration); - int occurrence = counters.increment(signature); - - JavaResourcePersistentAttribute method = this.getMethod(signature, occurrence); - if (method == null) { - this.addMethod(this.buildMethod(signature, occurrence, astRoot)); - } else { - methodsToRemove.remove(method); - method.updateFromJava(astRoot); - } - } - this.removeMethods(methodsToRemove); - } - - - // ********** building state from AST ********** - - protected String buildQualifiedName(CompilationUnit astRoot) { - return this.getMember().getBinding(astRoot).getQualifiedName(); - } - - protected String buildName(CompilationUnit astRoot) { - return this.getMember().getBinding(astRoot).getName(); - } - - protected String buildSuperClassQualifiedName(CompilationUnit astRoot) { - ITypeBinding typeBinding = this.getMember().getBinding(astRoot); - if (typeBinding == null) { - return null; - } - ITypeBinding superClassTypeBinding = typeBinding.getSuperclass(); - if (superClassTypeBinding == null) { - return null; - } - return superClassTypeBinding.getTypeDeclaration().getQualifiedName(); - } - - protected boolean buildAbstract(CompilationUnit astRoot) { - return Modifier.isAbstract(this.getMember().getBinding(astRoot).getModifiers()); - } - - // TODO use JPA factory - protected JavaResourcePersistentType buildNestedType(TypeDeclaration nestedTypeDeclaration, int occurrence, CompilationUnit astRoot) { - return newInstance(this.getJpaCompilationUnit(), this.getMember(), nestedTypeDeclaration, occurrence, astRoot); - } - - // TODO use JPA factory - protected JavaResourcePersistentAttribute buildField(String fieldName, int occurrence, CompilationUnit astRoot) { - return JavaResourcePersistentAttributeImpl.newInstance(this, this.getMember(), fieldName, occurrence, this.getJpaCompilationUnit(), astRoot); - } - - // TODO use JPA factory - protected JavaResourcePersistentAttribute buildMethod(MethodSignature signature, int occurrence, CompilationUnit astRoot) { - return JavaResourcePersistentAttributeImpl.newInstance(this, this.getMember(), signature, occurrence, this.getJpaCompilationUnit(), astRoot); - } - - /** - * Return the AccessType currently implied by the Java source code: - * - if only Fields are annotated => FIELD - * - if only Properties are annotated => PROPERTY - * - if both Fields and Properties are annotated => FIELD - * - if nothing is annotated - * - and fields exist => FIELD - * - and properties exist, but no fields exist => PROPERTY - * - and neither fields nor properties exist => null at this level (FIELD in the context model) - */ - protected AccessType buildAccessType() { - boolean hasPersistableFields = false; - boolean hasPersistableProperties = false; - for (JavaResourcePersistentAttribute field : CollectionTools.iterable(fields())) { - hasPersistableFields = true; - if (field.hasAnyAnnotation()) { - // any field is annotated => FIELD - return AccessType.FIELD; - } - } - for (JavaResourcePersistentAttribute property : CollectionTools.iterable(properties())) { - hasPersistableProperties = true; - if (property.hasAnyAnnotation()) { - // none of the fields are annotated and a getter is annotated => PROPERTY - return AccessType.PROPERTY; - } - } - - if (hasPersistableProperties && !hasPersistableFields) { - return AccessType.PROPERTY; - } - //no annotations exist, access is null at the resource model level - return null; - } - - - // ********** static methods ********** - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected static List<VariableDeclarationFragment> fragments(FieldDeclaration fd) { - return fd.fragments(); - } - - - // ********** StringCounter ********** - - protected static class CounterMap { - HashMap<Object, Counter> counters = new HashMap<Object, Counter>(); - - /** - * Return the incremented count for the specified object. - */ - int increment(Object o) { - Counter counter = this.counters.get(o); - if (counter == null) { - counter = new Counter(); - this.counters.put(o, counter); - } - counter.increment(); - return counter.count(); - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnImpl.java deleted file mode 100644 index 62a8b10187..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnImpl.java +++ /dev/null @@ -1,225 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableJoinColumn; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class JoinColumnImpl extends BaseColumnImpl implements NestableJoinColumn -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - // hold this so we can get the 'referenced column name' text range - private final DeclarationAnnotationElementAdapter<String> referencedColumnNameDeclarationAdapter; - - private final AnnotationElementAdapter<String> referencedColumnNameAdapter; - - private String referencedColumnName; - - public JoinColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.referencedColumnNameDeclarationAdapter = this.buildStringElementAdapter(JPA.JOIN_COLUMN__REFERENCED_COLUMN_NAME); - this.referencedColumnNameAdapter = this.buildShortCircuitElementAdapter(this.referencedColumnNameDeclarationAdapter); - } - - public JoinColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - this(parent, member, daa, new MemberAnnotationAdapter(member, daa)); - } - - public JoinColumnImpl(JavaResourceNode parent, Member member, IndexedDeclarationAnnotationAdapter idaa) { - this(parent, member, idaa, new MemberIndexedAnnotationAdapter(member, idaa)); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.referencedColumnName = this.referencedColumnName(astRoot); - } - - @Override - protected String nameElementName() { - return JPA.JOIN_COLUMN__NAME; - } - - @Override - protected String columnDefinitionElementName() { - return JPA.JOIN_COLUMN__COLUMN_DEFINITION; - } - - @Override - protected String tableElementName() { - return JPA.JOIN_COLUMN__TABLE; - } - - @Override - protected String uniqueElementName() { - return JPA.JOIN_COLUMN__UNIQUE; - } - - @Override - protected String nullableElementName() { - return JPA.JOIN_COLUMN__NULLABLE; - } - - @Override - protected String insertableElementName() { - return JPA.JOIN_COLUMN__INSERTABLE; - } - - @Override - protected String updatableElementName() { - return JPA.JOIN_COLUMN__UPDATABLE; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - private IndexedAnnotationAdapter getIndexedAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public void moveAnnotation(int newIndex) { - getIndexedAnnotationAdapter().moveAnnotation(newIndex); - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - JoinColumnAnnotation oldColumn = (JoinColumnAnnotation) oldAnnotation; - setReferencedColumnName(oldColumn.getReferencedColumnName()); - } - - //************ JoinColumn implementation *************** - public String getReferencedColumnName() { - return this.referencedColumnName; - } - - public void setReferencedColumnName(String newReferencedColumnName) { - if (attributeValueHasNotChanged(this.referencedColumnName, newReferencedColumnName)) { - return; - } - String oldReferencedColumnName = this.referencedColumnName; - this.referencedColumnName = newReferencedColumnName; - this.referencedColumnNameAdapter.setValue(newReferencedColumnName); - firePropertyChanged(REFERENCED_COLUMN_NAME_PROPERTY, oldReferencedColumnName, newReferencedColumnName); - } - - public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.referencedColumnNameDeclarationAdapter, astRoot); - } - - public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.referencedColumnNameDeclarationAdapter, pos, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setReferencedColumnName(this.referencedColumnName(astRoot)); - } - - protected String referencedColumnName(CompilationUnit astRoot) { - return this.referencedColumnNameAdapter.getValue(astRoot); - } - - // ********** static methods ********** - - static JoinColumnImpl createJoinColumn(JavaResourceNode parent, Member member) { - return new JoinColumnImpl(parent, member, DECLARATION_ANNOTATION_ADAPTER); - } - - static JoinColumnImpl createNestedJoinColumn(JavaResourceNode parent, Member member, int index, DeclarationAnnotationAdapter joinColumnsAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, joinColumnsAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(member, idaa); - return new JoinColumnImpl(parent, member, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter joinColumnsAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(joinColumnsAdapter, index, JPA.JOIN_COLUMN); - } - static NestableJoinColumn createJoinTableJoinColumn(JavaResourceNode parent, Member member, int index) { - return new JoinColumnImpl(parent, member, buildJoinTableAnnotationAdapter(index)); - } - - private static IndexedDeclarationAnnotationAdapter buildJoinTableAnnotationAdapter(int index) { - return new NestedIndexedDeclarationAnnotationAdapter(JoinTableImpl.DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__JOIN_COLUMNS, index, JPA.JOIN_COLUMN); - } - - static NestableJoinColumn createJoinTableInverseJoinColumn(JavaResourceNode parent, Member member, int index) { - return new JoinColumnImpl(parent, member, buildJoinTableInverseAnnotationAdapter(index)); - } - - private static IndexedDeclarationAnnotationAdapter buildJoinTableInverseAnnotationAdapter(int index) { - return new NestedIndexedDeclarationAnnotationAdapter(JoinTableImpl.DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__INVERSE_JOIN_COLUMNS, index, JPA.JOIN_COLUMN); - } - - - static NestableJoinColumn createAssociationOverrideJoinColumn(DeclarationAnnotationAdapter associationOverrideAdapter, JavaResourceNode parent, Member member, int index) { - return new JoinColumnImpl(parent, member, buildAssociationOverrideAnnotationAdapter(associationOverrideAdapter, index)); - } - - private static IndexedDeclarationAnnotationAdapter buildAssociationOverrideAnnotationAdapter(DeclarationAnnotationAdapter associationOverrideAdapter, int index) { - return new NestedIndexedDeclarationAnnotationAdapter(associationOverrideAdapter, JPA.ASSOCIATION_OVERRIDE__JOIN_COLUMNS, index, JPA.JOIN_COLUMN); - } - - - public static class JoinColumnAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final JoinColumnAnnotationDefinition INSTANCE = new JoinColumnAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private JoinColumnAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return JoinColumnImpl.createJoinColumn(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnsImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnsImpl.java deleted file mode 100644 index 262c7c896a..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnsImpl.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JoinColumnsAnnotation; -import org.eclipse.jpt.core.resource.java.NestableJoinColumn; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class JoinColumnsImpl extends AbstractResourceAnnotation<Member> implements JoinColumnsAnnotation -{ - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private List<NestableJoinColumn> joinColumns; - - protected JoinColumnsImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.joinColumns = new ArrayList<NestableJoinColumn>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return JoinColumnAnnotation.ANNOTATION_NAME; - } - - public ListIterator<NestableJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestableJoinColumn>(this.joinColumns); - } - - public int nestedAnnotationsSize() { - return this.joinColumns.size(); - } - - public NestableJoinColumn addInternal(int index) { - JoinColumnImpl joinColumn = createJoinColumn(index); - this.joinColumns.add(index, joinColumn); - return joinColumn; - } - - public NestableJoinColumn add(int index) { - JoinColumnImpl joinColumn = createJoinColumn(index); - add(index, joinColumn); - return joinColumn; - } - - protected void add(int index, NestableJoinColumn joinColumn) { - addItemToList(index, joinColumn, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public void remove(NestableJoinColumn joinColumn) { - removeItemFromList(joinColumn, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public int indexOf(NestableJoinColumn joinColumn) { - return this.joinColumns.indexOf(joinColumn); - } - - public NestableJoinColumn nestedAnnotationAt(int index) { - return this.joinColumns.get(index); - } - - public NestableJoinColumn nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestableJoinColumn joinColumn : this.joinColumns) { - if (jdtAnnotation == joinColumn.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return joinColumn; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.joinColumns, targetIndex, sourceIndex); - } - - public String getElementName() { - return "value"; - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private JoinColumnImpl createJoinColumn(int index) { - return JoinColumnImpl.createNestedJoinColumn(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - - public static class JoinColumnsAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final JoinColumnsAnnotationDefinition INSTANCE = new JoinColumnsAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private JoinColumnsAnnotationDefinition() { - super(); - } - - public JoinColumnsAnnotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new JoinColumnsImpl(parent, member); - } - - public JoinColumnsAnnotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinTableImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinTableImpl.java deleted file mode 100644 index e7c3fa0dfe..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinTableImpl.java +++ /dev/null @@ -1,389 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JoinTableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableJoinColumn; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class JoinTableImpl extends AbstractResourceTable implements JoinTableAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(JoinTableAnnotation.ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__NAME); - - private static final DeclarationAnnotationElementAdapter<String> SCHEMA_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__SCHEMA); - - private static final DeclarationAnnotationElementAdapter<String> CATALOG_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__CATALOG); - - private final List<NestableJoinColumn> joinColumns; - - private final List<NestableJoinColumn> inverseJoinColumns; - - private final JoinColumnsContainerAnnotation joinColumnsContainerAnnotation; - - private final InverseJoinColumnsContainerAnnotation inverseJoinColumnsContainerAnnotation; - - protected JoinTableImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(member, DECLARATION_ANNOTATION_ADAPTER)); - this.joinColumns = new ArrayList<NestableJoinColumn>(); - this.inverseJoinColumns = new ArrayList<NestableJoinColumn>(); - this.joinColumnsContainerAnnotation = new JoinColumnsContainerAnnotation(); - this.inverseJoinColumnsContainerAnnotation = new InverseJoinColumnsContainerAnnotation(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.joinColumnsContainerAnnotation); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.inverseJoinColumnsContainerAnnotation); - } - - public String getAnnotationName() { - return JoinTableAnnotation.ANNOTATION_NAME; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return NAME_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> schemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return SCHEMA_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> catalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return CATALOG_ADAPTER; - } - - @Override - protected NestableUniqueConstraint createUniqueConstraint(int index) { - return UniqueConstraintImpl.createJoinTableUniqueConstraint(this, this.getMember(), index); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.updateJoinColumnsFromJava(astRoot); - this.updateInverseJoinColumnsFromJava(astRoot); - } - - private void updateJoinColumnsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.joinColumnsContainerAnnotation); - } - - private void updateInverseJoinColumnsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.inverseJoinColumnsContainerAnnotation); - } - - public ListIterator<JoinColumnAnnotation> joinColumns() { - return new CloneListIterator<JoinColumnAnnotation>(this.joinColumns); - } - - public int joinColumnsSize() { - return this.joinColumns.size(); - } - - public NestableJoinColumn joinColumnAt(int index) { - return this.joinColumns.get(index); - } - - public int indexOfJoinColumn(JoinColumnAnnotation joinColumn) { - return this.joinColumns.indexOf(joinColumn); - } - - public JoinColumnAnnotation addJoinColumn(int index) { - NestableJoinColumn joinColumn = (NestableJoinColumn) ContainerAnnotationTools.addNestedAnnotation(index, this.joinColumnsContainerAnnotation); - fireItemAdded(JoinTableAnnotation.JOIN_COLUMNS_LIST, index, joinColumn); - return joinColumn; - } - - protected void addJoinColumn(int index, NestableJoinColumn joinColumn) { - addItemToList(index, joinColumn, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public void removeJoinColumn(int index) { - NestableJoinColumn joinColumn = this.joinColumns.get(index); - removeJoinColumn(joinColumn); - joinColumn.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.joinColumnsContainerAnnotation); - } - - protected void removeJoinColumn(NestableJoinColumn joinColumn) { - removeItemFromList(joinColumn, this.joinColumns, JOIN_COLUMNS_LIST); - } - - public void moveJoinColumn(int targetIndex, int sourceIndex) { - moveJoinColumnInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.joinColumnsContainerAnnotation); - fireItemMoved(JoinTableAnnotation.JOIN_COLUMNS_LIST, targetIndex, sourceIndex); - } - - protected void moveJoinColumnInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.joinColumns, targetIndex, sourceIndex); - } - - public ListIterator<JoinColumnAnnotation> inverseJoinColumns() { - return new CloneListIterator<JoinColumnAnnotation>(this.inverseJoinColumns); - } - - public int inverseJoinColumnsSize() { - return this.inverseJoinColumns.size(); - } - - public NestableJoinColumn inverseJoinColumnAt(int index) { - return this.inverseJoinColumns.get(index); - } - - public int indexOfInverseJoinColumn(JoinColumnAnnotation joinColumn) { - return this.inverseJoinColumns.indexOf(joinColumn); - } - - public JoinColumnAnnotation addInverseJoinColumn(int index) { - NestableJoinColumn inverseJoinColumn = (NestableJoinColumn) ContainerAnnotationTools.addNestedAnnotation(index, this.inverseJoinColumnsContainerAnnotation); - fireItemAdded(JoinTableAnnotation.INVERSE_JOIN_COLUMNS_LIST, index, inverseJoinColumn); - return inverseJoinColumn; - } - - private void addInverseJoinColumn(int index, NestableJoinColumn joinColumn) { - addItemToList(index, joinColumn, this.inverseJoinColumns, INVERSE_JOIN_COLUMNS_LIST); - } - - public void removeInverseJoinColumn(int index) { - NestableJoinColumn joinColumn = this.inverseJoinColumns.get(index); - this.removeInverseJoinColumn(joinColumn); - joinColumn.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.inverseJoinColumnsContainerAnnotation); - } - - protected void removeInverseJoinColumn(NestableJoinColumn joinColumn) { - removeItemFromList(joinColumn, this.inverseJoinColumns, INVERSE_JOIN_COLUMNS_LIST); - } - - public void moveInverseJoinColumn(int targetIndex, int sourceIndex) { - moveInverseJoinColumnInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.inverseJoinColumnsContainerAnnotation); - fireItemMoved(JoinTableAnnotation.INVERSE_JOIN_COLUMNS_LIST, targetIndex, sourceIndex); - } - - protected void moveInverseJoinColumnInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.inverseJoinColumns, targetIndex, sourceIndex); - } - - protected NestableJoinColumn createJoinColumn(int index) { - return JoinColumnImpl.createJoinTableJoinColumn(this, getMember(), index); - } - - protected NestableJoinColumn createInverseJoinColumn(int index) { - return JoinColumnImpl.createJoinTableInverseJoinColumn(this, getMember(), index); - } - - private class JoinColumnsContainerAnnotation extends AbstractContainerAnnotation { - - public NestableJoinColumn addInternal(int index) { - NestableJoinColumn joinColumn = JoinTableImpl.this.createJoinColumn(index); - JoinTableImpl.this.joinColumns.add(index, joinColumn); - return joinColumn; - } - - public NestableJoinColumn add(int index) { - NestableJoinColumn joinColumn = JoinTableImpl.this.createJoinColumn(index); - JoinTableImpl.this.addJoinColumn(index, joinColumn); - return joinColumn; - } - - public int indexOf(NestableJoinColumn joinColumn) { - return JoinTableImpl.this.indexOfJoinColumn(joinColumn); - } - - public void move(int targetIndex, int sourceIndex) { - JoinTableImpl.this.moveJoinColumn(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - JoinTableImpl.this.moveJoinColumnInternal(targetIndex, sourceIndex); - } - - public NestableJoinColumn nestedAnnotationAt(int index) { - return JoinTableImpl.this.joinColumnAt(index); - } - - public ListIterator<NestableJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestableJoinColumn>(JoinTableImpl.this.joinColumns); - } - - public int nestedAnnotationsSize() { - return joinColumnsSize(); - } - - public void remove(NestableJoinColumn nestedAnnotation) { - JoinTableImpl.this.removeJoinColumn(nestedAnnotation); - } - public String getElementName() { - return "joinColumns"; - } - } - - private class InverseJoinColumnsContainerAnnotation extends AbstractContainerAnnotation { - - public NestableJoinColumn addInternal(int index) { - NestableJoinColumn joinColumn = JoinTableImpl.this.createInverseJoinColumn(index); - JoinTableImpl.this.inverseJoinColumns.add(index, joinColumn); - return joinColumn; - } - - public NestableJoinColumn add(int index) { - NestableJoinColumn joinColumn = JoinTableImpl.this.createInverseJoinColumn(index); - JoinTableImpl.this.addInverseJoinColumn(index, joinColumn); - return joinColumn; - } - - public int indexOf(NestableJoinColumn joinColumn) { - return JoinTableImpl.this.indexOfInverseJoinColumn(joinColumn); - } - - public void move(int targetIndex, int sourceIndex) { - JoinTableImpl.this.moveInverseJoinColumn(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - JoinTableImpl.this.moveInverseJoinColumnInternal(targetIndex, sourceIndex); - } - - public NestableJoinColumn nestedAnnotationAt(int index) { - return JoinTableImpl.this.inverseJoinColumnAt(index); - } - - public ListIterator<NestableJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestableJoinColumn>(JoinTableImpl.this.inverseJoinColumns); - } - - public int nestedAnnotationsSize() { - return inverseJoinColumnsSize(); - } - - public void remove(NestableJoinColumn nestedAnnotation) { - JoinTableImpl.this.removeInverseJoinColumn(nestedAnnotation); - } - - public String getElementName() { - return "inverseJoinColumns"; - } - } - - private abstract class AbstractContainerAnnotation extends AbstractJavaResourceNode implements ContainerAnnotation<NestableJoinColumn> { - - public AbstractContainerAnnotation() { - super(JoinTableImpl.this); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return JoinTableImpl.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.JOIN_COLUMN; - } - - public void remove(int index) { - this.remove(nestedAnnotationAt(index)); - } - - public NestableJoinColumn nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableJoinColumn joinColumn : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == joinColumn.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return joinColumn; - } - } - return null; - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return JoinTableImpl.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - JoinTableImpl.this.newAnnotation(); - } - - public void removeAnnotation() { - JoinTableImpl.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - JoinTableImpl.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return JoinTableImpl.this.getTextRange(astRoot); - } - } - public static class JoinTableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final JoinTableAnnotationDefinition INSTANCE = new JoinTableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private JoinTableAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new JoinTableImpl(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullJoinTable(parent); - } - - public String getAnnotationName() { - return JoinTableAnnotation.ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JpaCompilationUnitImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JpaCompilationUnitImpl.java deleted file mode 100644 index a4697ebf26..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JpaCompilationUnitImpl.java +++ /dev/null @@ -1,239 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.AbstractTypeDeclaration; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jpt.core.JpaAnnotationProvider; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.resource.java.JavaResourceModel; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationEditFormatter; -import org.eclipse.jpt.utility.CommandExecutorProvider; - -public class JpaCompilationUnitImpl - extends AbstractJavaResourceNode - implements JpaCompilationUnit -{ - protected final JpaAnnotationProvider annotationProvider; - - protected final CommandExecutorProvider modifySharedDocumentCommandExecutorProvider; - - protected final AnnotationEditFormatter annotationEditFormatter; - - protected final JavaResourceModel javaResourceModel; - - protected final ICompilationUnit compilationUnit; - - /** - * The primary type of the AST compilation unit. We are not going to handle - * multiple types defined in a single compilation unit. Entities must have - * a public/protected no-arg constructor, and there is no way to access - * the constructor in a package class (which is what all top-level, - * non-primary classes must be). - */ - protected JavaResourcePersistentType persistentType; - - - // ********** construction ********** - - public JpaCompilationUnitImpl( - IFile file, - JpaAnnotationProvider annotationProvider, - CommandExecutorProvider modifySharedDocumentCommandExecutorProvider, - AnnotationEditFormatter annotationEditFormatter, - JavaResourceModel javaResourceModel) { - super(null); // the JPA compilation unit is the root of its sub-tree - this.annotationProvider = annotationProvider; - this.modifySharedDocumentCommandExecutorProvider = modifySharedDocumentCommandExecutorProvider; - this.annotationEditFormatter = annotationEditFormatter; - this.javaResourceModel = javaResourceModel; - this.compilationUnit = JavaCore.createCompilationUnitFrom(file); - this.openCompilationUnit(); - this.persistentType = this.buildJavaResourcePersistentType(); - } - - protected void openCompilationUnit() { - try { - this.compilationUnit.open(null); - } catch (JavaModelException ex) { - // do nothing - we just won't have a primary type in this case - } - } - - protected JavaResourcePersistentType buildJavaResourcePersistentType() { - return this.buildJavaResourcePersistentType(this.buildASTRoot()); - } - - protected JavaResourcePersistentType buildJavaResourcePersistentType(CompilationUnit astRoot) { - TypeDeclaration td = this.getPrimaryType(astRoot); - return (td == null) ? null : this.buildJavaResourcePersistentType(astRoot, td); - } - - public void initialize(CompilationUnit astRoot) { - // never called? - } - - - // ********** overrides ********** - - @Override - protected boolean requiresParent() { - return false; - } - - @Override - public JpaCompilationUnit getJpaCompilationUnit() { - return this; - } - - @Override - public JpaAnnotationProvider getAnnotationProvider() { - return this.annotationProvider; - } - - @Override - public CommandExecutorProvider getModifySharedDocumentCommandExecutorProvider() { - return this.modifySharedDocumentCommandExecutorProvider; - } - - @Override - public AnnotationEditFormatter getAnnotationEditFormatter() { - return this.annotationEditFormatter; - } - - @Override - public JavaResourceModel getResourceModel() { - return this.javaResourceModel; - } - - - // ********** JpaCompilationUnit implementation ********** - - public ICompilationUnit getCompilationUnit() { - return this.compilationUnit; - } - - public JavaResourcePersistentType getJavaPersistentTypeResource(String fullyQualifiedTypeName) { - return (this.persistentType == null) ? null : this.persistentType.getJavaPersistentTypeResource(fullyQualifiedTypeName); - } - - /** - * The persistentType resource for the compilation unit's primary type. - * Will be null if the primary type is null. - */ - public JavaResourcePersistentType getPersistentType() { - return this.persistentType; - //TODO should i only be returning this if it returns true to isPersistable? - //that's how we handle nestedTypes on JavaPersistentTypeResource - //return this.persistentType.isPersistable() ? this.persistentType : null; - } - - protected void setPersistentType(JavaResourcePersistentType persistentType) { - JavaResourcePersistentType old = this.persistentType; - this.persistentType = persistentType; - this.firePropertyChanged(PERSISTENT_TYPE_PROPERTY, old, persistentType); - } - - public void updateFromJava() { - this.updateFromJava(this.buildASTRoot()); - } - - public void updateFromJava(CompilationUnit astRoot) { - TypeDeclaration td = this.getPrimaryType(astRoot); - if (td == null) { - this.setPersistentType(null); - } else { - if (this.persistentType == null) { - this.setPersistentType(this.buildJavaResourcePersistentType(astRoot, td)); - } else { - this.persistentType.updateFromJava(astRoot); - } - } - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public void resourceChanged() { - this.javaResourceModel.resourceChanged(); - } - - public void resolveTypes() { - if (this.persistentType != null) { - this.persistentType.resolveTypes(this.buildASTRoot()); - } - } - - - // ********** internal ********** - - protected CompilationUnit buildASTRoot() { - return JDTTools.buildASTRoot(this.compilationUnit); - } - - // TODO use JPA factory - protected JavaResourcePersistentType buildJavaResourcePersistentType(CompilationUnit astRoot, TypeDeclaration typeDeclaration) { - return JavaResourcePersistentTypeImpl.newInstance(this, typeDeclaration, astRoot); - } - - /** - * i.e. the type with the same name as the compilation unit; - * return the first class or interface (ignore annotations and enums) with - * the same name as the compilation unit (file); - * NB: this type could be in error if there is an annotation or enum - * with the same name preceding it in the compilation unit - */ - protected TypeDeclaration getPrimaryType(CompilationUnit astRoot) { - String primaryTypeName = this.getPrimaryTypeName(); - for (AbstractTypeDeclaration atd : types(astRoot)) { - if ((atd.getNodeType() == ASTNode.TYPE_DECLARATION) - && atd.getName().getFullyQualifiedName().equals(primaryTypeName)) { - return (TypeDeclaration) atd; - } - } - return null; - } - - // minimize scope of suppressed warnings - @SuppressWarnings("unchecked") - protected static List<AbstractTypeDeclaration> types(CompilationUnit astRoot) { - return astRoot.types(); - } - - /** - * i.e. the name of the compilation unit - */ - protected String getPrimaryTypeName() { - return removeJavaExtension(this.compilationUnit.getElementName()); - } - - protected static String removeJavaExtension(String fileName) { - int index = fileName.lastIndexOf(".java"); - return (index == -1) ? fileName : fileName.substring(0, index); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.persistentType.getName()); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/LobImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/LobImpl.java deleted file mode 100644 index c6dbc97bf4..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/LobImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.LobAnnotation; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class LobImpl extends AbstractResourceAnnotation<Attribute> implements LobAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected LobImpl(JavaResourceNode parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public void updateFromJava(CompilationUnit astRoot) { - //nothing to update - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - public static class LobAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final LobAnnotationDefinition INSTANCE = new LobAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private LobAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new LobImpl(parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToManyImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToManyImpl.java deleted file mode 100644 index 631b9e714a..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToManyImpl.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - - -public class ManyToManyImpl extends AbstractRelationshipMappingAnnotation implements ManyToManyAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> TARGET_ENTITY_ADAPTER = buildTargetEntityAdapter(); - - private static final DeclarationAnnotationElementAdapter<String[]> CASCADE_ADAPTER = buildCascadeAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> MAPPED_BY_ADAPTER = buildMappedByAdapter(); - - private final AnnotationElementAdapter<String> mappedByAdapter; - - private String mappedBy; - - protected ManyToManyImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.mappedByAdapter = buildAnnotationElementAdapter(MAPPED_BY_ADAPTER); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.mappedBy = this.mappedBy(astRoot); - } - - //**************** AbstractRelationshipMappingAnnotation implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<String> targetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> cascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> fetchAdapter() { - return FETCH_ADAPTER; - } - - - //**************** Annotation implementation ************** - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - public String getMappedBy() { - return this.mappedBy; - } - - public void setMappedBy(String newMappedBy) { - if (attributeValueHasNotChanged(this.mappedBy, newMappedBy)) { - return; - } - String oldMappedBy = this.mappedBy; - this.mappedBy = newMappedBy; - this.mappedByAdapter.setValue(newMappedBy); - firePropertyChanged(MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setMappedBy(this.mappedBy(astRoot)); - } - - protected String mappedBy(CompilationUnit astRoot) { - return this.mappedByAdapter.getValue(astRoot); - } - - public TextRange getMappedByTextRange(CompilationUnit astRoot) { - return getElementTextRange(MAPPED_BY_ADAPTER, astRoot); - } - - public boolean mappedByTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(MAPPED_BY_ADAPTER, pos, astRoot); - } - - // ********** static methods ********** - - private static DeclarationAnnotationElementAdapter<String> buildTargetEntityAdapter() { - return buildTargetEntityAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_MANY__TARGET_ENTITY); - } - - private static DeclarationAnnotationElementAdapter<String[]> buildCascadeAdapter() { - return buildEnumArrayAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_MANY__CASCADE); - } - - private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() { - return buildFetchAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_MANY__FETCH); - } - - - private static DeclarationAnnotationElementAdapter<String> buildMappedByAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_MANY__MAPPED_BY, false); // false = do not remove annotation when empty - } - - - public static class ManyToManyAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final ManyToManyAnnotationDefinition INSTANCE = new ManyToManyAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static ManyToManyAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private ManyToManyAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new ManyToManyImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToOneImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToOneImpl.java deleted file mode 100644 index eb891d1d70..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ManyToOneImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - - -public class ManyToOneImpl extends AbstractRelationshipMappingAnnotation implements ManyToOneAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> TARGET_ENTITY_ADAPTER = buildTargetEntityAdapter(); - - private static final DeclarationAnnotationElementAdapter<String[]> CASCADE_ADAPTER = buildCascadeAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter(); - - private static final DeclarationAnnotationElementAdapter<Boolean> OPTIONAL_ADAPTER = buildOptionalAdapter(); - - private final AnnotationElementAdapter<Boolean> optionalAdapter; - - private Boolean optional; - - protected ManyToOneImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.optionalAdapter = this.buildBooleanAnnotationElementAdapter(OPTIONAL_ADAPTER); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.optional = this.optional(astRoot); - } - - //**************** AbstractRelationshipMappingAnnotation implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<String> targetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> cascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> fetchAdapter() { - return FETCH_ADAPTER; - } - - //**************** Annotation implementation ************** - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - public Boolean getOptional() { - return this.optional; - } - - public void setOptional(Boolean newOptional) { - if (attributeValueHasNotChanged(this.optional, newOptional)) { - return; - } - Boolean oldOptional = this.optional; - this.optional = newOptional; - this.optionalAdapter.setValue(newOptional); - firePropertyChanged(OPTIONAL_PROPERTY, oldOptional, newOptional); - } - - public TextRange getOptionalTextRange(CompilationUnit astRoot) { - return getElementTextRange(OPTIONAL_ADAPTER, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setOptional(this.optional(astRoot)); - } - - protected Boolean optional(CompilationUnit astRoot) { - return this.optionalAdapter.getValue(astRoot); - } - - // ********** static methods ********** - - private static DeclarationAnnotationElementAdapter<String> buildTargetEntityAdapter() { - return buildTargetEntityAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_ONE__TARGET_ENTITY); - } - - private static DeclarationAnnotationElementAdapter<String[]> buildCascadeAdapter() { - return buildEnumArrayAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_ONE__CASCADE); - } - - private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() { - return buildFetchAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_ONE__FETCH); - } - - private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter() { - return buildOptionalAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.MANY_TO_ONE__OPTIONAL); - } - - private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter<Boolean>(annotationAdapter, elementName, false, BooleanExpressionConverter.instance()); - } - - - public static class ManyToOneAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final ManyToOneAnnotationDefinition INSTANCE = new ManyToOneAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static ManyToOneAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private ManyToOneAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new ManyToOneImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MapKeyImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MapKeyImpl.java deleted file mode 100644 index 8f99c380e3..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MapKeyImpl.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.MapKeyAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class MapKeyImpl extends AbstractResourceAnnotation<Attribute> implements MapKeyAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = buildNameAdapter(); - - - private final AnnotationElementAdapter<String> nameAdapter; - - private String name; - - protected MapKeyImpl(JavaResourceNode parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.nameAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, NAME_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.name = name(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(NAME_ADAPTER, astRoot); - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(NAME_ADAPTER, pos, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildNameAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.MAP_KEY__NAME, false); - } - - - public static class MapKeyAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final MapKeyAnnotationDefinition INSTANCE = new MapKeyAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private MapKeyAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new MapKeyImpl(parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MappedSuperclassImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MappedSuperclassImpl.java deleted file mode 100644 index b3c458714e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MappedSuperclassImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - - -public class MappedSuperclassImpl extends AbstractResourceAnnotation<Type> implements MappedSuperclassAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected MappedSuperclassImpl(JavaResourcePersistentType parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - public static class MappedSuperclassAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final MappedSuperclassAnnotationDefinition INSTANCE = new MappedSuperclassAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static MappedSuperclassAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private MappedSuperclassAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new MappedSuperclassImpl((JavaResourcePersistentType) parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueriesImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueriesImpl.java deleted file mode 100644 index 790d1727b3..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueriesImpl.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NamedNativeQueriesAnnotation; -import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation; -import org.eclipse.jpt.core.resource.java.NestableNamedNativeQuery; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class NamedNativeQueriesImpl extends AbstractResourceAnnotation<Type> implements NamedNativeQueriesAnnotation -{ - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private List<NestableNamedNativeQuery> namedNativeQueries; - - protected NamedNativeQueriesImpl(JavaResourceNode parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.namedNativeQueries = new ArrayList<NestableNamedNativeQuery>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return NamedNativeQueriesAnnotation.ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return NamedNativeQueryAnnotation.ANNOTATION_NAME; - } - - public String getElementName() { - return "value"; - } - - public ListIterator<NestableNamedNativeQuery> nestedAnnotations() { - return new CloneListIterator<NestableNamedNativeQuery>(this.namedNativeQueries); - } - - public int nestedAnnotationsSize() { - return this.namedNativeQueries.size(); - } - - public NestableNamedNativeQuery addInternal(int index) { - NestableNamedNativeQuery namedNativeQuery = createNamedNativeQuery(index); - this.namedNativeQueries.add(index, namedNativeQuery); - return namedNativeQuery; - } - - public NestableNamedNativeQuery add(int index) { - NestableNamedNativeQuery namedNativeQuery = createNamedNativeQuery(index); - add(index, namedNativeQuery); - return namedNativeQuery; - } - - protected void add(int index, NestableNamedNativeQuery query) { - addItemToList(index, query, this.namedNativeQueries, NamedNativeQueriesAnnotation.NAMED_NATIVE_QUERIES_LIST); - } - - public void remove(NestableNamedNativeQuery query) { - removeItemFromList(query, this.namedNativeQueries, NamedNativeQueriesAnnotation.NAMED_NATIVE_QUERIES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.namedNativeQueries, NamedNativeQueriesAnnotation.NAMED_NATIVE_QUERIES_LIST); - } - - public int indexOf(NestableNamedNativeQuery query) { - return this.namedNativeQueries.indexOf(query); - } - - public NestableNamedNativeQuery nestedAnnotationAt(int index) { - return this.namedNativeQueries.get(index); - } - - public NestableNamedNativeQuery nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableNamedNativeQuery namedQuery : this.namedNativeQueries) { - if (jdtAnnotation == namedQuery.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return namedQuery; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.namedNativeQueries, NAMED_NATIVE_QUERIES_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.namedNativeQueries, targetIndex, sourceIndex); - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private NamedNativeQueryImpl createNamedNativeQuery(int index) { - return NamedNativeQueryImpl.createNestedNamedNativeQuery(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - - public static class NamedNativeQueriesAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final NamedNativeQueriesAnnotationDefinition INSTANCE = new NamedNativeQueriesAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private NamedNativeQueriesAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NamedNativeQueriesImpl(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueryImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueryImpl.java deleted file mode 100644 index 8f8f87a88f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueryImpl.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableNamedNativeQuery; -import org.eclipse.jpt.core.resource.java.NestableQueryHint; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class NamedNativeQueryImpl extends AbstractNamedQuery - implements NestableNamedNativeQuery -{ - - public static final SimpleDeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - // hold this so we can get the 'resultClass' text range - private final DeclarationAnnotationElementAdapter<String> resultClassDeclarationAdapter; - - // hold this so we can get the 'resultSetMapping' text range - private final DeclarationAnnotationElementAdapter<String> resultSetMappingDeclarationAdapter; - - - private final AnnotationElementAdapter<String> resultClassAdapter; - - private final AnnotationElementAdapter<String> resultSetMappingAdapter; - - private String resultClass; - - private String fullyQualifiedResultClass; - - private String resultSetMapping; - - protected NamedNativeQueryImpl(JavaResourceNode parent, Type type, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, type, daa, annotationAdapter); - this.resultClassDeclarationAdapter = resultClassAdapter(daa); - this.resultClassAdapter = this.buildAdapter(this.resultClassDeclarationAdapter); - this.resultSetMappingDeclarationAdapter = resultSetMappingAdapter(daa); - this.resultSetMappingAdapter = this.buildAdapter(this.resultSetMappingDeclarationAdapter); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.resultClass = this.resultClass(astRoot); - this.fullyQualifiedResultClass = this.fullyQualifiedResultClass(astRoot); - this.resultSetMapping = this.resultSetMapping(astRoot); - } - - - // ********** initialization ********** - protected DeclarationAnnotationElementAdapter<String> resultClassAdapter(DeclarationAnnotationAdapter daa) { - return new ConversionDeclarationAnnotationElementAdapter<String>(daa, JPA.NAMED_NATIVE_QUERY__RESULT_CLASS, SimpleTypeStringExpressionConverter.instance()); - } - - protected DeclarationAnnotationElementAdapter<String> resultSetMappingAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, JPA.NAMED_NATIVE_QUERY__RESULT_SET_MAPPING); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - //************* AbstractNamedQuery implementation ************* - - @Override - protected String nameElementName() { - return JPA.NAMED_NATIVE_QUERY__NAME; - } - - @Override - protected String queryElementName() { - return JPA.NAMED_NATIVE_QUERY__QUERY; - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - NamedNativeQueryAnnotation oldNamedQuery = (NamedNativeQueryAnnotation) oldAnnotation; - setResultClass(oldNamedQuery.getResultClass()); - setResultSetMapping(oldNamedQuery.getResultSetMapping()); - } - - public String getResultClass() { - return this.resultClass; - } - - public void setResultClass(String newResultClass) { - if (attributeValueHasNotChanged(this.resultClass, newResultClass)) { - return; - } - String oldResultClass = this.resultClass; - this.resultClass = newResultClass; - this.resultClassAdapter.setValue(newResultClass); - firePropertyChanged(RESULT_CLASS_PROPERTY, oldResultClass, newResultClass); - } - - public String getFullyQualifiedResultClass() { - return this.fullyQualifiedResultClass; - } - - protected void setFullyQualifiedResultClass(String newQualifiedResultClass) { - String oldFullyQualifiedResultClass = this.fullyQualifiedResultClass; - this.fullyQualifiedResultClass = newQualifiedResultClass; - firePropertyChanged(FULLY_QUALIFIED_RESULT_CLASS_PROPERTY, oldFullyQualifiedResultClass, newQualifiedResultClass); - } - - public String getResultSetMapping() { - return this.resultSetMapping; - } - - public void setResultSetMapping(String newResultSetMapping) { - if (attributeValueHasNotChanged(this.resultSetMapping, newResultSetMapping)) { - return; - } - String oldResultSetMapping = this.resultSetMapping; - this.resultSetMapping = newResultSetMapping; - this.resultSetMappingAdapter.setValue(newResultSetMapping); - firePropertyChanged(RESULT_SET_MAPPING_PROPERTY, oldResultSetMapping, newResultSetMapping); - } - - public TextRange getResultClassTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.resultClassDeclarationAdapter, astRoot); - } - - public TextRange getResultSetMappingTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.resultSetMappingDeclarationAdapter, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setResultClass(this.resultClass(astRoot)); - this.setFullyQualifiedResultClass(this.fullyQualifiedResultClass(astRoot)); - this.setResultSetMapping(this.resultSetMapping(astRoot)); - } - - protected String resultClass(CompilationUnit astRoot) { - return this.resultClassAdapter.getValue(astRoot); - } - - protected String resultSetMapping(CompilationUnit astRoot) { - return this.resultSetMappingAdapter.getValue(astRoot); - } - - protected String fullyQualifiedResultClass(CompilationUnit astRoot) { - if (getResultClass() == null) { - return null; - } - return JDTTools.resolveFullyQualifiedName(this.resultClassAdapter.getExpression(astRoot)); - } - - @Override - protected NestableQueryHint createQueryHint(int index) { - return QueryHintImpl.createNamedNativeQueryQueryHint(this, this.getMember(), this.getDeclarationAnnotationAdapter(), index); - } - - // ********** static methods ********** - static NamedNativeQueryImpl createNamedNativeQuery(JavaResourceNode parent, Type type) { - return new NamedNativeQueryImpl(parent, type, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(type, DECLARATION_ANNOTATION_ADAPTER)); - } - - static NamedNativeQueryImpl createNestedNamedNativeQuery(JavaResourceNode parent, Type type, int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, attributeOverridesAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(type, idaa); - return new NamedNativeQueryImpl(parent, type, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter namedQueriesAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(namedQueriesAdapter, index, JPA.NAMED_NATIVE_QUERY); - } - - public static class NamedNativeQueryAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final NamedNativeQueryAnnotationDefinition INSTANCE = new NamedNativeQueryAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private NamedNativeQueryAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return NamedNativeQueryImpl.createNamedNativeQuery(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueriesImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueriesImpl.java deleted file mode 100644 index 503cd6fe62..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueriesImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NamedQueriesAnnotation; -import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation; -import org.eclipse.jpt.core.resource.java.NestableNamedQuery; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class NamedQueriesImpl extends AbstractResourceAnnotation<Type> implements NamedQueriesAnnotation -{ - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(NamedQueriesAnnotation.ANNOTATION_NAME); - - private List<NestableNamedQuery> namedQueries; - - protected NamedQueriesImpl(JavaResourceNode parent, Type type) { - super(parent, type, DECLARATION_ANNOTATION_ADAPTER); - this.namedQueries = new ArrayList<NestableNamedQuery>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return NamedQueriesAnnotation.ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return NamedQueryAnnotation.ANNOTATION_NAME; - } - - public String getElementName() { - return "value"; - } - - public ListIterator<NestableNamedQuery> nestedAnnotations() { - return new CloneListIterator<NestableNamedQuery>(this.namedQueries); - } - - public int nestedAnnotationsSize() { - return this.namedQueries.size(); - } - - public NestableNamedQuery addInternal(int index) { - NestableNamedQuery namedQuery = createNamedQuery(index); - this.namedQueries.add(index, namedQuery); - return namedQuery; - } - - public NestableNamedQuery add(int index) { - NestableNamedQuery namedQuery = createNamedQuery(index); - add(index, namedQuery); - return namedQuery; - } - - protected void add(int index, NestableNamedQuery namedQuery) { - addItemToList(index, namedQuery, this.namedQueries, NamedQueriesAnnotation.NAMED_QUERIES_LIST); - } - - public void remove(NestableNamedQuery namedQuery) { - removeItemFromList(namedQuery, this.namedQueries, NamedQueriesAnnotation.NAMED_QUERIES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.namedQueries, NamedQueriesAnnotation.NAMED_QUERIES_LIST); - } - - public int indexOf(NestableNamedQuery attributeOverride) { - return this.namedQueries.indexOf(attributeOverride); - } - - public NestableNamedQuery nestedAnnotationAt(int index) { - return this.namedQueries.get(index); - } - - public NestableNamedQuery nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableNamedQuery namedQuery : this.namedQueries) { - if (jdtAnnotation == namedQuery.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return namedQuery; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.namedQueries, NamedQueriesAnnotation.NAMED_QUERIES_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.namedQueries, targetIndex, sourceIndex); - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private NamedQueryImpl createNamedQuery(int index) { - return NamedQueryImpl.createNestedNamedQuery(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - public static class NamedQueriesAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final NamedQueriesAnnotationDefinition INSTANCE = new NamedQueriesAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private NamedQueriesAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NamedQueriesImpl(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueryImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueryImpl.java deleted file mode 100644 index ae1c4f09f4..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueryImpl.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableNamedQuery; -import org.eclipse.jpt.core.resource.java.NestableQueryHint; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class NamedQueryImpl extends AbstractNamedQuery - implements NestableNamedQuery -{ - - public static final SimpleDeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected NamedQueryImpl(JavaResourceNode parent, Type type, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, type, daa, annotationAdapter); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - //************* AbstractNamedQuery implementation ************* - @Override - protected String nameElementName() { - return JPA.NAMED_QUERY__NAME; - } - - @Override - protected String queryElementName() { - return JPA.NAMED_QUERY__QUERY; - } - - @Override - protected NestableQueryHint createQueryHint(int index) { - return QueryHintImpl.createNamedQueryQueryHint(this, getMember(), this.getDeclarationAnnotationAdapter(), index); - } - - // ********** static methods ********** - static NamedQueryImpl createNamedQuery(JavaResourceNode parent, Type type) { - return new NamedQueryImpl(parent, type, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(type, DECLARATION_ANNOTATION_ADAPTER)); - } - - static NamedQueryImpl createNestedNamedQuery(JavaResourceNode parent, Type type, int index, DeclarationAnnotationAdapter attributeOverridesAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, attributeOverridesAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(type, idaa); - return new NamedQueryImpl(parent, type, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter namedQueriesAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(namedQueriesAdapter, index, JPA.NAMED_QUERY); - } - - public static class NamedQueryAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final NamedQueryAnnotationDefinition INSTANCE = new NamedQueryAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private NamedQueryAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return NamedQueryImpl.createNamedQuery(parent, (Type) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAssociationOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAssociationOverride.java deleted file mode 100644 index 7628b8ac81..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAssociationOverride.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 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.resource.java; - -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator; - - -public class NullAssociationOverride extends AbstractJavaResourceNode implements AssociationOverrideAnnotation, Annotation -{ - private String name; - - public NullAssociationOverride(JavaResourceNode parent, String name) { - super(parent); - this.name = name; - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return AssociationOverrideAnnotation.ANNOTATION_NAME; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - if (name != null) { - createAssociationOverrideResource().setName(name); - } - } - - public ListIterator<JoinColumnAnnotation> joinColumns() { - return EmptyListIterator.instance(); - } - - public JoinColumnAnnotation joinColumnAt(int index) { - return null; - } - - public int indexOfJoinColumn(JoinColumnAnnotation joinColumn) { - throw new UnsupportedOperationException(); - } - - public int joinColumnsSize() { - return 0; - } - - public JoinColumnAnnotation addJoinColumn(int index) { - throw new UnsupportedOperationException(); - } - - public void removeJoinColumn(int index) { - throw new UnsupportedOperationException(); - } - - public void moveJoinColumn(int targetIndex, int sourceIndex) { - throw new UnsupportedOperationException(); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - protected AssociationOverrideAnnotation createAssociationOverrideResource() { - return (AssociationOverrideAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return false; - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAttributeOverrideColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAttributeOverrideColumn.java deleted file mode 100644 index b73262e6a2..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAttributeOverrideColumn.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.ColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullAttributeOverrideColumn extends NullBaseColumn implements ColumnAnnotation, Annotation -{ - public NullAttributeOverrideColumn(AttributeOverrideAnnotation parent) { - super(parent); - } - - @Override - public AttributeOverrideAnnotation getParent() { - return (AttributeOverrideAnnotation) super.getParent(); - } - - public String getAnnotationName() { - return ColumnAnnotation.ANNOTATION_NAME; - } - - @Override - protected ColumnAnnotation createColumnResource() { - return getParent().addColumn(); - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createColumnResource().setLength(length); - } - } - - public Integer getScale() { - return null; - } - - public void setScale(Integer scale) { - if (scale != null) { - createColumnResource().setScale(scale); - } - } - - public Integer getPrecision() { - return null; - } - - public void setPrecision(Integer precision) { - if (precision != null) { - createColumnResource().setPrecision(precision); - } - } - - public TextRange getScaleTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getLengthTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getPrecisionTextRange(CompilationUnit astRoot) { - return null; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseColumn.java deleted file mode 100644 index 3639b674e1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseColumn.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.BaseColumnAnnotation; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.utility.TextRange; - - -public abstract class NullBaseColumn extends NullNamedColumn implements BaseColumnAnnotation, Annotation -{ - protected NullBaseColumn(JavaResourceNode parent) { - super(parent); - } - - @Override - protected abstract BaseColumnAnnotation createColumnResource(); - - public String getTable() { - return null; - } - - public void setTable(String table) { - if (table != null) { - createColumnResource().setTable(table); - } - } - - public Boolean getUnique() { - return null; - } - - public void setUnique(Boolean unique) { - if (unique != null) { - createColumnResource().setUnique(unique); - } - } - - public Boolean getUpdatable() { - return null; - } - - public void setUpdatable(Boolean updatable) { - if (updatable != null) { - createColumnResource().setUpdatable(updatable); - } - } - - public Boolean getInsertable() { - return null; - } - - public void setInsertable(Boolean insertable) { - if (insertable != null) { - createColumnResource().setInsertable(insertable); - } - } - - public Boolean getNullable() { - return null; - } - - public void setNullable(Boolean nullable) { - if (nullable != null) { - createColumnResource().setNullable(nullable); - } - } - - public TextRange getTableTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getUniqueTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getUpdatableTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getInsertableTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getNullableTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean tableTouches(int pos, CompilationUnit astRoot) { - return false; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseTable.java deleted file mode 100644 index f63ef02307..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseTable.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.TableAnnotation; -import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator; - -public abstract class NullBaseTable extends AbstractJavaResourceNode implements Annotation -{ - protected NullBaseTable(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - protected TableAnnotation createTableResource() { - return (TableAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public String getName() { - return null; - } - - public void setName(String name) { - if (name != null) { - createTableResource().setName(name); - } - } - - public String getCatalog() { - return null; - } - - public void setCatalog(String catalog) { - if (catalog != null) { - createTableResource().setCatalog(catalog); - } - } - - public String getSchema() { - return null; - } - - public void setSchema(String schema) { - if (schema != null) { - createTableResource().setSchema(schema); - } - } - - public UniqueConstraintAnnotation addUniqueConstraint(int index) { - return createTableResource().addUniqueConstraint(index); - } - - public void removeUniqueConstraint(int index) { - throw new UnsupportedOperationException(); - } - - public int indexOfUniqueConstraint(UniqueConstraintAnnotation uniqueConstraint) { - throw new UnsupportedOperationException(); - } - - public void moveUniqueConstraint(int targetIndex, int sourceIndex) { - throw new UnsupportedOperationException(); - } - public UniqueConstraintAnnotation uniqueConstraintAt(int index) { - throw new UnsupportedOperationException(); - } - - public ListIterator<UniqueConstraintAnnotation> uniqueConstraints() { - return EmptyListIterator.instance(); - } - - public int uniqueConstraintsSize() { - return 0; - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getCatalogTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getSchemaTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return false; - } - - public boolean catalogTouches(int pos, CompilationUnit astRoot) { - return false; - } - - public boolean schemaTouches(int pos, CompilationUnit astRoot) { - return false; - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBasic.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBasic.java deleted file mode 100644 index 0ff7116ecd..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBasic.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.BasicAnnotation; -import org.eclipse.jpt.core.resource.java.FetchType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullBasic extends AbstractJavaResourceNode implements BasicAnnotation, Annotation -{ - protected NullBasic(JavaResourcePersistentMember parent) { - super(parent); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return BasicAnnotation.ANNOTATION_NAME; - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - protected BasicAnnotation createBasicResource() { - getParent().setMappingAnnotation(getAnnotationName()); - return (BasicAnnotation) getParent().getMappingAnnotation(); - } - - public FetchType getFetch() { - return null; - } - - public void setFetch(FetchType fetch) { - if (fetch != null) { - createBasicResource().setFetch(fetch); - } - } - - public Boolean getOptional() { - return null; - } - - public void setOptional(Boolean optional) { - if (optional != null) { - createBasicResource().setOptional(optional); - } - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getFetchTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getOptionalTextRange(CompilationUnit astRoot) { - return null; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullColumn.java deleted file mode 100644 index 9691145c81..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullColumn.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.ColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullColumn extends NullBaseColumn implements ColumnAnnotation, Annotation -{ - public NullColumn(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public String getAnnotationName() { - return ColumnAnnotation.ANNOTATION_NAME; - } - - @Override - protected ColumnAnnotation createColumnResource() { - return (ColumnAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createColumnResource().setLength(length); - } - } - - public Integer getScale() { - return null; - } - - public void setScale(Integer scale) { - if (scale != null) { - createColumnResource().setScale(scale); - } - } - - public Integer getPrecision() { - return null; - } - - public void setPrecision(Integer precision) { - if (precision != null) { - createColumnResource().setPrecision(precision); - } - } - - public TextRange getScaleTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getLengthTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getPrecisionTextRange(CompilationUnit astRoot) { - return null; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorColumn.java deleted file mode 100644 index 5f00a9132d..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorColumn.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation; -import org.eclipse.jpt.core.resource.java.DiscriminatorType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; - - - -public class NullDiscriminatorColumn extends NullNamedColumn implements DiscriminatorColumnAnnotation, Annotation -{ - public NullDiscriminatorColumn(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public String getAnnotationName() { - return DiscriminatorColumnAnnotation.ANNOTATION_NAME; - } - - @Override - protected DiscriminatorColumnAnnotation createColumnResource() { - return (DiscriminatorColumnAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public DiscriminatorType getDiscriminatorType() { - return null; - } - - public void setDiscriminatorType(DiscriminatorType discriminatorType) { - if (discriminatorType != null) { - createColumnResource().setDiscriminatorType(discriminatorType); - } - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createColumnResource().setLength(length); - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorValue.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorValue.java deleted file mode 100644 index 945c98b120..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullDiscriminatorValue.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.DiscriminatorValueAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullDiscriminatorValue extends AbstractJavaResourceNode implements DiscriminatorValueAnnotation, Annotation -{ - protected NullDiscriminatorValue(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return DiscriminatorValueAnnotation.ANNOTATION_NAME; - } - - public String getValue() { - return null; - } - - public void setValue(String value) { - if (value != null) { - createDiscriminatorValueResource().setValue(value); - } - } - - protected DiscriminatorValueAnnotation createDiscriminatorValueResource() { - return (DiscriminatorValueAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEmbedded.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEmbedded.java deleted file mode 100644 index 6c0f861a1f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEmbedded.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullEmbedded extends AbstractJavaResourceNode implements EmbeddedAnnotation, Annotation -{ - protected NullEmbedded(JavaResourcePersistentMember parent) { - super(parent); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return EmbeddedAnnotation.ANNOTATION_NAME; - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEnumerated.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEnumerated.java deleted file mode 100644 index 3b77650cfa..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullEnumerated.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.EnumType; -import org.eclipse.jpt.core.resource.java.EnumeratedAnnotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullEnumerated extends AbstractJavaResourceNode implements EnumeratedAnnotation, Annotation -{ - protected NullEnumerated(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return EnumeratedAnnotation.ANNOTATION_NAME; - } - - protected EnumeratedAnnotation createEnumeratedResource() { - return (EnumeratedAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - - public EnumType getValue() { - return null; - } - - public void setValue(EnumType value) { - if (value != null) { - createEnumeratedResource().setValue(value); - } - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return null; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullInheritance.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullInheritance.java deleted file mode 100644 index 8bed7fb107..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullInheritance.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.InheritanceAnnotation; -import org.eclipse.jpt.core.resource.java.InheritanceType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullInheritance extends AbstractJavaResourceNode implements InheritanceAnnotation, Annotation -{ - protected NullInheritance(JavaResourcePersistentMember parent) { - super(parent); - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return InheritanceAnnotation.ANNOTATION_NAME; - } - - public InheritanceType getStrategy() { - return null; - } - - public void setStrategy(InheritanceType strategy) { - if (strategy != null) { - createInheritanceResource().setStrategy(strategy); - } - - } - - protected InheritanceAnnotation createInheritanceResource() { - return (InheritanceAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - - } - - public TextRange getStrategyTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinColumn.java deleted file mode 100644 index 4fc798cf24..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinColumn.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - - -public class NullJoinColumn extends NullBaseColumn implements JoinColumnAnnotation, Annotation -{ - public NullJoinColumn(JavaResourceNode parent) { - super(parent); - } - - public String getAnnotationName() { - return JoinColumnAnnotation.ANNOTATION_NAME; - } - - @Override - protected JoinColumnAnnotation createColumnResource() { - throw new UnsupportedOperationException(); - } - - public String getReferencedColumnName() { - return null; - } - - public void setReferencedColumnName(String referencedColumnName) { - throw new UnsupportedOperationException(); - } - - public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) { - return false; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinTable.java deleted file mode 100644 index cd6098a296..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullJoinTable.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ListIterator; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.JoinTableAnnotation; -import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator; - - -public class NullJoinTable extends NullBaseTable implements JoinTableAnnotation -{ - protected NullJoinTable(JavaResourcePersistentMember parent) { - super(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public JoinColumnAnnotation addInverseJoinColumn(int index) { - throw new UnsupportedOperationException(); - } - - public JoinColumnAnnotation addJoinColumn(int index) { - throw new UnsupportedOperationException(); - } - - public int indexOfInverseJoinColumn(JoinColumnAnnotation joinColumn) { - throw new UnsupportedOperationException(); - } - - public int indexOfJoinColumn(JoinColumnAnnotation joinColumn) { - throw new UnsupportedOperationException(); - } - - public JoinColumnAnnotation inverseJoinColumnAt(int index) { - return null; - } - - public ListIterator<JoinColumnAnnotation> inverseJoinColumns() { - return EmptyListIterator.instance(); - } - - public int inverseJoinColumnsSize() { - return 0; - } - - public JoinColumnAnnotation joinColumnAt(int index) { - return null; - } - - public ListIterator<JoinColumnAnnotation> joinColumns() { - return EmptyListIterator.instance(); - } - - public int joinColumnsSize() { - return 0; - } - - public void moveInverseJoinColumn(int targetIndex, int sourceIndex) { - throw new UnsupportedOperationException(); - } - - public void moveJoinColumn(int targetIndex, int sourceIndex) { - throw new UnsupportedOperationException(); - } - - public void removeInverseJoinColumn(int index) { - throw new UnsupportedOperationException(); - } - - public void removeJoinColumn(int index) { - throw new UnsupportedOperationException(); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullNamedColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullNamedColumn.java deleted file mode 100644 index 1f34617f07..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullNamedColumn.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NamedColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - -public abstract class NullNamedColumn extends AbstractJavaResourceNode implements NamedColumnAnnotation, Annotation -{ - protected NullNamedColumn(JavaResourceNode parent) { - super(parent); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - protected abstract NamedColumnAnnotation createColumnResource(); - - public String getName() { - return null; - } - - public void setName(String name) { - if (name != null) { - createColumnResource().setName(name); - } - } - - public String getColumnDefinition() { - return null; - } - - public void setColumnDefinition(String columnDefinition) { - if (columnDefinition != null) { - createColumnResource().setColumnDefinition(columnDefinition); - } - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getColumnDefinitionTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return false; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullPrimaryKeyJoinColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullPrimaryKeyJoinColumn.java deleted file mode 100644 index d7d91f1387..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullPrimaryKeyJoinColumn.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - - -public class NullPrimaryKeyJoinColumn extends NullNamedColumn implements PrimaryKeyJoinColumnAnnotation, Annotation -{ - public NullPrimaryKeyJoinColumn(JavaResourceNode parent) { - super(parent); - } - - public String getAnnotationName() { - return PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME; - } - - @Override - protected PrimaryKeyJoinColumnAnnotation createColumnResource() { - throw new UnsupportedOperationException(); - } - - public String getReferencedColumnName() { - return null; - } - - public void setReferencedColumnName(String referencedColumnName) { - throw new UnsupportedOperationException(); - } - - public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) { - return false; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTable.java deleted file mode 100644 index 1d5f9f6185..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTable.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.TableAnnotation; - - -public class NullTable extends NullBaseTable implements TableAnnotation -{ - protected NullTable(JavaResourcePersistentMember parent) { - super(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTemporal.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTemporal.java deleted file mode 100644 index 57ad7f4984..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullTemporal.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.TemporalAnnotation; -import org.eclipse.jpt.core.resource.java.TemporalType; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullTemporal extends AbstractJavaResourceNode implements TemporalAnnotation, Annotation -{ - protected NullTemporal(JavaResourcePersistentMember parent) { - super(parent); - } - - public void initialize(CompilationUnit astRoot) { - //null, nothing to initialize - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return null; - } - - public void newAnnotation() { - throw new UnsupportedOperationException(); - } - - public void removeAnnotation() { - throw new UnsupportedOperationException(); - } - - public String getAnnotationName() { - return TemporalAnnotation.ANNOTATION_NAME; - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - protected TemporalAnnotation createTemporalResource() { - return (TemporalAnnotation) getParent().addAnnotation(getAnnotationName()); - } - - - public TemporalType getValue() { - return null; - } - - public void setValue(TemporalType value) { - if (value != null) { - createTemporalResource().setValue(value); - } - } - - public void updateFromJava(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return null; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToManyImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToManyImpl.java deleted file mode 100644 index 5eeb3f6715..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToManyImpl.java +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.OneToManyAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class OneToManyImpl extends AbstractRelationshipMappingAnnotation implements OneToManyAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> TARGET_ENTITY_ADAPTER = buildTargetEntityAdapter(); - - private static final DeclarationAnnotationElementAdapter<String[]> CASCADE_ADAPTER = buildCascadeAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> MAPPED_BY_ADAPTER = buildMappedByAdapter(); - - private final AnnotationElementAdapter<String> mappedByAdapter; - - private String mappedBy; - - protected OneToManyImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.mappedByAdapter = buildAnnotationElementAdapter(MAPPED_BY_ADAPTER); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.mappedBy = this.mappedBy(astRoot); - } - - //**************** AbstractRelationshipMappingAnnotation implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<String> targetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> cascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> fetchAdapter() { - return FETCH_ADAPTER; - } - - //**************** Annotation implementation ************** - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - public String getMappedBy() { - return this.mappedBy; - } - - public void setMappedBy(String newMappedBy) { - if (attributeValueHasNotChanged(this.mappedBy, newMappedBy)) { - return; - } - String oldMappedBy = this.mappedBy; - this.mappedBy = newMappedBy; - this.mappedByAdapter.setValue(newMappedBy); - firePropertyChanged(MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy); - } - - public TextRange getMappedByTextRange(CompilationUnit astRoot) { - return getElementTextRange(MAPPED_BY_ADAPTER, astRoot); - } - - public boolean mappedByTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(MAPPED_BY_ADAPTER, pos, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setMappedBy(this.mappedBy(astRoot)); - } - - protected String mappedBy(CompilationUnit astRoot) { - return this.mappedByAdapter.getValue(astRoot); - } - - // ********** static methods ********** - - private static DeclarationAnnotationElementAdapter<String> buildTargetEntityAdapter() { - return buildTargetEntityAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_MANY__TARGET_ENTITY); - } - - private static DeclarationAnnotationElementAdapter<String[]> buildCascadeAdapter() { - return buildEnumArrayAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_MANY__CASCADE); - } - - private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() { - return buildFetchAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_MANY__FETCH); - } - - private static DeclarationAnnotationElementAdapter<String> buildMappedByAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_MANY__MAPPED_BY, false); // false = do not remove annotation when empty - } - - public static class OneToManyAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final OneToManyAnnotationDefinition INSTANCE = new OneToManyAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static OneToManyAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private OneToManyAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new OneToManyImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToOneImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToOneImpl.java deleted file mode 100644 index 38a41acdd5..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OneToOneImpl.java +++ /dev/null @@ -1,205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.OneToOneAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class OneToOneImpl extends AbstractRelationshipMappingAnnotation implements OneToOneAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - static final DeclarationAnnotationElementAdapter<String> TARGET_ENTITY_ADAPTER = buildTargetEntityAdapter(); - - private static final DeclarationAnnotationElementAdapter<String[]> CASCADE_ADAPTER = buildCascadeAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter(); - - private static final DeclarationAnnotationElementAdapter<Boolean> OPTIONAL_ADAPTER = buildOptionalAdapter(); - - private static final DeclarationAnnotationElementAdapter<String> MAPPED_BY_ADAPTER = buildMappedByAdapter(); - - private final AnnotationElementAdapter<Boolean> optionalAdapter; - - private final AnnotationElementAdapter<String> mappedByAdapter; - - - private Boolean optional; - - private String mappedBy; - - public OneToOneImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.mappedByAdapter = buildAnnotationElementAdapter(MAPPED_BY_ADAPTER); - this.optionalAdapter = this.buildBooleanAnnotationElementAdapter(OPTIONAL_ADAPTER); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.mappedBy = this.mappedBy(astRoot); - this.optional = this.optional(astRoot); - } - - //**************** AbstractRelationshipMappingAnnotation implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<String> targetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> cascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> fetchAdapter() { - return FETCH_ADAPTER; - } - - //**************** Annotation implementation ************** - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - public Boolean getOptional() { - return this.optional; - } - - public void setOptional(Boolean newOptional) { - if (attributeValueHasNotChanged(this.optional, newOptional)) { - return; - } - Boolean oldOptional = this.optional; - this.optional = newOptional; - this.optionalAdapter.setValue(newOptional); - firePropertyChanged(OPTIONAL_PROPERTY, oldOptional, newOptional); - } - - public String getMappedBy() { - return this.mappedBy; - } - - public void setMappedBy(String newMappedBy) { - if (attributeValueHasNotChanged(this.mappedBy, newMappedBy)) { - return; - } - String oldMappedBy = this.mappedBy; - this.mappedBy = newMappedBy; - this.mappedByAdapter.setValue(newMappedBy); - firePropertyChanged(MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy); - } - - public TextRange getMappedByTextRange(CompilationUnit astRoot) { - return getElementTextRange(MAPPED_BY_ADAPTER, astRoot); - } - - public TextRange getOptionalTextRange(CompilationUnit astRoot) { - return getElementTextRange(OPTIONAL_ADAPTER, astRoot); - } - - public boolean mappedByTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(MAPPED_BY_ADAPTER, pos, astRoot); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setOptional(this.optional(astRoot)); - this.setMappedBy(this.mappedByAdapter.getValue(astRoot)); - } - - protected String mappedBy(CompilationUnit astRoot) { - return this.mappedByAdapter.getValue(astRoot); - } - - protected Boolean optional(CompilationUnit astRoot) { - return this.optionalAdapter.getValue(astRoot); - } - - - // ********** static methods ********** - - private static DeclarationAnnotationElementAdapter<String> buildTargetEntityAdapter() { - return buildTargetEntityAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_ONE__TARGET_ENTITY); - } - - private static DeclarationAnnotationElementAdapter<String[]> buildCascadeAdapter() { - return buildEnumArrayAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_ONE__CASCADE); - } - - private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() { - return buildFetchAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_ONE__FETCH); - } - - private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter() { - return buildOptionalAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_ONE__OPTIONAL); - } - - private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return new ConversionDeclarationAnnotationElementAdapter<Boolean>(annotationAdapter, elementName, false, BooleanExpressionConverter.instance()); - } - - private static DeclarationAnnotationElementAdapter<String> buildMappedByAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.ONE_TO_ONE__MAPPED_BY, false); // false = do not remove annotation when empty - } - - public static class OneToOneAnnotationDefinition implements AnnotationDefinition - { - - // singleton - private static final OneToOneAnnotationDefinition INSTANCE = new OneToOneAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static OneToOneAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private OneToOneAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new OneToOneImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OrderByImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OrderByImpl.java deleted file mode 100644 index fde4501657..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OrderByImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.OrderByAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class OrderByImpl extends AbstractResourceAnnotation<Attribute> implements OrderByAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); - - - private final AnnotationElementAdapter<String> valueAdapter; - - private String value; - - protected OrderByImpl(JavaResourceNode parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, VALUE_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.value = this.value(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getValue() { - return this.value; - } - - public void setValue(String newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - String oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(newValue); - firePropertyChanged(VALUE_PROPERTY, oldValue, newValue); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setValue(this.value(astRoot)); - } - - protected String value(CompilationUnit astRoot) { - return this.valueAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { - return ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.ORDER_BY__VALUE, false); - } - - - public static class OrderByAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final OrderByAnnotationDefinition INSTANCE = new OrderByAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private OrderByAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new OrderByImpl(parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OverrideImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OverrideImpl.java deleted file mode 100644 index bd76ba56d6..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OverrideImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.OverrideAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public abstract class OverrideImpl - extends AbstractResourceAnnotation<Member> - implements OverrideAnnotation -{ - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private String name; - - - protected OverrideImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.nameDeclarationAdapter = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, JPA.ATTRIBUTE_OVERRIDE__NAME, false); // false = do not remove annotation when empty - this.nameAdapter = new ShortCircuitAnnotationElementAdapter<String>(getMember(),this.nameDeclarationAdapter); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - } - - public IndexedAnnotationAdapter getIndexedAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public void moveAnnotation(int newIndex) { - getIndexedAnnotationAdapter().moveAnnotation(newIndex); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - OverrideAnnotation oldOverride = (OverrideAnnotation) oldAnnotation; - setName(oldOverride.getName()); - } - - //************ AttriubteOverride implementation **************** - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(OverrideAnnotation.NAME_PROPERTY, oldName, newName); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public boolean nameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.nameDeclarationAdapter, pos, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnImpl.java deleted file mode 100644 index e151b35959..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnImpl.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestablePrimaryKeyJoinColumn; -import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class PrimaryKeyJoinColumnImpl extends AbstractNamedColumn implements NestablePrimaryKeyJoinColumn -{ - - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - // hold this so we can get the 'referenced column name' text range - private final DeclarationAnnotationElementAdapter<String> referencedColumnNameDeclarationAdapter; - - private final AnnotationElementAdapter<String> referencedColumnNameAdapter; - - private String referencedColumnName; - - protected PrimaryKeyJoinColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.referencedColumnNameDeclarationAdapter = this.buildStringElementAdapter(JPA.PRIMARY_KEY_JOIN_COLUMN__REFERENCED_COLUMN_NAME); - this.referencedColumnNameAdapter = this.buildShortCircuitElementAdapter(this.referencedColumnNameDeclarationAdapter); - } - - protected PrimaryKeyJoinColumnImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) { - this(parent, member, daa, new MemberAnnotationAdapter(member, daa)); - } - - protected PrimaryKeyJoinColumnImpl(JavaResourceNode parent, Member member, IndexedDeclarationAnnotationAdapter idaa) { - this(parent, member, idaa, new MemberIndexedAnnotationAdapter(member, idaa)); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.referencedColumnName = this.referencedColumnName(astRoot); - } - - @Override - protected String nameElementName() { - return JPA.PRIMARY_KEY_JOIN_COLUMN__NAME; - } - - @Override - protected String columnDefinitionElementName() { - return JPA.PRIMARY_KEY_JOIN_COLUMN__COLUMN_DEFINITION; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - private IndexedAnnotationAdapter getIndexedAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public void moveAnnotation(int newIndex) { - getIndexedAnnotationAdapter().moveAnnotation(newIndex); - } - - @Override - public void initializeFrom(NestableAnnotation oldAnnotation) { - super.initializeFrom(oldAnnotation); - PrimaryKeyJoinColumnAnnotation oldColumn = (PrimaryKeyJoinColumnAnnotation) oldAnnotation; - setReferencedColumnName(oldColumn.getReferencedColumnName()); - } - - public String getReferencedColumnName() { - return this.referencedColumnName; - } - - public void setReferencedColumnName(String newReferencedColumnName) { - if (attributeValueHasNotChanged(this.referencedColumnName, newReferencedColumnName)) { - return; - } - String oldReferencedColumnName = this.referencedColumnName; - this.referencedColumnName = newReferencedColumnName; - this.referencedColumnNameAdapter.setValue(newReferencedColumnName); - firePropertyChanged(REFERENCED_COLUMN_NAME_PROPERTY, oldReferencedColumnName, newReferencedColumnName); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setReferencedColumnName(this.referencedColumnName(astRoot)); - } - - protected String referencedColumnName(CompilationUnit astRoot) { - return this.referencedColumnNameAdapter.getValue(astRoot); - } - - public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.referencedColumnNameDeclarationAdapter, pos, astRoot); - } - - public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.referencedColumnNameDeclarationAdapter, astRoot); - } - - // ********** static methods ********** - - static PrimaryKeyJoinColumnImpl createPrimaryKeyJoinColumn(JavaResourceNode parent, Member member) { - return new PrimaryKeyJoinColumnImpl(parent, member, DECLARATION_ANNOTATION_ADAPTER); - } - - static PrimaryKeyJoinColumnImpl createNestedPrimaryKeyJoinColumn(JavaResourceNode parent, Member member, int index, DeclarationAnnotationAdapter pkJoinColumnsAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, pkJoinColumnsAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(member, idaa); - return new PrimaryKeyJoinColumnImpl(parent, member, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter pkJoinColumnsAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(pkJoinColumnsAdapter, index, JPA.PRIMARY_KEY_JOIN_COLUMN); - } - - - static NestablePrimaryKeyJoinColumn createSecondaryTablePrimaryKeyJoinColumn(DeclarationAnnotationAdapter secondaryTableAdapter, JavaResourceNode parent, Member member, int index) { - return new PrimaryKeyJoinColumnImpl(parent, member, buildSecondaryTableAnnotationAdapter(secondaryTableAdapter, index)); - } - - private static IndexedDeclarationAnnotationAdapter buildSecondaryTableAnnotationAdapter(DeclarationAnnotationAdapter secondaryTableAdapter, int index) { - return new NestedIndexedDeclarationAnnotationAdapter(secondaryTableAdapter, JPA.SECONDARY_TABLE__PK_JOIN_COLUMNS, index, JPA.PRIMARY_KEY_JOIN_COLUMN); - } - - public static class PrimaryKeyJoinColumnAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final PrimaryKeyJoinColumnAnnotationDefinition INSTANCE = new PrimaryKeyJoinColumnAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private PrimaryKeyJoinColumnAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return PrimaryKeyJoinColumnImpl.createPrimaryKeyJoinColumn(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnsImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnsImpl.java deleted file mode 100644 index df517c84f0..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnsImpl.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestablePrimaryKeyJoinColumn; -import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumns; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class PrimaryKeyJoinColumnsImpl extends AbstractResourceAnnotation<Member> implements PrimaryKeyJoinColumns -{ - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private List<NestablePrimaryKeyJoinColumn> pkJoinColumns; - - protected PrimaryKeyJoinColumnsImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.pkJoinColumns = new ArrayList<NestablePrimaryKeyJoinColumn>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME; - } - - public String getElementName() { - return "value"; - } - - public ListIterator<NestablePrimaryKeyJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestablePrimaryKeyJoinColumn>(this.pkJoinColumns); - } - - public int nestedAnnotationsSize() { - return this.pkJoinColumns.size(); - } - - public NestablePrimaryKeyJoinColumn addInternal(int index) { - NestablePrimaryKeyJoinColumn pkJoinColumn = createPrimaryKeyJoinColumn(index); - this.pkJoinColumns.add(index, pkJoinColumn); - return pkJoinColumn; - } - - public NestablePrimaryKeyJoinColumn add(int index) { - NestablePrimaryKeyJoinColumn pkJoinColumn = createPrimaryKeyJoinColumn(index); - add(index, pkJoinColumn); - return pkJoinColumn; - } - - protected void add(int index, NestablePrimaryKeyJoinColumn pkJoinColumn) { - addItemToList(index, pkJoinColumn, this.pkJoinColumns, PK_JOIN_COLUMNS_LIST); - } - - public void remove(NestablePrimaryKeyJoinColumn pkJoinColumn) { - removeItemFromList(pkJoinColumn, this.pkJoinColumns, PK_JOIN_COLUMNS_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.pkJoinColumns, PK_JOIN_COLUMNS_LIST); - } - - public int indexOf(NestablePrimaryKeyJoinColumn pkJoinColumn) { - return this.pkJoinColumns.indexOf(pkJoinColumn); - } - - public NestablePrimaryKeyJoinColumn nestedAnnotationAt(int index) { - return this.pkJoinColumns.get(index); - } - - public NestablePrimaryKeyJoinColumn nestedAnnotationFor(Annotation jdtAnnotation) { - for (NestablePrimaryKeyJoinColumn pkJoinColumn : this.pkJoinColumns) { - if (jdtAnnotation == pkJoinColumn.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return pkJoinColumn; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.pkJoinColumns, PK_JOIN_COLUMNS_LIST); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.pkJoinColumns, targetIndex, sourceIndex); - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private PrimaryKeyJoinColumnImpl createPrimaryKeyJoinColumn(int index) { - return PrimaryKeyJoinColumnImpl.createNestedPrimaryKeyJoinColumn(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - - public static class PrimaryKeyJoinColumnsAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final PrimaryKeyJoinColumnsAnnotationDefinition INSTANCE = new PrimaryKeyJoinColumnsAnnotationDefinition(); - - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private PrimaryKeyJoinColumnsAnnotationDefinition() { - super(); - } - - public PrimaryKeyJoinColumns buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new PrimaryKeyJoinColumnsImpl(parent, member); - } - - public PrimaryKeyJoinColumns buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/QueryHintImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/QueryHintImpl.java deleted file mode 100644 index de03b1dd13..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/QueryHintImpl.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableQueryHint; -import org.eclipse.jpt.core.resource.java.QueryHintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Type; - -public class QueryHintImpl extends AbstractResourceAnnotation<Type> - implements NestableQueryHint -{ - - // hold this so we can get the 'name' text range - private final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter; - - // hold this so we can get the 'value' text range - private final DeclarationAnnotationElementAdapter<String> valueDeclarationAdapter; - - private final AnnotationElementAdapter<String> nameAdapter; - - private final AnnotationElementAdapter<String> valueAdapter; - - private String name; - - private String value; - - public QueryHintImpl(JavaResourceNode parent, Type type, IndexedDeclarationAnnotationAdapter idaa) { - super(parent, type, idaa, new MemberIndexedAnnotationAdapter(type, idaa)); - this.nameDeclarationAdapter = this.nameAdapter(idaa); - this.nameAdapter = this.buildAdapter(this.nameDeclarationAdapter); - this.valueDeclarationAdapter = this.valueAdapter(idaa); - this.valueAdapter = this.buildAdapter(this.valueDeclarationAdapter); - } - - public void initialize(CompilationUnit astRoot) { - this.name = this.name(astRoot); - this.value = this.value(astRoot); - } - - // ********** initialization ********** - protected AnnotationElementAdapter<String> buildAdapter(DeclarationAnnotationElementAdapter<String> daea) { - return new ShortCircuitAnnotationElementAdapter<String>(getMember(), daea); - } - - protected DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, JPA.QUERY_HINT__NAME); - } - - protected DeclarationAnnotationElementAdapter<String> valueAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, JPA.QUERY_HINT__VALUE); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - @Override - public IndexedAnnotationAdapter getAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public String getName() { - return this.name; - } - - public void setName(String newName) { - if (attributeValueHasNotChanged(this.name, newName)) { - return; - } - String oldName = this.name; - this.name = newName; - this.nameAdapter.setValue(newName); - firePropertyChanged(NAME_PROPERTY, oldName, newName); - } - - public String getValue() { - return this.value; - } - - public void setValue(String newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - String oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(newValue); - firePropertyChanged(VALUE_PROPERTY, oldValue, newValue); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.nameDeclarationAdapter, astRoot); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.valueDeclarationAdapter, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - this.setValue(this.value(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - protected String value(CompilationUnit astRoot) { - return this.valueAdapter.getValue(astRoot); - } - - // ********** persistence model -> java annotations ********** - public void moveAnnotation(int newIndex) { - getAnnotationAdapter().moveAnnotation(newIndex); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - QueryHintAnnotation oldQueryHint = (QueryHintAnnotation) oldAnnotation; - setName(oldQueryHint.getName()); - setValue(oldQueryHint.getValue()); - } - - // ********** static methods ********** - static QueryHintImpl createNamedQueryQueryHint(JavaResourceNode parent, Type type, DeclarationAnnotationAdapter namedQueryAdapter, int index) { - return new QueryHintImpl(parent, type, buildNamedQueryQueryHintAnnotationAdapter(namedQueryAdapter, index)); - } - - private static IndexedDeclarationAnnotationAdapter buildNamedQueryQueryHintAnnotationAdapter(DeclarationAnnotationAdapter namedQueryAdapter, int index) { - return new NestedIndexedDeclarationAnnotationAdapter(namedQueryAdapter, JPA.NAMED_QUERY__HINTS, index, JPA.QUERY_HINT); - } - - static QueryHintImpl createNamedNativeQueryQueryHint(JavaResourceNode parent, Type type, DeclarationAnnotationAdapter namedNativeQueryAdapter, int index) { - return new QueryHintImpl(parent, type, buildNamedNativeQueryQueryHintAnnotationAdapter(namedNativeQueryAdapter, index)); - } - - private static IndexedDeclarationAnnotationAdapter buildNamedNativeQueryQueryHintAnnotationAdapter(DeclarationAnnotationAdapter namedNativeQueryAdapter, int index) { - return new NestedIndexedDeclarationAnnotationAdapter(namedNativeQueryAdapter, JPA.NAMED_NATIVE_QUERY__HINTS, index, JPA.QUERY_HINT); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTableImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTableImpl.java deleted file mode 100644 index a8f05772c4..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTableImpl.java +++ /dev/null @@ -1,322 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestablePrimaryKeyJoinColumn; -import org.eclipse.jpt.core.resource.java.NestableSecondaryTable; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation; -import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation; -import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class SecondaryTableImpl extends AbstractResourceTable implements NestableSecondaryTable -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(SecondaryTableAnnotation.ANNOTATION_NAME); - - private final List<NestablePrimaryKeyJoinColumn> pkJoinColumns; - - private final PkJoinColumnsContainerAnnotation pkJoinColumnsContainerAnnotation; - - - protected SecondaryTableImpl(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa, AnnotationAdapter annotationAdapter) { - super(parent, member, daa, annotationAdapter); - this.pkJoinColumns = new ArrayList<NestablePrimaryKeyJoinColumn>(); - this.pkJoinColumnsContainerAnnotation = new PkJoinColumnsContainerAnnotation(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.pkJoinColumnsContainerAnnotation); - } - - @Override - protected DeclarationAnnotationElementAdapter<String> catalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__CATALOG); - } - - @Override - protected DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__NAME); - } - - @Override - protected DeclarationAnnotationElementAdapter<String> schemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__SCHEMA); - } - - public IndexedAnnotationAdapter getIndexedAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public String getAnnotationName() { - return SecondaryTableAnnotation.ANNOTATION_NAME; - } - - public void moveAnnotation(int newIndex) { - getIndexedAnnotationAdapter().moveAnnotation(newIndex); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - SecondaryTableAnnotation oldSecondaryTable = (SecondaryTableAnnotation) oldAnnotation; - setName(oldSecondaryTable.getName()); - setCatalog(oldSecondaryTable.getCatalog()); - setSchema(oldSecondaryTable.getSchema()); - for (UniqueConstraintAnnotation uniqueConstraint : CollectionTools.iterable(oldSecondaryTable.uniqueConstraints())) { - NestableUniqueConstraint newUniqueConstraint = addUniqueConstraint(oldSecondaryTable.indexOfUniqueConstraint(uniqueConstraint)); - newUniqueConstraint.initializeFrom((NestableAnnotation) uniqueConstraint); - } - for (PrimaryKeyJoinColumnAnnotation pkJoinColumn : CollectionTools.iterable(oldSecondaryTable.pkJoinColumns())) { - NestablePrimaryKeyJoinColumn newPkJoinColumn = addPkJoinColumn(oldSecondaryTable.indexOfPkJoinColumn(pkJoinColumn)); - newPkJoinColumn.initializeFrom((NestableAnnotation) pkJoinColumn); - } - } - - @Override - protected NestableUniqueConstraint createUniqueConstraint(int index) { - return UniqueConstraintImpl.createSecondaryTableUniqueConstraint(this, this.getMember(), this.getDeclarationAnnotationAdapter(), index); - } - - // ************* SecondaryTable implementation ******************* - - - public ListIterator<PrimaryKeyJoinColumnAnnotation> pkJoinColumns() { - return new CloneListIterator<PrimaryKeyJoinColumnAnnotation>(this.pkJoinColumns); - } - - public int pkJoinColumnsSize() { - return this.pkJoinColumns.size(); - } - - public NestablePrimaryKeyJoinColumn pkJoinColumnAt(int index) { - return this.pkJoinColumns.get(index); - } - - public int indexOfPkJoinColumn(PrimaryKeyJoinColumnAnnotation joinColumn) { - return this.pkJoinColumns.indexOf(joinColumn); - } - - public NestablePrimaryKeyJoinColumn addPkJoinColumn(int index) { - NestablePrimaryKeyJoinColumn pkJoinColumn = (NestablePrimaryKeyJoinColumn) ContainerAnnotationTools.addNestedAnnotation(index, this.pkJoinColumnsContainerAnnotation); - fireItemAdded(SecondaryTableAnnotation.PK_JOIN_COLUMNS_LIST, index, pkJoinColumn); - return pkJoinColumn; - } - - protected void addPkJoinColumn(int index, NestablePrimaryKeyJoinColumn pkJoinColumn) { - addItemToList(index, pkJoinColumn, this.pkJoinColumns, PK_JOIN_COLUMNS_LIST); - } - - public void removePkJoinColumn(int index) { - NestablePrimaryKeyJoinColumn pkJoinColumn = this.pkJoinColumns.get(index); - removePkJoinColumn(pkJoinColumn); - pkJoinColumn.removeAnnotation(); - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.pkJoinColumnsContainerAnnotation); - } - - protected void removePkJoinColumn(NestablePrimaryKeyJoinColumn pkJoinColumn) { - removeItemFromList(pkJoinColumn, this.pkJoinColumns, SecondaryTableAnnotation.PK_JOIN_COLUMNS_LIST); - } - - public void movePkJoinColumn(int targetIndex, int sourceIndex) { - movePkJoinColumnInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.pkJoinColumnsContainerAnnotation); - fireItemMoved(SecondaryTableAnnotation.PK_JOIN_COLUMNS_LIST, targetIndex, sourceIndex); - } - - protected void movePkJoinColumnInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.pkJoinColumns, targetIndex, sourceIndex); - } - - - protected NestablePrimaryKeyJoinColumn createPrimaryKeyJoinColumn(int index) { - return PrimaryKeyJoinColumnImpl.createSecondaryTablePrimaryKeyJoinColumn(getDeclarationAnnotationAdapter(), this, getMember(), index); - } - - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.updatePkJoinColumnsFromJava(astRoot); - } - - private void updatePkJoinColumnsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.pkJoinColumnsContainerAnnotation); - } - - // ********** static methods ********** - static SecondaryTableImpl createSecondaryTable(JavaResourceNode parent, Member member) { - return new SecondaryTableImpl(parent, member, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(member, DECLARATION_ANNOTATION_ADAPTER)); - } - - static SecondaryTableImpl createNestedSecondaryTable(JavaResourceNode parent, Member member, int index, DeclarationAnnotationAdapter secondaryTablesAdapter) { - IndexedDeclarationAnnotationAdapter idaa = buildNestedDeclarationAnnotationAdapter(index, secondaryTablesAdapter); - IndexedAnnotationAdapter annotationAdapter = new MemberIndexedAnnotationAdapter(member, idaa); - return new SecondaryTableImpl(parent, member, idaa, annotationAdapter); - } - - private static IndexedDeclarationAnnotationAdapter buildNestedDeclarationAnnotationAdapter(int index, DeclarationAnnotationAdapter secondaryTablesAdapter) { - return new NestedIndexedDeclarationAnnotationAdapter(secondaryTablesAdapter, index, JPA.SECONDARY_TABLE); - } - - - private class PkJoinColumnsContainerAnnotation extends AbstractJavaResourceNode - implements ContainerAnnotation<NestablePrimaryKeyJoinColumn> - { - public PkJoinColumnsContainerAnnotation() { - super(SecondaryTableImpl.this); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public NestablePrimaryKeyJoinColumn addInternal(int index) { - NestablePrimaryKeyJoinColumn pKJoinColumn = SecondaryTableImpl.this.createPrimaryKeyJoinColumn(index); - SecondaryTableImpl.this.pkJoinColumns.add(index, pKJoinColumn); - return pKJoinColumn; - } - - public NestablePrimaryKeyJoinColumn add(int index) { - NestablePrimaryKeyJoinColumn pKJoinColumn = SecondaryTableImpl.this.createPrimaryKeyJoinColumn(index); - SecondaryTableImpl.this.addPkJoinColumn(index, pKJoinColumn); - return pKJoinColumn; - } - - public int indexOf(NestablePrimaryKeyJoinColumn pkJoinColumn) { - return SecondaryTableImpl.this.indexOfPkJoinColumn(pkJoinColumn); - } - - public void move(int targetIndex, int sourceIndex) { - SecondaryTableImpl.this.movePkJoinColumn(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - SecondaryTableImpl.this.movePkJoinColumnInternal(targetIndex, sourceIndex); - } - - public NestablePrimaryKeyJoinColumn nestedAnnotationAt(int index) { - return SecondaryTableImpl.this.pkJoinColumnAt(index); - } - - public ListIterator<NestablePrimaryKeyJoinColumn> nestedAnnotations() { - return new CloneListIterator<NestablePrimaryKeyJoinColumn>(SecondaryTableImpl.this.pkJoinColumns); - } - - public int nestedAnnotationsSize() { - return pkJoinColumnsSize(); - } - - public String getAnnotationName() { - return SecondaryTableImpl.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.PRIMARY_KEY_JOIN_COLUMN; - } - - public NestablePrimaryKeyJoinColumn nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestablePrimaryKeyJoinColumn pkJoinColumn : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == pkJoinColumn.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return pkJoinColumn; - } - } - return null; - } - - public void remove(int index) { - this.remove(nestedAnnotationAt(index)); - } - - public void remove(NestablePrimaryKeyJoinColumn pkJoinColumn) { - SecondaryTableImpl.this.removePkJoinColumn(pkJoinColumn); - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return SecondaryTableImpl.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - SecondaryTableImpl.this.newAnnotation(); - } - - public void removeAnnotation() { - SecondaryTableImpl.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - SecondaryTableImpl.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return SecondaryTableImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return "pkJoinColumns"; - } - } - - public static class SecondaryTableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final SecondaryTableAnnotationDefinition INSTANCE = new SecondaryTableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private SecondaryTableAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return SecondaryTableImpl.createSecondaryTable(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return SecondaryTableAnnotation.ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTablesImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTablesImpl.java deleted file mode 100644 index e8e2963566..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTablesImpl.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.java.NestableSecondaryTable; -import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation; -import org.eclipse.jpt.core.resource.java.SecondaryTablesAnnotation; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class SecondaryTablesImpl extends AbstractResourceAnnotation<Member> implements SecondaryTablesAnnotation -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private final List<NestableSecondaryTable> secondaryTables; - - protected SecondaryTablesImpl(JavaResourcePersistentType parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.secondaryTables = new ArrayList<NestableSecondaryTable>(); - } - - public void initialize(CompilationUnit astRoot) { - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public String getNestableAnnotationName() { - return SecondaryTableAnnotation.ANNOTATION_NAME; - } - - public String getElementName() { - return "value"; - } - - public ListIterator<NestableSecondaryTable> nestedAnnotations() { - return new CloneListIterator<NestableSecondaryTable>(this.secondaryTables); - } - - public int nestedAnnotationsSize() { - return this.secondaryTables.size(); - } - - public NestableSecondaryTable addInternal(int index) { - NestableSecondaryTable secondaryTable = createSecondaryTable(index); - this.secondaryTables.add(index, secondaryTable); - return secondaryTable; - } - - public NestableSecondaryTable add(int index) { - NestableSecondaryTable secondaryTable = createSecondaryTable(index); - this.add(index, secondaryTable); - return secondaryTable; - } - - protected void add(int index, NestableSecondaryTable secondaryTable) { - addItemToList(index, secondaryTable, this.secondaryTables, SecondaryTablesAnnotation.SECONDARY_TABLES_LIST); - } - - public void remove(NestableSecondaryTable secondaryTable) { - removeItemFromList(secondaryTable, this.secondaryTables, SecondaryTablesAnnotation.SECONDARY_TABLES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.secondaryTables, SecondaryTablesAnnotation.SECONDARY_TABLES_LIST); - } - - public int indexOf(NestableSecondaryTable secondaryTable) { - return this.secondaryTables.indexOf(secondaryTable); - } - - public NestableSecondaryTable nestedAnnotationAt(int index) { - return this.secondaryTables.get(index); - } - - public NestableSecondaryTable nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableSecondaryTable secondaryTable : this.secondaryTables) { - if (jdtAnnotation == secondaryTable.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return secondaryTable; - } - } - return null; - } - - public void move(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.secondaryTables, SecondaryTablesAnnotation.SECONDARY_TABLES_LIST); - } - //TODO this move is different than how we handle SecondarTable.pkJoinColumns -// public void movePkJoinColumn(int oldIndex, int newIndex) { -// movePkJoinColumnInternal(oldIndex, newIndex); -// ContainerAnnotationTools.synchAnnotationsAfterMove(newIndex, oldIndex, this.pkJoinColumnsContainerAnnotation); -// fireItemMoved(SecondaryTable.PK_JOIN_COLUMNS_LIST, newIndex, oldIndex); -// } - - public void moveInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.secondaryTables, targetIndex, sourceIndex); - } - - public void updateFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this); - } - - private SecondaryTableImpl createSecondaryTable(int index) { - return SecondaryTableImpl.createNestedSecondaryTable(this, getMember(), index, getDeclarationAnnotationAdapter()); - } - - public static class SecondaryTablesAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final SecondaryTablesAnnotationDefinition INSTANCE = new SecondaryTablesAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private SecondaryTablesAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new SecondaryTablesImpl((JavaResourcePersistentType) parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SequenceGeneratorImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SequenceGeneratorImpl.java deleted file mode 100644 index 548d3fef86..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SequenceGeneratorImpl.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class SequenceGeneratorImpl extends GeneratorImpl implements SequenceGeneratorAnnotation -{ - private final AnnotationElementAdapter<String> sequenceNameAdapter; - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = buildAdapter(JPA.SEQUENCE_GENERATOR__NAME); - - private static final DeclarationAnnotationElementAdapter<Integer> INITIAL_VALUE_ADAPTER = buildIntegerAdapter(JPA.SEQUENCE_GENERATOR__INITIAL_VALUE); - - private static final DeclarationAnnotationElementAdapter<Integer> ALLOCATION_SIZE_ADAPTER = buildIntegerAdapter(JPA.SEQUENCE_GENERATOR__ALLOCATION_SIZE); - - private static final DeclarationAnnotationElementAdapter<String> SEQUENCE_NAME_ADAPTER = buildAdapter(JPA.SEQUENCE_GENERATOR__SEQUENCE_NAME); - - private String sequenceName; - - protected SequenceGeneratorImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.sequenceNameAdapter = this.buildAdapter(SEQUENCE_NAME_ADAPTER); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.sequenceName = this.sequenceName(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - //************ GeneratorImpl implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<Integer> allocationSizeAdapter() { - return ALLOCATION_SIZE_ADAPTER; - } - - @Override - protected DeclarationAnnotationAdapter annotationAdapter() { - return DECLARATION_ANNOTATION_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<Integer> initialValueAdapter() { - return INITIAL_VALUE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> nameAdapter() { - return NAME_ADAPTER; - } - - - public String getSequenceName() { - return this.sequenceName; - } - - public void setSequenceName(String newSequenceName) { - if (attributeValueHasNotChanged(this.sequenceName, newSequenceName)) { - return; - } - String oldSequenceName = this.sequenceName; - this.sequenceName = newSequenceName; - this.sequenceNameAdapter.setValue(newSequenceName); - firePropertyChanged(SEQUENCE_NAME_PROPERTY, oldSequenceName, newSequenceName); - } - - public TextRange getSequenceNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(SEQUENCE_NAME_ADAPTER, astRoot); - } - - // ********** java annotations -> persistence model ********** - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setSequenceName(this.sequenceName(astRoot)); - } - - protected String sequenceName(CompilationUnit astRoot) { - return this.sequenceNameAdapter.getValue(astRoot); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildAdapter(String elementName) { - return buildAdapter(DECLARATION_ANNOTATION_ADAPTER, elementName); - } - - private static DeclarationAnnotationElementAdapter<Integer> buildIntegerAdapter(String elementName) { - return buildIntegerAdapter(DECLARATION_ANNOTATION_ADAPTER, elementName); - } - - public static class SequenceGeneratorAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final SequenceGeneratorAnnotationDefinition INSTANCE = new SequenceGeneratorAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private SequenceGeneratorAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new SequenceGeneratorImpl(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableGeneratorImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableGeneratorImpl.java deleted file mode 100644 index 4ca173f104..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableGeneratorImpl.java +++ /dev/null @@ -1,483 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.ContainerAnnotation; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.resource.java.TableAnnotation; -import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation; -import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class TableGeneratorImpl extends GeneratorImpl implements TableGeneratorAnnotation -{ - private final AnnotationElementAdapter<String> tableAdapter; - - private final AnnotationElementAdapter<String> catalogAdapter; - - private final AnnotationElementAdapter<String> schemaAdapter; - - private final AnnotationElementAdapter<String> pkColumnNameAdapter; - - private final AnnotationElementAdapter<String> valueColumnNameAdapter; - - private final AnnotationElementAdapter<String> pkColumnValueAdapter; - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__NAME); - - private static final DeclarationAnnotationElementAdapter<Integer> INITIAL_VALUE_ADAPTER = buildIntegerAdapter(JPA.TABLE_GENERATOR__INITIAL_VALUE); - - private static final DeclarationAnnotationElementAdapter<Integer> ALLOCATION_SIZE_ADAPTER = buildIntegerAdapter(JPA.TABLE_GENERATOR__ALLOCATION_SIZE); - - private static final DeclarationAnnotationElementAdapter<String> TABLE_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__TABLE); - - private static final DeclarationAnnotationElementAdapter<String> CATALOG_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__CATALOG); - - private static final DeclarationAnnotationElementAdapter<String> SCHEMA_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__SCHEMA); - - private static final DeclarationAnnotationElementAdapter<String> PK_COLUMN_NAME_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__PK_COLUMN_NAME); - - private static final DeclarationAnnotationElementAdapter<String> VALUE_COLUMN_NAME_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__VALUE_COLUMN_NAME); - - private static final DeclarationAnnotationElementAdapter<String> PK_COLUMN_VALUE_ADAPTER = buildAdapter(JPA.TABLE_GENERATOR__PK_COLUMN_VALUE); - - private String table; - - private String catalog; - - private String schema; - - private String pkColumnName; - - private String valueColumnName; - - private String pkColumnValue; - - private final List<NestableUniqueConstraint> uniqueConstraints; - - private final UniqueConstraintsContainerAnnotation uniqueConstraintsContainerAnnotation; - - - protected TableGeneratorImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER); - this.tableAdapter = this.buildAdapter(TABLE_ADAPTER); - this.catalogAdapter = this.buildAdapter(CATALOG_ADAPTER); - this.schemaAdapter = this.buildAdapter(SCHEMA_ADAPTER); - this.pkColumnNameAdapter = this.buildAdapter(PK_COLUMN_NAME_ADAPTER); - this.valueColumnNameAdapter = this.buildAdapter(VALUE_COLUMN_NAME_ADAPTER); - this.pkColumnValueAdapter = this.buildAdapter(PK_COLUMN_VALUE_ADAPTER); - this.uniqueConstraints = new ArrayList<NestableUniqueConstraint>(); - this.uniqueConstraintsContainerAnnotation = new UniqueConstraintsContainerAnnotation(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.table = this.table(astRoot); - this.catalog = this.catalog(astRoot); - this.schema = this.schema(astRoot); - this.pkColumnName = this.pkColumnName(astRoot); - this.valueColumnName = this.valueColumnName(astRoot); - this.pkColumnValue = this.pkColumnValue(astRoot); - ContainerAnnotationTools.initializeNestedAnnotations(astRoot, this.uniqueConstraintsContainerAnnotation); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - - //************ GeneratorImpl implementation ************** - - @Override - protected DeclarationAnnotationElementAdapter<Integer> allocationSizeAdapter() { - return ALLOCATION_SIZE_ADAPTER; - } - - @Override - protected DeclarationAnnotationAdapter annotationAdapter() { - return DECLARATION_ANNOTATION_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<Integer> initialValueAdapter() { - return INITIAL_VALUE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> nameAdapter() { - return NAME_ADAPTER; - } - - public String getTable() { - return this.table; - } - - public void setTable(String newTable) { - if (attributeValueHasNotChanged(this.table, newTable)) { - return; - } - String oldTable = this.table; - this.table = newTable; - this.tableAdapter.setValue(newTable); - firePropertyChanged(TABLE_PROPERTY, oldTable, newTable); - } - - public String getCatalog() { - return this.catalog; - } - - public void setCatalog(String newCatalog) { - if (attributeValueHasNotChanged(this.catalog, newCatalog)) { - return; - } - String oldCatalog = this.catalog; - this.catalog = newCatalog; - this.catalogAdapter.setValue(newCatalog); - firePropertyChanged(CATALOG_PROPERTY, oldCatalog, newCatalog); - } - - public String getSchema() { - return this.schema; - } - - public void setSchema(String newSchema) { - if (attributeValueHasNotChanged(this.schema, newSchema)) { - return; - } - String oldSchema = this.schema; - this.schema = newSchema; - this.schemaAdapter.setValue(newSchema); - firePropertyChanged(SCHEMA_PROPERTY, oldSchema, newSchema); - } - - public String getPkColumnName() { - return this.pkColumnName; - } - - public void setPkColumnName(String newPkColumnName) { - if (attributeValueHasNotChanged(this.pkColumnName, newPkColumnName)) { - return; - } - String oldPkColumnName = this.pkColumnName; - this.pkColumnName = newPkColumnName; - this.pkColumnNameAdapter.setValue(newPkColumnName); - firePropertyChanged(PK_COLUMN_NAME_PROPERTY, oldPkColumnName, newPkColumnName); - } - - public String getValueColumnName() { - return this.valueColumnName; - } - - public void setValueColumnName(String newValueColumnName) { - if (attributeValueHasNotChanged(this.valueColumnName, newValueColumnName)) { - return; - } - String oldValueColumnName = this.valueColumnName; - this.valueColumnName = newValueColumnName; - this.valueColumnNameAdapter.setValue(newValueColumnName); - firePropertyChanged(VALUE_COLUMN_NAME_PROPERTY, oldValueColumnName, newValueColumnName); - } - - public String getPkColumnValue() { - return this.pkColumnValue; - } - - public void setPkColumnValue(String newPkColumnValue) { - if (attributeValueHasNotChanged(this.pkColumnValue, newPkColumnValue)) { - return; - } - String oldPkColumnValue = this.pkColumnValue; - this.pkColumnValue = newPkColumnValue; - this.pkColumnValueAdapter.setValue(newPkColumnValue); - firePropertyChanged(PK_COLUMN_VALUE_PROPERTY, oldPkColumnValue, newPkColumnValue); - } - - public ListIterator<UniqueConstraintAnnotation> uniqueConstraints() { - return new CloneListIterator<UniqueConstraintAnnotation>(this.uniqueConstraints); - } - - public int uniqueConstraintsSize() { - return this.uniqueConstraints.size(); - } - - public NestableUniqueConstraint uniqueConstraintAt(int index) { - return this.uniqueConstraints.get(index); - } - - public int indexOfUniqueConstraint(UniqueConstraintAnnotation uniqueConstraint) { - return this.uniqueConstraints.indexOf(uniqueConstraint); - } - - public NestableUniqueConstraint addUniqueConstraint(int index) { - NestableUniqueConstraint uniqueConstraint = (NestableUniqueConstraint) ContainerAnnotationTools.addNestedAnnotation(index, this.uniqueConstraintsContainerAnnotation); - fireItemAdded(TableGeneratorAnnotation.UNIQUE_CONSTRAINTS_LIST, index, uniqueConstraint); - return uniqueConstraint; - } - - private void addUniqueConstraint(int index, NestableUniqueConstraint uniqueConstraint) { - addItemToList(index, uniqueConstraint, this.uniqueConstraints, UNIQUE_CONSTRAINTS_LIST); - } - - public void removeUniqueConstraint(int index) { - NestableUniqueConstraint uniqueConstraint = this.uniqueConstraints.get(index); - removeUniqueConstraint(uniqueConstraint); - uniqueConstraint.removeAnnotation(); - synchUniqueConstraintAnnotationsAfterRemove(index); - } - - protected void removeUniqueConstraint(NestableUniqueConstraint uniqueConstraint) { - removeItemFromList(uniqueConstraint, this.uniqueConstraints, UNIQUE_CONSTRAINTS_LIST); - } - - public void moveUniqueConstraint(int targetIndex, int sourceIndex) { - moveUniqueConstraintInternal(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, this.uniqueConstraintsContainerAnnotation); - fireItemMoved(TableAnnotation.UNIQUE_CONSTRAINTS_LIST, targetIndex, sourceIndex); - } - - protected void moveUniqueConstraintInternal(int targetIndex, int sourceIndex) { - CollectionTools.move(this.uniqueConstraints, targetIndex, sourceIndex); - } - - /** - * synchronize the annotations with the model join columns, - * starting at the specified index to prevent overlap - */ - private void synchUniqueConstraintAnnotationsAfterRemove(int index) { - ContainerAnnotationTools.synchAnnotationsAfterRemove(index, this.uniqueConstraintsContainerAnnotation); - } - - protected NestableUniqueConstraint createUniqueConstraint(int index) { - return UniqueConstraintImpl.createTableGeneratorUniqueConstraint(this, this.getMember(), index); - } - - public TextRange getTableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(TABLE_ADAPTER, astRoot); - } - - public TextRange getCatalogTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(CATALOG_ADAPTER, astRoot); - } - - public TextRange getSchemaTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(SCHEMA_ADAPTER, astRoot); - } - - public TextRange getPkColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(PK_COLUMN_NAME_ADAPTER, astRoot); - } - - public TextRange getPkColumnValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(PK_COLUMN_VALUE_ADAPTER, astRoot); - } - - public TextRange getValueColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_COLUMN_NAME_ADAPTER, astRoot); - } - - // ********** java annotations -> persistence model ********** - @Override - public void updateFromJava(CompilationUnit astRoot) { - super.updateFromJava(astRoot); - this.setTable(this.table(astRoot)); - this.setCatalog(this.catalog(astRoot)); - this.setSchema(this.schema(astRoot)); - this.setPkColumnName(this.pkColumnName(astRoot)); - this.setValueColumnName(this.valueColumnName(astRoot)); - this.setPkColumnValue(this.pkColumnValue(astRoot)); - this.updateUniqueConstraintsFromJava(astRoot); - } - - protected String table(CompilationUnit astRoot) { - return this.tableAdapter.getValue(astRoot); - } - protected String catalog(CompilationUnit astRoot) { - return this.catalogAdapter.getValue(astRoot); - } - protected String schema(CompilationUnit astRoot) { - return this.schemaAdapter.getValue(astRoot); - } - protected String pkColumnName(CompilationUnit astRoot) { - return this.pkColumnNameAdapter.getValue(astRoot); - } - protected String valueColumnName(CompilationUnit astRoot) { - return this.valueColumnNameAdapter.getValue(astRoot); - } - protected String pkColumnValue(CompilationUnit astRoot) { - return this.pkColumnValueAdapter.getValue(astRoot); - } - - /** - * here we just worry about getting the unique constraints lists the same size; - * then we delegate to the unique constraints to synch themselves up - */ - private void updateUniqueConstraintsFromJava(CompilationUnit astRoot) { - ContainerAnnotationTools.updateNestedAnnotationsFromJava(astRoot, this.uniqueConstraintsContainerAnnotation); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildAdapter(String elementName) { - return buildAdapter(DECLARATION_ANNOTATION_ADAPTER, elementName); - } - - private static DeclarationAnnotationElementAdapter<Integer> buildIntegerAdapter(String elementName) { - return buildIntegerAdapter(DECLARATION_ANNOTATION_ADAPTER, elementName); - } - - - private class UniqueConstraintsContainerAnnotation extends AbstractJavaResourceNode - implements ContainerAnnotation<NestableUniqueConstraint> - { - public UniqueConstraintsContainerAnnotation() { - super(TableGeneratorImpl.this); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public NestableUniqueConstraint addInternal(int index) { - NestableUniqueConstraint uniqueConstraint = TableGeneratorImpl.this.createUniqueConstraint(index); - TableGeneratorImpl.this.uniqueConstraints.add(index, uniqueConstraint); - return uniqueConstraint; - } - - public NestableUniqueConstraint add(int index) { - NestableUniqueConstraint uniqueConstraint = TableGeneratorImpl.this.createUniqueConstraint(index); - TableGeneratorImpl.this.addUniqueConstraint(index, uniqueConstraint); - return uniqueConstraint; - } - - public String getAnnotationName() { - return TableGeneratorImpl.this.getAnnotationName(); - } - - public String getNestableAnnotationName() { - return JPA.UNIQUE_CONSTRAINT; - } - - public int indexOf(NestableUniqueConstraint uniqueConstraint) { - return TableGeneratorImpl.this.indexOfUniqueConstraint(uniqueConstraint); - } - - public void move(int targetIndex, int sourceIndex) { - TableGeneratorImpl.this.moveUniqueConstraint(targetIndex, sourceIndex); - } - - public void moveInternal(int targetIndex, int sourceIndex) { - TableGeneratorImpl.this.moveUniqueConstraintInternal(targetIndex, sourceIndex); - } - - public NestableUniqueConstraint nestedAnnotationAt(int index) { - return TableGeneratorImpl.this.uniqueConstraintAt(index); - } - - public NestableUniqueConstraint nestedAnnotationFor(org.eclipse.jdt.core.dom.Annotation jdtAnnotation) { - for (NestableUniqueConstraint uniqueConstraint : CollectionTools.iterable(nestedAnnotations())) { - if (jdtAnnotation == uniqueConstraint.getJdtAnnotation((CompilationUnit) jdtAnnotation.getRoot())) { - return uniqueConstraint; - } - } - return null; - } - - public ListIterator<NestableUniqueConstraint> nestedAnnotations() { - return new CloneListIterator<NestableUniqueConstraint>(TableGeneratorImpl.this.uniqueConstraints); - } - - public int nestedAnnotationsSize() { - return TableGeneratorImpl.this.uniqueConstraints.size(); - } - - public void remove(NestableUniqueConstraint uniqueConstraint) { - TableGeneratorImpl.this.removeUniqueConstraint(uniqueConstraint); - } - - public void remove(int index) { - this.remove(nestedAnnotationAt(index)); - } - - public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) { - return TableGeneratorImpl.this.getJdtAnnotation(astRoot); - } - - public void newAnnotation() { - TableGeneratorImpl.this.newAnnotation(); - } - - public void removeAnnotation() { - TableGeneratorImpl.this.removeAnnotation(); - } - - public void updateFromJava(CompilationUnit astRoot) { - TableGeneratorImpl.this.updateFromJava(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return TableGeneratorImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return "uniqueConstraints"; - } - } - - public static class TableGeneratorAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final TableGeneratorAnnotationDefinition INSTANCE = new TableGeneratorAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private TableGeneratorAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new TableGeneratorImpl(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableImpl.java deleted file mode 100644 index b7a7d57a5e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableImpl.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.resource.java.TableAnnotation; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class TableImpl extends AbstractResourceTable -{ - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> NAME_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.TABLE__NAME); - - private static final DeclarationAnnotationElementAdapter<String> SCHEMA_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.TABLE__SCHEMA); - - private static final DeclarationAnnotationElementAdapter<String> CATALOG_ADAPTER = ConversionDeclarationAnnotationElementAdapter.forStrings(DECLARATION_ANNOTATION_ADAPTER, JPA.TABLE__CATALOG); - - protected TableImpl(JavaResourceNode parent, Member member) { - super(parent, member, DECLARATION_ANNOTATION_ADAPTER, new MemberAnnotationAdapter(member, DECLARATION_ANNOTATION_ADAPTER)); - } - - public String getAnnotationName() { - return TableAnnotation.ANNOTATION_NAME; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> nameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return NAME_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> schemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return SCHEMA_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> catalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return CATALOG_ADAPTER; - } - - @Override - protected NestableUniqueConstraint createUniqueConstraint(int index) { - return UniqueConstraintImpl.createTableUniqueConstraint(this, this.getMember(), index); - } - - public static class TableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final TableAnnotationDefinition INSTANCE = new TableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private TableAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new TableImpl(parent, member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullTable(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TemporalImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TemporalImpl.java deleted file mode 100644 index 0796162e82..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TemporalImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.TemporalAnnotation; -import org.eclipse.jpt.core.resource.java.TemporalType; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class TemporalImpl extends AbstractResourceAnnotation<Attribute> implements TemporalAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); - - private final AnnotationElementAdapter<String> valueAdapter; - - private TemporalType value; - - protected TemporalImpl(JavaResourceNode parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, VALUE_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - this.value = this.value(astRoot); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public TemporalType getValue() { - return this.value; - } - - public void setValue(TemporalType newValue) { - if (attributeValueHasNotChanged(this.value, newValue)) { - return; - } - TemporalType oldValue = this.value; - this.value = newValue; - this.valueAdapter.setValue(TemporalType.toJavaAnnotationValue(newValue)); - firePropertyChanged(VALUE_PROPERTY, oldValue, newValue); - } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_ADAPTER, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.setValue(this.value(astRoot)); - } - - protected TemporalType value(CompilationUnit astRoot) { - return TemporalType.fromJavaAnnotationValue(this.valueAdapter.getValue(astRoot)); - } - - // ********** static methods ********** - private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { - return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, JPA.TEMPORAL__VALUE); - } - - public static class TemporalAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final TemporalAnnotationDefinition INSTANCE = new TemporalAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private TemporalAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new TemporalImpl(parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return new NullTemporal(parent); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TransientImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TransientImpl.java deleted file mode 100644 index 7a50681c8e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TransientImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.TransientAnnotation; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class TransientImpl extends AbstractResourceAnnotation<Attribute> implements TransientAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - protected TransientImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - public static class TransientAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final TransientAnnotationDefinition INSTANCE = new TransientAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static TransientAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private TransientAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new TransientImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/UniqueConstraintImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/UniqueConstraintImpl.java deleted file mode 100644 index fafa46e559..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/UniqueConstraintImpl.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.AnnotationStringArrayExpressionConverter; -import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitArrayAnnotationElementAdapter; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; -import org.eclipse.jpt.core.resource.java.NestableUniqueConstraint; -import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation; -import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter; -import org.eclipse.jpt.core.utility.jdt.ExpressionConverter; -import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; - -public class UniqueConstraintImpl extends AbstractResourceAnnotation<Member> implements NestableUniqueConstraint -{ - - public static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(JPA.UNIQUE_CONSTRAINT); - - private final DeclarationAnnotationElementAdapter<String[]> columnNamesDeclarationAdapter; - - private final AnnotationElementAdapter<String[]> columnNamesAdapter; - - private final List<String> columnNames; - - - public UniqueConstraintImpl(JavaResourceNode parent, Member member, IndexedDeclarationAnnotationAdapter idaa) { - super(parent, member, idaa, new MemberIndexedAnnotationAdapter(member, idaa)); - this.columnNamesDeclarationAdapter = buildArrayAnnotationElementAdapter(idaa, JPA.UNIQUE_CONSTRAINT__COLUMN_NAMES); - this.columnNamesAdapter = this.buildAnnotationElementAdapter(this.columnNamesDeclarationAdapter); - this.columnNames = new ArrayList<String>(); - } - - public void initialize(CompilationUnit astRoot) { - String[] javaColumnNames = this.columnNamesAdapter.getValue(astRoot); - for (int i = 0; i < javaColumnNames.length; i++) { - this.columnNames.add(javaColumnNames[i]); - } - } - - protected AnnotationElementAdapter<String[]> buildAnnotationElementAdapter(DeclarationAnnotationElementAdapter<String[]> daea) { - return new ShortCircuitArrayAnnotationElementAdapter<String>(getMember(), daea); - } - - protected static DeclarationAnnotationElementAdapter<String[]> buildArrayAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName) { - return buildArrayAnnotationElementAdapter(annotationAdapter, elementName, AnnotationStringArrayExpressionConverter.forStrings()); - } - - protected static DeclarationAnnotationElementAdapter<String[]> buildArrayAnnotationElementAdapter(DeclarationAnnotationAdapter annotationAdapter, String elementName, ExpressionConverter<String[]> converter) { - return new ConversionDeclarationAnnotationElementAdapter<String[]>(annotationAdapter, elementName, false, converter); - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - @Override - public IndexedAnnotationAdapter getAnnotationAdapter() { - return (IndexedAnnotationAdapter) super.getAnnotationAdapter(); - } - - public void initializeFrom(NestableAnnotation oldAnnotation) { - UniqueConstraintAnnotation oldUniqueConstraint = (UniqueConstraintAnnotation) oldAnnotation; - for (String columnName : CollectionTools.iterable(oldUniqueConstraint.columnNames())) { - addColumnName(columnNamesSize(), columnName); - } - } - - public ListIterator<String> columnNames() { - return new CloneListIterator<String>(this.columnNames); - } - - public int columnNamesSize() { - return this.columnNames.size(); - } - - public void addColumnName(String columnName) { - addColumnName(columnNamesSize(), columnName); - } - - public void addColumnName(int index, String columnName) { - addColumnName_(index, columnName); - this.columnNamesAdapter.setValue(this.columnNames.toArray(new String[this.columnNames.size()])); - } - - protected void addColumnName_(int index, String columnName) { - addItemToList(index, columnName, this.columnNames, COLUMN_NAMES_LIST); - } - - public void removeColumnName(String columnName) { - removeItemFromList(columnName, this.columnNames, COLUMN_NAMES_LIST); - this.columnNamesAdapter.setValue(this.columnNames.toArray(new String[this.columnNames.size()])); - } - - public void removeColumnName(int index) { - removeItemFromList(index, this.columnNames, COLUMN_NAMES_LIST); - this.columnNamesAdapter.setValue(this.columnNames.toArray(new String[this.columnNames.size()])); - } - - public void moveColumnName(int targetIndex, int sourceIndex) { - moveItemInList(targetIndex, sourceIndex, this.columnNames, COLUMN_NAMES_LIST); - this.columnNamesAdapter.setValue(this.columnNames.toArray(new String[this.columnNames.size()])); - } - - public boolean columnNamesTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(this.columnNamesDeclarationAdapter, pos, astRoot); - } - - public void updateFromJava(CompilationUnit astRoot) { - this.updateColumnNamesFromJava(astRoot); - } - - protected void updateColumnNamesFromJava(CompilationUnit astRoot) { - String[] javaColumnNames = this.columnNamesAdapter.getValue(astRoot); - //TODO hmm, seems we need change notification for this - CollectionTools.retainAll(this.columnNames, javaColumnNames); - for (int i = 0; i < javaColumnNames.length; i++) { - String columnName = javaColumnNames[i]; - if (!this.columnNames.contains(columnName)) { - addColumnName_(columnNamesSize(), columnName); - } - } - } - - // ********** persistence model -> java annotations ********** - public void moveAnnotation(int newIndex) { - getAnnotationAdapter().moveAnnotation(newIndex); - } - - // ********** static methods ********** - static NestableUniqueConstraint createSecondaryTableUniqueConstraint(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter declarationAnnotationAdapter, int index) { - return new UniqueConstraintImpl(parent, member, buildSecondaryTableUniqueConstraintAnnotationAdapter(declarationAnnotationAdapter, index)); - } - - private static IndexedDeclarationAnnotationAdapter buildSecondaryTableUniqueConstraintAnnotationAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter, int index) { - return new NestedIndexedDeclarationAnnotationAdapter(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__UNIQUE_CONSTRAINTS, index, JPA.UNIQUE_CONSTRAINT); - } - - static NestableUniqueConstraint createJoinTableUniqueConstraint(JavaResourceNode parent, Member member, int index) { - return new UniqueConstraintImpl(parent, member, buildJoinTableUniqueConstraintAnnotationAdapter(index)); - } - - private static IndexedDeclarationAnnotationAdapter buildJoinTableUniqueConstraintAnnotationAdapter(int index) { - return new NestedIndexedDeclarationAnnotationAdapter(JoinTableImpl.DECLARATION_ANNOTATION_ADAPTER, JPA.JOIN_TABLE__UNIQUE_CONSTRAINTS, index, JPA.UNIQUE_CONSTRAINT); - } - - static NestableUniqueConstraint createTableUniqueConstraint(JavaResourceNode parent, Member member, int index) { - return new UniqueConstraintImpl(parent, member, buildTableUniqueConstraintAnnotationAdapter(index)); - } - - private static IndexedDeclarationAnnotationAdapter buildTableUniqueConstraintAnnotationAdapter(int index) { - return new NestedIndexedDeclarationAnnotationAdapter(TableImpl.DECLARATION_ANNOTATION_ADAPTER, JPA.TABLE__UNIQUE_CONSTRAINTS, index, JPA.UNIQUE_CONSTRAINT); - } - - static NestableUniqueConstraint createTableGeneratorUniqueConstraint(JavaResourceNode parent, Member member, int index) { - return new UniqueConstraintImpl(parent, member, buildTableGeneratorUniqueConstraintAnnotationAdapter(index)); - } - - private static IndexedDeclarationAnnotationAdapter buildTableGeneratorUniqueConstraintAnnotationAdapter(int index) { - return new NestedIndexedDeclarationAnnotationAdapter(TableGeneratorImpl.DECLARATION_ANNOTATION_ADAPTER, JPA.TABLE_GENERATOR__UNIQUE_CONSTRAINTS, index, JPA.UNIQUE_CONSTRAINT); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/VersionImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/VersionImpl.java deleted file mode 100644 index 97ce0278aa..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/VersionImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.resource.java; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; -import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AnnotationDefinition; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.VersionAnnotation; -import org.eclipse.jpt.core.utility.jdt.Attribute; -import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter; -import org.eclipse.jpt.core.utility.jdt.Member; - -public class VersionImpl extends AbstractResourceAnnotation<Attribute> implements VersionAnnotation -{ - private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME); - - public VersionImpl(JavaResourcePersistentAttribute parent, Attribute attribute) { - super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER); - } - - public void initialize(CompilationUnit astRoot) { - //nothing to initialize - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - - public void updateFromJava(CompilationUnit astRoot) { - //no annotation members - } - - public static class VersionAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final VersionAnnotationDefinition INSTANCE = new VersionAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static VersionAnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure non-instantiability. - */ - private VersionAnnotationDefinition() { - super(); - } - - public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new VersionImpl((JavaResourcePersistentAttribute) parent, (Attribute) member); - } - - public Annotation buildNullAnnotation(JavaResourcePersistentMember parent, Member member) { - return null; - } - - public String getAnnotationName() { - return ANNOTATION_NAME; - } - } - -} |