diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java')
77 files changed, 0 insertions, 13020 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 506c3b075a..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourceNode.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.core.resources.IFile; -import org.eclipse.jpt.core.JpaAnnotationProvider; -import org.eclipse.jpt.core.resource.java.JavaResourceNode; -import org.eclipse.jpt.core.resource.java.JpaCompilationUnit; -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"); //$NON-NLS-1$ - } - } else { - if (this.forbidsParent()) { - throw new IllegalArgumentException("'parent' must be null"); //$NON-NLS-1$ - } - } - } - - 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 IFile getFile() { - return (IFile) this.getJpaCompilationUnit().getCompilationUnit().getResource(); - } - - - // ********** CallbackChangeSupport.Source implementation ********** - - public void aspectChanged(String aspectName) { - this.getJpaCompilationUnit().resourceModelChanged(); - } - - - // ********** convenience methods ********** - - protected JavaResourceNode getParent() { - return this.parent; - } - - protected JpaAnnotationProvider getAnnotationProvider() { - return this.getJpaCompilationUnit().getAnnotationProvider(); - } - -} 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 84d740dee6..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractJavaResourcePersistentMember.java +++ /dev/null @@ -1,639 +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.HashSet; -import java.util.Iterator; -import java.util.ListIterator; -import java.util.Set; -import java.util.Vector; - -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; - - /** - * mapping annotations; no duplicates (java compiler has an error for - * duplicates) - */ - private final Vector<Annotation> mappingAnnotations; - - /** - * supporting annotations; no duplicates (java compiler has an error for - * duplicates) - */ - private final Vector<Annotation> supportingAnnotations; - - private boolean persistable; - - // ********** construction/initialization ********** - - protected AbstractJavaResourcePersistentMember(JavaResourceNode parent, E member) { - super(parent); - this.member = member; - this.supportingAnnotations = new Vector<Annotation>(); - this.mappingAnnotations = new Vector<Annotation>(); - } - - public void initialize(CompilationUnit astRoot) { - this.getMember().getBodyDeclaration(astRoot).accept(this.buildInitialAnnotationVisitor(astRoot)); - this.persistable = this.buildPersistable(astRoot); - } - - protected ASTVisitor buildInitialAnnotationVisitor(CompilationUnit astRoot) { - return new InitialAnnotationVisitor(astRoot, this.getMember().getBodyDeclaration(astRoot)); - } - - protected void addInitialAnnotation(org.eclipse.jdt.core.dom.Annotation node, CompilationUnit astRoot) { - String jdtAnnotationName = JDTTools.resolveAnnotation(node); - if (jdtAnnotationName == null) { - return; - } - if (this.supportingAnnotationIsValid(jdtAnnotationName)) { - if (this.getSupportingAnnotation(jdtAnnotationName) == null) { // ignore duplicates - Annotation annotation = this.buildSupportingAnnotation(jdtAnnotationName); - annotation.initialize(astRoot); - this.supportingAnnotations.add(annotation); - } - } else if (this.mappingAnnotationIsValid(jdtAnnotationName)) { - if (this.getMappingAnnotation(jdtAnnotationName) == null) { // ignore duplicates - Annotation annotation = this.buildMappingAnnotation(jdtAnnotationName); - annotation.initialize(astRoot); - this.mappingAnnotations.add(annotation); - } - } - } - - // ********** mapping annotations ********** - - public Iterator<Annotation> mappingAnnotations() { - return new CloneIterator<Annotation>(this.mappingAnnotations); - } - - public int mappingAnnotationsSize() { - return this.mappingAnnotations.size(); - } - - // 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() { - synchronized (this.mappingAnnotations) { - return this.getMappingAnnotation_(); - } - } - - protected Annotation getMappingAnnotation_() { - for (ListIterator<String> stream = this.validMappingAnnotationNames(); stream.hasNext();) { - Annotation annotation = this.getMappingAnnotation(stream.next()); - if (annotation != null) { - return annotation; - } - } - return null; - } - - public Annotation getMappingAnnotation(String annotationName) { - return getAnnotation(this.mappingAnnotations(), annotationName); - } - - /** - * Remove all other *mapping* annotations that exist; not just the one - * returned by #getMappingAnnotation(). #getMappingAnnotation() returns the - * first mapping annotation found in the source. If there were multiple - * mapping annotations (which is a validation error) then calling this - * method would not work because the new mapping annotation would be added - * to the end of the list of annotations. - */ - public void setMappingAnnotation(String annotationName) { - synchronized (this.mappingAnnotations) { - this.setMappingAnnotation_(annotationName); - } - // hold change notification until the end so a project update does not - // occur - // before we are finished removing the old mapping(s) and adding the new - // mapping; - // just fire "collection changed" since one or more removes and/or one - // add occurred; - this.fireCollectionChanged(MAPPING_ANNOTATIONS_COLLECTION); - } - - protected void setMappingAnnotation_(String annotationName) { - if (annotationName == null) { - this.removeMappingAnnotations_(); - return; - } - - if (this.getMappingAnnotation(annotationName) != null) { - throw new IllegalStateException("duplicate mapping annotation: " + annotationName); //$NON-NLS-1$ - } - - this.removeMappingAnnotations_(); - Annotation newMapping = this.buildMappingAnnotation(annotationName); - this.mappingAnnotations.add(newMapping); - newMapping.newAnnotation(); - } - - /** - * Remove all mapping annotations that already exist. No change notification - * is fired. - */ - protected void removeMappingAnnotations() { - synchronized (this.mappingAnnotations) { - this.removeMappingAnnotations_(); - } - } - - protected void removeMappingAnnotations_() { - for (ListIterator<String> stream = this.validMappingAnnotationNames(); stream.hasNext();) { - Annotation mappingAnnotation = this.getMappingAnnotation(stream.next()); - if (mappingAnnotation != null) { - this.mappingAnnotations.remove(mappingAnnotation); - mappingAnnotation.removeAnnotation(); - } - } - } - - public JavaResourceNode getNullMappingAnnotation(String annotationName) { - return this.buildNullMappingAnnotation(annotationName); - } - - protected abstract Annotation buildNullMappingAnnotation(String annotationName); - - protected boolean mappingAnnotationIsValid(String annotationName) { - return CollectionTools.contains(this.validMappingAnnotationNames(), annotationName); - } - - protected abstract ListIterator<String> validMappingAnnotationNames(); - - protected abstract Annotation buildMappingAnnotation(String mappingAnnotationName); - - protected void addMappingAnnotation(Annotation annotation) { - this.addItemToCollection(annotation, this.mappingAnnotations, MAPPING_ANNOTATIONS_COLLECTION); - } - - protected void removeMappingAnnotation(Annotation annotation) { - this.removeMappingAnnotation_(annotation); - annotation.removeAnnotation(); - } - - protected void removeMappingAnnotation_(Annotation annotation) { - this.removeItemFromCollection(annotation, this.mappingAnnotations, MAPPING_ANNOTATIONS_COLLECTION); - } - - // ********** supporting annotations ********** - - public Iterator<Annotation> supportingAnnotations() { - return new CloneIterator<Annotation>(this.supportingAnnotations); - } - - public int supportingAnnotationsSize() { - return this.supportingAnnotations.size(); - } - - public ListIterator<NestableAnnotation> supportingAnnotations(String nestableAnnotationName, String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = this.getSupportingContainerAnnotation(containerAnnotationName); - if (containerAnnotation != null) { - return containerAnnotation.nestedAnnotations(); - } - NestableAnnotation nestableAnnotation = this.getSupportingNestableAnnotation(nestableAnnotationName); - return (nestableAnnotation == null) ? EmptyListIterator.<NestableAnnotation> instance() : new SingleElementListIterator<NestableAnnotation>(nestableAnnotation); - } - - protected NestableAnnotation getSupportingNestableAnnotation(String annotationName) { - return (NestableAnnotation) this.getSupportingAnnotation(annotationName); - } - - public Annotation getSupportingAnnotation(String annotationName) { - return getAnnotation(this.supportingAnnotations(), annotationName); - } - - public JavaResourceNode getNonNullSupportingAnnotation(String annotationName) { - Annotation annotation = this.getSupportingAnnotation(annotationName); - return (annotation != null) ? annotation : this.buildNullSupportingAnnotation(annotationName); - } - - protected abstract Annotation buildNullSupportingAnnotation(String annotationName); - - public Annotation addSupportingAnnotation(String annotationName) { - Annotation annotation = this.buildSupportingAnnotation(annotationName); - this.supportingAnnotations.add(annotation); - annotation.newAnnotation(); - this.fireItemAdded(SUPPORTING_ANNOTATIONS_COLLECTION, annotation); - return annotation; - } - - protected abstract Annotation buildSupportingAnnotation(String annotationName); - - protected void addSupportingAnnotation(Annotation annotation) { - this.addItemToCollection(annotation, this.supportingAnnotations, SUPPORTING_ANNOTATIONS_COLLECTION); - } - - public void removeSupportingAnnotation(String annotationName) { - synchronized (this.supportingAnnotations) { - this.removeSupportingAnnotation_(annotationName); - } - } - - protected void removeSupportingAnnotation_(String annotationName) { - Annotation annotation = this.getSupportingAnnotation(annotationName); - if (annotation != null) { - this.removeSupportingAnnotation(annotation); - } - } - - protected void removeSupportingAnnotation(Annotation annotation) { - this.removeSupportingAnnotation_(annotation); - // TODO looks odd that we remove the annotation here, but in - // addAnnotation(Annotation) we don't do the same - annotation.removeAnnotation(); - } - - protected void removeSupportingAnnotation_(Annotation annotation) { - this.removeItemFromCollection(annotation, this.supportingAnnotations, SUPPORTING_ANNOTATIONS_COLLECTION); - } - - public NestableAnnotation addSupportingAnnotation(int index, String nestableAnnotationName, String containerAnnotationName) { - synchronized (this.supportingAnnotations) { - return this.addSupportingAnnotation_(index, nestableAnnotationName, containerAnnotationName); - } - } - - // TODO it seems we should be firing one change notification here, that a - // new nestable annotation was added. - protected NestableAnnotation addSupportingAnnotation_(int index, String nestableAnnotationName, String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = this.getSupportingContainerAnnotation(containerAnnotationName); - if (containerAnnotation != null) { - // ignore any nestable annotation and just add to the container - // annotation - NestableAnnotation newNestedAnnotation = ContainerAnnotationTools.addNestedAnnotation(index, containerAnnotation); - // TODO any event notification being fired for the add??? - return newNestedAnnotation; - } - - NestableAnnotation nestedAnnotation = this.getSupportingNestableAnnotation(nestableAnnotationName); - if (nestedAnnotation == null) { - // add the nestable annotation since neither the nestable nor the - // container exist - return this.addSupportingNestableAnnotation(nestableAnnotationName); - } - - // move the existing nestable annotation to a new container annotation - // and add a new one - ContainerAnnotation<NestableAnnotation> newContainerAnnotation = this.addSupportingContainerAnnotationTwoNestableAnnotations(containerAnnotationName); - if (index == 0) { - newContainerAnnotation.nestedAnnotationAt(1).initializeFrom(nestedAnnotation); - } else { - newContainerAnnotation.nestedAnnotationAt(0).initializeFrom(nestedAnnotation); - } - this.removeSupportingAnnotation(nestedAnnotation); - return newContainerAnnotation.nestedAnnotationAt(index); - } - - @SuppressWarnings("unchecked") - protected ContainerAnnotation<NestableAnnotation> getSupportingContainerAnnotation(String annotationName) { - return (ContainerAnnotation<NestableAnnotation>) this.getSupportingAnnotation(annotationName); - } - - protected NestableAnnotation addSupportingNestableAnnotation(String annotationName) { - return (NestableAnnotation) this.addSupportingAnnotation(annotationName); - } - - protected ContainerAnnotation<NestableAnnotation> addSupportingContainerAnnotationTwoNestableAnnotations(String annotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = this.buildContainerAnnotation(annotationName); - this.supportingAnnotations.add(containerAnnotation); - containerAnnotation.newAnnotation(); - containerAnnotation.addInternal(0).newAnnotation(); - containerAnnotation.addInternal(1).newAnnotation(); - return containerAnnotation; - } - - @SuppressWarnings("unchecked") - protected ContainerAnnotation<NestableAnnotation> buildContainerAnnotation(String annotationName) { - return (ContainerAnnotation<NestableAnnotation>) this.buildSupportingAnnotation(annotationName); - } - - protected boolean supportingAnnotationIsValid(String annotationName) { - return CollectionTools.contains(this.validSupportingAnnotationNames(), annotationName); - } - - protected abstract ListIterator<String> validSupportingAnnotationNames(); - - public void removeSupportingAnnotation(int index, String nestableAnnotationName, String containerAnnotationName) { - synchronized (this.supportingAnnotations) { - this.removeSupportingAnnotation_(index, nestableAnnotationName, containerAnnotationName); - } - } - - protected void removeSupportingAnnotation_(int index, String nestableAnnotationName, String containerAnnotationName) { - ContainerAnnotation<NestableAnnotation> containerAnnotation = this.getSupportingContainerAnnotation(containerAnnotationName); - if (containerAnnotation == null) { - Annotation annotation = this.getSupportingAnnotation(nestableAnnotationName); - this.removeSupportingAnnotation(annotation); - } else { - this.removeSupportingAnnotation(index, containerAnnotation); - } - } - - protected void removeSupportingAnnotation(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) { - this.removeSupportingAnnotation(containerAnnotation); - } else if (containerAnnotation.nestedAnnotationsSize() == 1) { - NestableAnnotation nestedAnnotation = containerAnnotation.nestedAnnotationAt(0); - - this.supportingAnnotations.remove(containerAnnotation); - containerAnnotation.removeAnnotation(); - - NestableAnnotation newAnnotation = (NestableAnnotation) this.buildSupportingAnnotation(containerAnnotation.getNestableAnnotationName()); - this.supportingAnnotations.add(newAnnotation); - newAnnotation.newAnnotation(); - - newAnnotation.initializeFrom(nestedAnnotation); - - this.fireItemAdded(SUPPORTING_ANNOTATIONS_COLLECTION, newAnnotation); - this.fireItemRemoved(SUPPORTING_ANNOTATIONS_COLLECTION, containerAnnotation); - } - } - - public void moveSupportingAnnotation(int targetIndex, int sourceIndex, String containerAnnotationName) { - this.moveAnnotation(targetIndex, sourceIndex, this.getSupportingContainerAnnotation(containerAnnotationName)); - } - - protected void moveAnnotation(int targetIndex, int sourceIndex, ContainerAnnotation<NestableAnnotation> containerAnnotation) { - containerAnnotation.move(targetIndex, sourceIndex); - ContainerAnnotationTools.synchAnnotationsAfterMove(targetIndex, sourceIndex, containerAnnotation); - } - - // ********** simple state ********** - - public boolean isPersistable() { - return this.persistable; - } - - protected void setPersistable(boolean persistable) { - boolean old = this.persistable; - this.persistable = persistable; - this.firePropertyChanged(PERSISTABLE_PROPERTY, old, persistable); - } - - protected boolean buildPersistable(CompilationUnit astRoot) { - return this.getMember().isPersistable(astRoot); - } - - public boolean isPersisted() { - return this.getMappingAnnotation() != null; - } - - public boolean isFor(String memberName, int occurrence) { - return this.member.matches(memberName, occurrence); - } - - public boolean isFor(MethodSignature methodSignature, int occurrence) { - return false; - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return this.fullTextRange(astRoot); - } - - protected TextRange fullTextRange(CompilationUnit astRoot) { - return getTextRange(this.getMember().getBodyDeclaration(astRoot)); - } - - public TextRange getNameTextRange(CompilationUnit astRoot) { - return this.getMember().getNameTextRange(astRoot); - } - - // ********** update ********** - - public void update(CompilationUnit astRoot) { - this.updateAnnotations(astRoot); - this.setPersistable(this.buildPersistable(astRoot)); - } - - protected void updateAnnotations(CompilationUnit astRoot) { - synchronized (this.mappingAnnotations) { - synchronized (this.supportingAnnotations) { - this.updateAnnotations_(astRoot); - } - } - } - - protected void updateAnnotations_(CompilationUnit astRoot) { - HashSet<Annotation> mappingAnnotationsToRemove = new HashSet<Annotation>(this.mappingAnnotations); - HashSet<Annotation> supportingAnnotationsToRemove = new HashSet<Annotation>(this.supportingAnnotations); - - this.getMember().getBodyDeclaration(astRoot).accept(this.buildUpdateAnnotationVisitor(astRoot, mappingAnnotationsToRemove, supportingAnnotationsToRemove)); - - for (Annotation annotation : mappingAnnotationsToRemove) { - this.removeMappingAnnotation_(annotation); - } - for (Annotation annotation : supportingAnnotationsToRemove) { - this.removeSupportingAnnotation_(annotation); - } - } - - protected ASTVisitor buildUpdateAnnotationVisitor(CompilationUnit astRoot, Set<Annotation> mappingAnnotationsToRemove, Set<Annotation> supportingAnnotationsToRemove) { - return new UpdateAnnotationVisitor(astRoot, this.getMember().getBodyDeclaration(astRoot), mappingAnnotationsToRemove, supportingAnnotationsToRemove); - } - - protected void addOrUpdateAnnotation(org.eclipse.jdt.core.dom.Annotation node, CompilationUnit astRoot, Set<Annotation> mappingAnnotationsToRemove, Set<Annotation> supportingAnnotationsToRemove) { - String jdtAnnotationName = JDTTools.resolveAnnotation(node); - if (jdtAnnotationName == null) { - return; - } - if (this.supportingAnnotationIsValid(jdtAnnotationName)) { - this.addOrUpdateSupportingAnnotation(jdtAnnotationName, astRoot, supportingAnnotationsToRemove); - return; - } - if (this.mappingAnnotationIsValid(jdtAnnotationName)) { - this.addOrUpdateMappingAnnotation(jdtAnnotationName, astRoot, mappingAnnotationsToRemove); - return; - } - } - - protected void addOrUpdateSupportingAnnotation(String jdtAnnotationName, CompilationUnit astRoot, Set<Annotation> supportingAnnotationsToRemove) { - Annotation annotation = getAnnotation(supportingAnnotationsToRemove, jdtAnnotationName); - if (annotation != null) { - annotation.update(astRoot); - supportingAnnotationsToRemove.remove(annotation); - } else { - annotation = this.buildSupportingAnnotation(jdtAnnotationName); - annotation.initialize(astRoot); - this.addSupportingAnnotation(annotation); - } - } - - protected void addOrUpdateMappingAnnotation(String jdtAnnotationName, CompilationUnit astRoot, Set<Annotation> mappingAnnotationsToRemove) { - Annotation annotation = getAnnotation(mappingAnnotationsToRemove, jdtAnnotationName); - if (annotation != null) { - annotation.update(astRoot); - mappingAnnotationsToRemove.remove(annotation); - } else { - annotation = this.buildMappingAnnotation(jdtAnnotationName); - annotation.initialize(astRoot); - this.addMappingAnnotation(annotation); - } - } - - // ********** miscellaneous ********** - - public void resolveTypes(CompilationUnit astRoot) { - this.setPersistable(this.buildPersistable(astRoot)); - } - - protected E getMember() { - return this.member; - } - - protected static Annotation getAnnotation(Iterable<Annotation> annotations, String annotationName) { - return getAnnotation(annotations.iterator(), annotationName); - } - - protected static Annotation getAnnotation(Iterator<Annotation> annotations, String annotationName) { - while (annotations.hasNext()) { - Annotation annotation = annotations.next(); - if (annotation.getAnnotationName().equals(annotationName)) { - return annotation; - } - } - return null; - } - - protected static TextRange getTextRange(ASTNode astNode) { - return (astNode == null) ? null : new ASTNodeTextRange(astNode); - } - - protected static <T extends JavaResourcePersistentMember> Iterator<T> persistableMembers(Iterator<T> members) { - return new FilteringIterator<T, T>(members) { - @Override - protected boolean accept(T member) { - return member.isPersistable(); - } - }; - } - - // ********** AST visitor ********** - - /** - * annotation visitor - */ - protected static abstract class AnnotationVisitor extends ASTVisitor { - private final CompilationUnit astRoot; - private final BodyDeclaration bodyDeclaration; - - protected AnnotationVisitor(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 CompilationUnit getASTRoot() { - return this.astRoot; - } - - protected abstract void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node); - - } - - /** - * initial annotation visitor - */ - protected class InitialAnnotationVisitor extends AnnotationVisitor { - - protected InitialAnnotationVisitor(CompilationUnit astRoot, BodyDeclaration bodyDeclaration) { - super(astRoot, bodyDeclaration); - } - - @Override - protected void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - AbstractJavaResourcePersistentMember.this.addInitialAnnotation(node, this.getASTRoot()); - } - - } - - /** - * update annotation visitor - */ - protected class UpdateAnnotationVisitor extends AnnotationVisitor { - protected final Set<Annotation> mappingAnnotationsToRemove; - protected final Set<Annotation> supportingAnnotationsToRemove; - - protected UpdateAnnotationVisitor(CompilationUnit astRoot, BodyDeclaration bodyDeclaration, Set<Annotation> mappingAnnotationsToRemove, Set<Annotation> supportingAnnotationsToRemove) { - super(astRoot, bodyDeclaration); - this.mappingAnnotationsToRemove = mappingAnnotationsToRemove; - this.supportingAnnotationsToRemove = supportingAnnotationsToRemove; - } - - @Override - protected void visitChildAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - AbstractJavaResourcePersistentMember.this.addOrUpdateAnnotation(node, this.getASTRoot(), this.mappingAnnotationsToRemove, this.supportingAnnotationsToRemove); - } - - } - -} 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 600f8cb289..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedColumn.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.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.getNameElementName()); - this.nameAdapter = this.buildShortCircuitElementAdapter(this.nameDeclarationAdapter); - this.columnDefinitionDeclarationAdapter = this.buildStringElementAdapter(this.getColumnDefinitionElementName()); - 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 getNameElementName(); - - protected abstract String getColumnDefinitionElementName(); - - 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 update(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); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - -} 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 41a8ded84a..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractNamedQuery.java +++ /dev/null @@ -1,324 +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; - - protected 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, getNameElementName()); - } - - protected DeclarationAnnotationElementAdapter<String> queryAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, getQueryElementName()); - } - - protected abstract String getNameElementName(); - - protected abstract String getQueryElementName(); - - /** - * Return the uniqueConstraints element name - */ - protected abstract String getHintsElementName(); - - 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; - } - - protected 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); - } - - protected 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 update(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); - } - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - - 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 update(CompilationUnit astRoot) { - AbstractNamedQuery.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AbstractNamedQuery.this.getTextRange(astRoot); - } - - public String getElementName() { - return "hints"; - } - - @Override - public void toString(StringBuilder sb) { - AbstractNamedQuery.this.toString(sb); - } - - } -} 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 f7a7c6f3df..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 = getTargetEntityAdapter(); - this.targetEntityAdapter = buildAnnotationElementAdapter(this.targetEntityDeclarationAdapter); - this.fetchDeclarationAdapter = getFetchAdapter(); - this.fetchAdapter = buildAnnotationElementAdapter(this.fetchDeclarationAdapter); - this.cascadeDeclarationAdapter = getCascadeAdapter(); - 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> getTargetEntityAdapter(); - - /** - * return the Java adapter's 'cascade' element adapter config - */ - protected abstract DeclarationAnnotationElementAdapter<String[]> getCascadeAdapter(); - - /** - * return the Java adapter's 'fetch' element adapter config - */ - protected abstract DeclarationAnnotationElementAdapter<String> getFetchAdapter(); - - 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 update(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 acf1790ccc..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceAnnotation.java +++ /dev/null @@ -1,138 +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); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getAnnotationName()); - } - -} 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 eedd6f999c..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AbstractResourceTable.java +++ /dev/null @@ -1,353 +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; - - 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.getNameAdapter(daa); - this.schemaDeclarationAdapter = this.getSchemaAdapter(daa); - this.catalogDeclarationAdapter = this.getCatalogAdapter(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> getNameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - /** - * Build and return a declaration element adapter for the table's 'schema' element - */ - protected abstract DeclarationAnnotationElementAdapter<String> getSchemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - /** - * Build and return a declaration element adapter for the table's 'catalog' element - */ - protected abstract DeclarationAnnotationElementAdapter<String> getCatalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter); - - /** - * Return the uniqueConstraints element name - */ - protected abstract String getUniqueConstraintsElementName(); - - 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; - } - - protected 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); - } - - 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); - } - - 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 update(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); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - - 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 update(CompilationUnit astRoot) { - AbstractResourceTable.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AbstractResourceTable.this.getTextRange(astRoot); - } - - public String getElementName() { - return AbstractResourceTable.this.getUniqueConstraintsElementName(); - } - - @Override - public void toString(StringBuilder sb) { - AbstractResourceTable.this.toString(sb); - } - - } -} 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 6fe77cebf0..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverrideImpl.java +++ /dev/null @@ -1,290 +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); - - protected 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; - } - - protected 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); - } - - protected 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 update(CompilationUnit astRoot) { - super.update(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 update(CompilationUnit astRoot) { - AssociationOverrideImpl.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return AssociationOverrideImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return JPA.ASSOCIATION_OVERRIDE__JOIN_COLUMNS; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getAnnotationName()); - } - - } - - public static class AssociationOverrideAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final AssociationOverrideAnnotationDefinition INSTANCE = new AssociationOverrideAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 1b49bbc9d3..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AssociationOverridesImpl.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.AssociationOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.AssociationOverridesAnnotation; -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.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 JPA.ASSOCIATION_OVERRIDES__VALUE; - } - - public void update(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 single instance. - */ - 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 46a4a4036f..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 update(CompilationUnit astRoot) { - super.update(astRoot); - if (this.columnAdapter.getAnnotation(astRoot) == null) { - this.setColumn(null); - } - else { - if (getColumn() != null) { - getColumn().update(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 single instance. - */ - 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 a92da07cb1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/AttributeOverridesImpl.java +++ /dev/null @@ -1,154 +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.JPA; -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 JPA.ATTRIBUTE_OVERRIDES__VALUE; - } - - public void update(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 single instance. - */ - 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 f0ad392c0d..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.getTableElementName()); - this.tableAdapter = this.buildShortCircuitElementAdapter(this.tableDeclarationAdapter); - this.uniqueDeclarationAdapter = this.buildBooleanElementAdapter(this.getUniqueElementName()); - this.uniqueAdapter = this.buildShortCircuitBooleanElementAdapter(this.uniqueDeclarationAdapter); - this.nullableDeclarationAdapter = this.buildBooleanElementAdapter(this.getNullableElementName()); - this.nullableAdapter = this.buildShortCircuitBooleanElementAdapter(this.nullableDeclarationAdapter); - this.insertableDeclarationAdapter = this.buildBooleanElementAdapter(this.getInsertableElementName()); - this.insertableAdapter = this.buildShortCircuitBooleanElementAdapter(this.insertableDeclarationAdapter); - this.updatableDeclarationAdapter = this.buildBooleanElementAdapter(this.getUpdatableElementName()); - 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 getTableElementName(); - - protected abstract String getUniqueElementName(); - - protected abstract String getNullableElementName(); - - protected abstract String getInsertableElementName(); - - protected abstract String getUpdatableElementName(); - - @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 update(CompilationUnit astRoot) { - super.update(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 4dd4337b0f..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 update(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 single instance. - */ - 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 f275b53e33..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; - - public 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 getNameElementName() { - return JPA.COLUMN__NAME; - } - - @Override - protected String getColumnDefinitionElementName() { - return JPA.COLUMN__COLUMN_DEFINITION; - } - - @Override - protected String getTableElementName() { - return JPA.COLUMN__TABLE; - } - - @Override - protected String getUniqueElementName() { - return JPA.COLUMN__UNIQUE; - } - - @Override - protected String getNullableElementName() { - return JPA.COLUMN__NULLABLE; - } - - @Override - protected String getInsertableElementName() { - return JPA.COLUMN__INSERTABLE; - } - - @Override - protected String getUpdatableElementName() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 4d9dff0812..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/ContainerAnnotationTools.java +++ /dev/null @@ -1,214 +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.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(buildInitialAnnotationVisitor(astRoot, containerAnnotation)); - } - - private static ASTVisitor buildInitialAnnotationVisitor(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - return new InitialAnnotationVisitor(astRoot, containerAnnotation); - } - - public static void updateNestedAnnotationsFromJava(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> 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(buildUpdateAnnotationVisitor(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); - } - } - } - - private static ASTVisitor buildUpdateAnnotationVisitor(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - return new UpdateAnnotationVisitor(astRoot, containerAnnotation); - } - - private ContainerAnnotationTools() { - super(); - throw new UnsupportedOperationException(); - } - - - // ********** annotation visitor ********** - - /** - * Only visit the member value pair for the container annotation's element name. - */ - private abstract static class AnnotationVisitor extends ASTVisitor { - protected final CompilationUnit astRoot; - protected final ContainerAnnotation<? extends NestableAnnotation> containerAnnotation; - - AnnotationVisitor(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - this.astRoot = astRoot; - this.containerAnnotation = containerAnnotation; - } - - @Override - public boolean visit(MemberValuePair node) { - return node.getName().getFullyQualifiedName().equals(this.containerAnnotation.getElementName()); - } - - @Override - public boolean visit(SingleMemberAnnotation node) { - return this.visit_(node); - } - - @Override - public boolean visit(NormalAnnotation node) { - return this.visit_(node); - } - - @Override - public boolean visit(MarkerAnnotation node) { - return this.visit_(node); - } - - protected boolean visit_(org.eclipse.jdt.core.dom.Annotation node) { - String jdtAnnotationName = JDTTools.resolveAnnotation(node); - if (this.containerAnnotation.getAnnotationName().equals(jdtAnnotationName)) { - return true; - } - if (this.containerAnnotation.getNestableAnnotationName().equals(jdtAnnotationName)) { - this.visitNestedAnnotation(node); - } - return false; - } - - protected abstract void visitNestedAnnotation(org.eclipse.jdt.core.dom.Annotation node); - - } - - - // ********** initial annotation visitor ********** - - private static class InitialAnnotationVisitor extends AnnotationVisitor { - - InitialAnnotationVisitor(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - super(astRoot, containerAnnotation); - } - - @Override - protected void visitNestedAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - NestableAnnotation nestedAnnotation = this.containerAnnotation.addInternal(this.containerAnnotation.nestedAnnotationsSize()); - nestedAnnotation.initialize(this.astRoot); - } - - } - - - // ********** update annotation visitor ********** - - private static class UpdateAnnotationVisitor extends AnnotationVisitor { - - UpdateAnnotationVisitor(CompilationUnit astRoot, ContainerAnnotation<? extends NestableAnnotation> containerAnnotation) { - super(astRoot, containerAnnotation); - } - - @Override - protected void visitNestedAnnotation(org.eclipse.jdt.core.dom.Annotation node) { - NestableAnnotation nestedAnnotation = this.containerAnnotation.nestedAnnotationFor(node); - if (nestedAnnotation == null) { - nestedAnnotation = this.containerAnnotation.add(this.containerAnnotation.nestedAnnotationsSize()); - nestedAnnotation.initialize(this.astRoot); - } else { - nestedAnnotation.update(this.astRoot); - } - } - - } - -} 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 8d11554af8..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 getNameElementName() { - return JPA.DISCRIMINATOR_COLUMN__NAME; - } - - @Override - protected String getColumnDefinitionElementName() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 011d122a7f..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 update(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 single instance. - */ - 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 4290cbd379..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 update(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 single instance. - */ - 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 39257f4576..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 update(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 single instance. - */ - 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 7d198c77a0..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 update(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 single instance. - */ - 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 c716307cd5..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/EntityImpl.java +++ /dev/null @@ -1,125 +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 update(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - //*********** 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 single instance. - */ - 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 4e32305bec..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 update(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, false); - } - - public static class EnumeratedAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final EnumeratedAnnotationDefinition INSTANCE = new EnumeratedAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 c160ec212a..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 update(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 single instance. - */ - 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 a28a2bb3c1..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/GeneratorImpl.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.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.getNameAdapter(); - this.nameAdapter = this.buildAdapter(this.nameDeclarationAdapter); - this.initialValueDeclarationAdapter = this.getInitialValueAdapter(); - this.initialValueAdapter = this.buildIntegerAdapter(this.initialValueDeclarationAdapter); - this.allocationSizeDeclarationAdapter = this.getAllocationSizeAdapter(); - 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 DeclarationAnnotationElementAdapter<String> getNameAdapter(); - - protected abstract DeclarationAnnotationElementAdapter<Integer> getInitialValueAdapter(); - - protected abstract DeclarationAnnotationElementAdapter<Integer> getAllocationSizeAdapter(); - - - - 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 update(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); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - // ********** 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 bb64600347..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 update(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 single instance. - */ - 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 31dde60793..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 update(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 single instance. - */ - 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 47fd924bbf..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 update(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 single instance. - */ - 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/JavaResourcePersistentAttributeImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentAttributeImpl.java deleted file mode 100644 index 5ff6e77793..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentAttributeImpl.java +++ /dev/null @@ -1,553 +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.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.internal.utility.jdt.JDTTools; -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.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 typeIsSerializable; - - private boolean typeIsDateOrCalendar; - - 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); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.typeIsBasic = this.buildTypeIsBasic(astRoot); - this.qualifiedTypeName = this.buildQualifiedTypeName(astRoot); - this.qualifiedReferenceEntityTypeName = this.buildQualifiedReferenceEntityTypeName(astRoot); - this.qualifiedReferenceEntityElementTypeName = this.buildQualifiedReferenceEntityElementTypeName(astRoot); - this.typeIsSerializable = this.buildTypeIsSerializable(astRoot); - this.typeIsDateOrCalendar = this.buildTypeIsDateOrCalendar(astRoot); - this.typeIsContainer = this.buildTypeIsContainer(astRoot); - this.final_ = this.buildFinal(astRoot); - this.public_ = this.buildPublic(astRoot); - } - - public String getName() { - return this.getMember().getAttributeName(); - } - - // ******** AbstractJavaPersistentResource implementation ******** - - @Override - protected Annotation buildMappingAnnotation(String mappingAnnotationName) { - return this.getAnnotationProvider().buildAttributeMappingAnnotation(this, this.getMember(), mappingAnnotationName); - } - - @Override - protected Annotation buildSupportingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildAttributeSupportingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected Annotation buildNullSupportingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildNullAttributeSupportingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected Annotation buildNullMappingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildNullAttributeMappingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected ListIterator<String> validMappingAnnotationNames() { - return this.getAnnotationProvider().attributeMappingAnnotationNames(); - } - - @Override - protected ListIterator<String> validSupportingAnnotationNames() { - return this.getAnnotationProvider().attributeSupportingAnnotationNames(); - } - - @Override - public boolean isFor(MethodSignature signature, int occurrence) { - return ((MethodAttribute) this.getMember()).matches(signature, occurrence); - } - - // ******** JavaPersistentAttributeResource implementation ******** - - public boolean isForField() { - return this.getMember().isField(); - } - - public boolean isForProperty() { - return ! this.isForField(); - } - - public boolean hasAnyAnnotations() { - if (this.mappingAnnotationsSize() > 0) { - return true; - } - if (this.supportingAnnotationsSize() > 0) { - return true; - } - return false; - } - - public boolean isPublic() { - return this.public_; - } - - protected void setPublic(boolean public_) { - boolean old = this.public_; - this.public_ = public_; - this.firePropertyChanged(PUBLIC_PROPERTY, old, public_); - } - - public boolean isFinal() { - return this.final_; - } - - protected void setFinal(boolean final_) { - boolean old = this.final_; - this.final_ = final_; - this.firePropertyChanged(FINAL_PROPERTY, old, final_); - } - - public boolean typeIsBasic() { - return this.typeIsBasic; - } - - protected void setTypeIsBasic(boolean typeIsBasic) { - boolean old = this.typeIsBasic; - this.typeIsBasic = typeIsBasic; - this.firePropertyChanged(TYPE_IS_BASIC_PROPERTY, old, typeIsBasic); - } - - public String getQualifiedTypeName() { - return this.qualifiedTypeName; - } - - protected void setQualifiedTypeName(String qualifiedTypeName) { - String old = this.qualifiedTypeName; - this.qualifiedTypeName = qualifiedTypeName; - this.firePropertyChanged(QUALIFIED_TYPE_NAME_PROPERTY, old, qualifiedTypeName); - } - - public String getQualifiedReferenceEntityTypeName() { - return this.qualifiedReferenceEntityTypeName; - } - - protected void setQualifiedReferenceEntityTypeName(String qualifiedReferenceEntityTypeName) { - String old = this.qualifiedReferenceEntityTypeName; - this.qualifiedReferenceEntityTypeName = qualifiedReferenceEntityTypeName; - this.firePropertyChanged(QUALIFIED_REFERENCE_ENTITY_TYPE_NAME_PROPERTY, old, qualifiedReferenceEntityTypeName); - } - - public String getQualifiedReferenceEntityElementTypeName() { - return this.qualifiedReferenceEntityElementTypeName; - } - - protected void setQualifiedReferenceEntityElementTypeName(String qualifiedReferenceEntityElementTypeName) { - String old = this.qualifiedReferenceEntityElementTypeName; - this.qualifiedReferenceEntityElementTypeName = qualifiedReferenceEntityElementTypeName; - this.firePropertyChanged(QUALIFIED_REFERENCE_ENTITY_ELEMENT_TYPE_NAME_PROPERTY, old, qualifiedReferenceEntityElementTypeName); - } - - public boolean typeIsSerializable() { - return this.typeIsSerializable; - } - - protected void setTypeIsSerializable(boolean typeIsSerializable) { - boolean old = this.typeIsSerializable; - this.typeIsSerializable = typeIsSerializable; - this.firePropertyChanged(TYPE_IS_SERIALIZABLE_PROPERTY, old, typeIsSerializable); - } - - public boolean typeIsDateOrCalendar() { - return this.typeIsDateOrCalendar; - } - - protected void setTypeIsDateOrCalendar(boolean typeIsDateOrCalendar) { - boolean old = this.typeIsDateOrCalendar; - this.typeIsDateOrCalendar = typeIsDateOrCalendar; - firePropertyChanged(TYPE_IS_DATE_OR_CALENDAR_PROPERTY, old, typeIsDateOrCalendar); - } - - public boolean typeIsContainer() { - return this.typeIsContainer; - } - - protected void setTypeIsContainer(boolean typeIsContainer) { - boolean old = this.typeIsContainer; - this.typeIsContainer = typeIsContainer; - this.firePropertyChanged(TYPE_IS_CONTAINER_PROPERTY, old, typeIsContainer); - } - - @Override - public void update(CompilationUnit astRoot) { - super.update(astRoot); - this.setTypeIsBasic(this.buildTypeIsBasic(astRoot)); - this.setQualifiedTypeName(this.buildQualifiedTypeName(astRoot)); - this.setQualifiedReferenceEntityTypeName(this.buildQualifiedReferenceEntityTypeName(astRoot)); - this.setQualifiedReferenceEntityElementTypeName(this.buildQualifiedReferenceEntityElementTypeName(astRoot)); - this.setTypeIsSerializable(this.buildTypeIsSerializable(astRoot)); - this.setTypeIsDateOrCalendar(this.buildTypeIsDateOrCalendar(astRoot)); - this.setTypeIsContainer(this.buildTypeIsContainer(astRoot)); - this.setFinal(this.buildFinal(astRoot)); - this.setPublic(this.buildPublic(astRoot)); - } - - @Override - public void resolveTypes(CompilationUnit astRoot) { - super.resolveTypes(astRoot); - this.setTypeIsBasic(this.buildTypeIsBasic(astRoot)); - this.setQualifiedTypeName(this.buildQualifiedTypeName(astRoot)); - this.setQualifiedReferenceEntityTypeName(this.buildQualifiedReferenceEntityTypeName(astRoot)); - this.setQualifiedReferenceEntityElementTypeName(this.buildQualifiedReferenceEntityElementTypeName(astRoot)); - this.setTypeIsSerializable(this.buildTypeIsSerializable(astRoot)); - this.setTypeIsDateOrCalendar(this.buildTypeIsDateOrCalendar(astRoot)); - this.setTypeIsContainer(this.buildTypeIsContainer(astRoot)); - } - - protected boolean buildTypeIsBasic(CompilationUnit astRoot) { - return typeIsBasic(this.getMember().getTypeBinding(astRoot), astRoot.getAST()); - } - - protected boolean buildFinal(CompilationUnit astRoot) { - IBinding binding = this.getMember().getBinding(astRoot); - return (binding == null) ? false : Modifier.isFinal(binding.getModifiers()); - } - - protected boolean buildPublic(CompilationUnit astRoot) { - IBinding binding = this.getMember().getBinding(astRoot); - return (binding == null) ? false : Modifier.isPublic(binding.getModifiers()); - } - - protected String buildQualifiedReferenceEntityTypeName(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 buildQualifiedReferenceEntityElementTypeName(CompilationUnit astRoot) { - ITypeBinding typeBinding = this.getMember().getTypeBinding(astRoot); - if (typeBinding == null) { - return null; - } - - ITypeBinding[] typeArguments = typeBinding.getTypeArguments(); - ITypeBinding elementTypeBinding; - if (typeArguments.length == 1) { - elementTypeBinding = typeArguments[0]; - } - else if (typeArguments.length == 2 && typeNamedIsMap(buildQualifiedTypeName(astRoot))) { - elementTypeBinding = typeArguments[1]; - } - else { - return null; - } - String elementTypeName = buildReferenceEntityTypeName(elementTypeBinding); - return typeNamedIsContainer(elementTypeName) ? null : elementTypeName; - } - - - protected boolean buildTypeIsSerializable(CompilationUnit astRoot) { - return typeImplementsSerializable(this.getMember().getTypeBinding(astRoot), astRoot.getAST()); - } - - protected boolean buildTypeIsDateOrCalendar(CompilationUnit astRoot) { - return typeImplementsDateOrCalendar(this.getMember().getTypeBinding(astRoot)); - } - - - protected boolean buildTypeIsContainer(CompilationUnit astRoot) { - String typeName = buildReferenceEntityTypeName(this.getMember().getTypeBinding(astRoot)); - return (typeName == null) ? false : typeNamedIsContainer(typeName); - } - - private static final String MAP_TYPE_NAME = java.util.Map.class.getName(); - - /** - * return whether the specified non-array type is one of the container - * types allowed by the JPA spec - */ - public static boolean typeNamedIsMap(String typeName) { - return MAP_TYPE_NAME.equals(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(), - MAP_TYPE_NAME, - }; - - - protected String buildQualifiedTypeName(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) { - if (typeBinding == null) { - return false; - } - ITypeBinding serializableTypeBinding = ast.resolveWellKnownType(SERIALIZABLE_TYPE_NAME); - return typeBinding.isAssignmentCompatible(serializableTypeBinding); - } - - private static final String SERIALIZABLE_TYPE_NAME = java.io.Serializable.class.getName(); - - /** - * Return whether the specified type implements java.util.Date or java.util.Calendar. - */ - private static boolean typeImplementsDateOrCalendar(ITypeBinding typeBinding) { - return typeImplementsDate(typeBinding) || typeImplementsCalendar(typeBinding); - } - - /** - * Return whether the specified type implements java.util.Date. - */ - private static boolean typeImplementsDate(ITypeBinding typeBinding) { - if (typeBinding == null) { - return false; - } - return JDTTools.findTypeInHierarchy(typeBinding, DATE_TYPE_NAME) != null; - } - - private static final String DATE_TYPE_NAME = java.util.Date.class.getName(); - - /** - * Return whether the specified type implements java.util.Calendar. - */ - private static boolean typeImplementsCalendar(ITypeBinding typeBinding) { - if (typeBinding == null) { - return false; - } - return JDTTools.findTypeInHierarchy(typeBinding, CALENDAR_TYPE_NAME) != null; - } - - private static final String CALENDAR_TYPE_NAME = java.util.Calendar.class.getName(); - - @Override - public void toString(StringBuilder sb) { - sb.append(this.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 403dbbba89..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JavaResourcePersistentTypeImpl.java +++ /dev/null @@ -1,599 +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.HashSet; -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.utility.jdt.Type; -import org.eclipse.jpt.utility.MethodSignature; -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.TreeIterator; - -/** - * - */ -public class JavaResourcePersistentTypeImpl - extends AbstractJavaResourcePersistentMember<Type> - implements JavaResourcePersistentType -{ - private String name; - - private String qualifiedName; - - private String superClassQualifiedName; - - private boolean abstract_; // 'abstract' is a reserved word - - private final Vector<JavaResourcePersistentType> types; - - private final Vector<JavaResourcePersistentAttribute> fields; - - private final Vector<JavaResourcePersistentAttribute> methods; - - private AccessType access; - - - // ********** construction ********** - - /** - * build top-level persistent type - */ - 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 - */ - 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.types = new Vector<JavaResourcePersistentType>(); - this.fields = new Vector<JavaResourcePersistentAttribute>(); - this.methods = new Vector<JavaResourcePersistentAttribute>(); - } - - @Override - public void initialize(CompilationUnit astRoot) { - super.initialize(astRoot); - this.name = this.buildName(astRoot); - this.qualifiedName = this.buildQualifiedName(astRoot); - this.superClassQualifiedName = this.buildSuperClassQualifiedName(astRoot); - this.abstract_ = this.buildAbstract(astRoot); - this.initializeTypes(astRoot); - this.initializeFields(astRoot); - this.initializeMethods(astRoot); - this.access = this.buildAccess(); - } - - protected void initializeTypes(CompilationUnit astRoot) { - TypeDeclaration[] typeDeclarations = this.getMember().getTypes(astRoot); - CounterMap counters = new CounterMap(typeDeclarations.length); - for (TypeDeclaration td : typeDeclarations) { - String tdName = td.getName().getFullyQualifiedName(); - int occurrence = counters.increment(tdName); - this.types.add(this.buildType(td, occurrence, astRoot)); - } - } - - protected void initializeFields(CompilationUnit astRoot) { - FieldDeclaration[] fieldDeclarations = this.getMember().getFields(astRoot); - CounterMap counters = new CounterMap(fieldDeclarations.length); - for (FieldDeclaration fieldDeclaration : fieldDeclarations) { - 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) { - MethodDeclaration[] methodDeclarations = this.getMember().getMethods(astRoot); - CounterMap counters = new CounterMap(methodDeclarations.length); - for (MethodDeclaration methodDeclaration : methodDeclarations) { - 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 this.getAnnotationProvider().buildTypeMappingAnnotation(this, this.getMember(), mappingAnnotationName); - } - - @Override - protected Annotation buildNullMappingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildNullTypeMappingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected Annotation buildSupportingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildTypeSupportingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected Annotation buildNullSupportingAnnotation(String annotationName) { - return this.getAnnotationProvider().buildNullTypeSupportingAnnotation(this, this.getMember(), annotationName); - } - - @Override - protected ListIterator<String> validMappingAnnotationNames() { - return this.getAnnotationProvider().typeMappingAnnotationNames(); - } - - @Override - protected ListIterator<String> validSupportingAnnotationNames() { - return this.getAnnotationProvider().typeSupportingAnnotationNames(); - } - - @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); - } - synchronized (this.types) { - for (JavaResourcePersistentType type : this.types) { - type.resolveTypes(astRoot); - } - } - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - - // ******** JavaResourcePersistentType implementation ******** - - 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 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 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.access; - } - - // 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 access) { - AccessType old = this.access; - this.access = access; - this.firePropertyChanged(ACCESS_PROPERTY, old, access); - } - - /** - * check only persistable attributes - */ - public boolean hasAnyAttributeAnnotations() { - for (Iterator<JavaResourcePersistentAttribute> stream = this.persistableAttributes(); stream.hasNext(); ) { - if (stream.next().hasAnyAnnotations()) { - return true; - } - } - return false; - } - - - // ********** types ********** - - public Iterator<JavaResourcePersistentType> types() { - return new CloneIterator<JavaResourcePersistentType>(this.types); // read-only - } - - public Iterator<JavaResourcePersistentType> allTypes() { - return new TreeIterator<JavaResourcePersistentType>(this) { - @Override - protected Iterator<? extends JavaResourcePersistentType> children(JavaResourcePersistentType type) { - return type.types(); - } - }; - } - - public Iterator<JavaResourcePersistentType> persistableTypes() { - return persistableMembers(this.types()); - } - - public Iterator<JavaResourcePersistentType> allPersistableTypes() { - return persistableMembers(this.allTypes()); - } - - protected JavaResourcePersistentType getType(String typeName, int occurrence) { - for (JavaResourcePersistentType type : this.types) { - if (type.isFor(typeName, occurrence)) { - return type; - } - } - return null; - } - - protected void addType(JavaResourcePersistentType type) { - this.addItemToCollection(type, this.types, TYPES_COLLECTION); - } - - protected void removeTypes(Collection<JavaResourcePersistentType> remove) { - this.removeItemsFromCollection(remove, this.types, TYPES_COLLECTION); - } - - - // ********** fields ********** - - public Iterator<JavaResourcePersistentAttribute> fields() { - return new CloneIterator<JavaResourcePersistentAttribute>(this.fields); - } - - public Iterator<JavaResourcePersistentAttribute> persistableFields() { - return persistableMembers(this.fields()); - } - - protected void addField(JavaResourcePersistentAttribute field) { - this.addItemToCollection(field, this.fields, FIELDS_COLLECTION); - } - - protected JavaResourcePersistentAttribute getField(String fieldName, int occurrence) { - for (JavaResourcePersistentAttribute field : this.fields) { - if (field.isFor(fieldName, occurrence)) { - return field; - } - } - return null; - } - - protected void removeFields(Collection<JavaResourcePersistentAttribute> remove) { - this.removeItemsFromCollection(remove, this.fields, FIELDS_COLLECTION); - } - - - // ********** methods ********** - - public Iterator<JavaResourcePersistentAttribute> methods() { - return new CloneIterator<JavaResourcePersistentAttribute>(this.methods); - } - - public Iterator<JavaResourcePersistentAttribute> persistableProperties() { - return persistableMembers(this.methods()); - } - - protected JavaResourcePersistentAttribute getMethod(MethodSignature signature, int occurrence) { - for (JavaResourcePersistentAttribute method : this.methods) { - if (method.isFor(signature, occurrence)) { - return method; - } - } - return null; - } - - protected void addMethod(JavaResourcePersistentAttribute method) { - this.addItemToCollection(method, this.methods, METHODS_COLLECTION); - } - - protected void removeMethods(Collection<JavaResourcePersistentAttribute> remove) { - this.removeItemsFromCollection(remove, this.methods, METHODS_COLLECTION); - } - - - - // ********** attributes ********** - - @SuppressWarnings("unchecked") - public Iterator<JavaResourcePersistentAttribute> persistableAttributes() { - return new CompositeIterator<JavaResourcePersistentAttribute>(this.persistableFields(), this.persistableProperties()); - } - - - // ********** update from Java ********** - - @Override - public void update(CompilationUnit astRoot) { - super.update(astRoot); - this.setName(this.buildName(astRoot)); - this.setQualifiedName(this.buildQualifiedName(astRoot)); - this.setSuperClassQualifiedName(this.buildSuperClassQualifiedName(astRoot)); - this.setAbstract(this.buildAbstract(astRoot)); - this.updateTypes(astRoot); - this.updateFields(astRoot); - this.updateMethods(astRoot); - this.setAccess(this.buildAccess()); - } - - protected String buildName(CompilationUnit astRoot) { - return this.getMember().getBinding(astRoot).getName(); - } - - protected String buildQualifiedName(CompilationUnit astRoot) { - return this.getMember().getBinding(astRoot).getQualifiedName(); - } - - 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()); - } - - protected void updateTypes(CompilationUnit astRoot) { - synchronized (this.types) { - this.updateTypes_(astRoot); - } - } - - protected void updateTypes_(CompilationUnit astRoot) { - TypeDeclaration[] typeDeclarations = this.getMember().getTypes(astRoot); - CounterMap counters = new CounterMap(typeDeclarations.length); - HashSet<JavaResourcePersistentType> typesToRemove = new HashSet<JavaResourcePersistentType>(this.types); - for (TypeDeclaration typeDeclaration : typeDeclarations) { - String tdName = typeDeclaration.getName().getFullyQualifiedName(); - int occurrence = counters.increment(tdName); - - JavaResourcePersistentType type = this.getType(tdName, occurrence); - if (type == null) { - this.addType(this.buildType(typeDeclaration, occurrence, astRoot)); - } else { - typesToRemove.remove(type); - type.update(astRoot); - } - } - this.removeTypes(typesToRemove); - } - - protected JavaResourcePersistentType buildType(TypeDeclaration nestedTypeDeclaration, int occurrence, CompilationUnit astRoot) { - return newInstance(this.getJpaCompilationUnit(), this.getMember(), nestedTypeDeclaration, occurrence, astRoot); - } - - protected void updateFields(CompilationUnit astRoot) { - synchronized (this.fields) { - this.updateFields_(astRoot); - } - } - - protected void updateFields_(CompilationUnit astRoot) { - FieldDeclaration[] fieldDeclarations = this.getMember().getFields(astRoot); - CounterMap counters = new CounterMap(fieldDeclarations.length); - HashSet<JavaResourcePersistentAttribute> fieldsToRemove = new HashSet<JavaResourcePersistentAttribute>(this.fields); - for (FieldDeclaration fieldDeclaration : fieldDeclarations) { - 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.update(astRoot); - } - } - } - this.removeFields(fieldsToRemove); - } - - protected JavaResourcePersistentAttribute buildField(String fieldName, int occurrence, CompilationUnit astRoot) { - return JavaResourcePersistentAttributeImpl.newInstance(this, this.getMember(), fieldName, occurrence, this.getJpaCompilationUnit(), astRoot); - } - - protected void updateMethods(CompilationUnit astRoot) { - synchronized (this.methods) { - this.updateMethods_(astRoot); - } - } - - protected void updateMethods_(CompilationUnit astRoot) { - MethodDeclaration[] methodDeclarations = this.getMember().getMethods(astRoot); - CounterMap counters = new CounterMap(methodDeclarations.length); - HashSet<JavaResourcePersistentAttribute> methodsToRemove = new HashSet<JavaResourcePersistentAttribute>(this.methods); - for (MethodDeclaration methodDeclaration : methodDeclarations) { - 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.update(astRoot); - } - } - this.removeMethods(methodsToRemove); - } - - 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 buildAccess() { - boolean hasPersistableFields = false; - for (Iterator<JavaResourcePersistentAttribute> stream = this.persistableFields(); stream.hasNext(); ) { - hasPersistableFields = true; - if (stream.next().hasAnyAnnotations()) { - // any field is annotated => FIELD - return AccessType.FIELD; - } - } - - boolean hasPersistableProperties = false; - for (Iterator<JavaResourcePersistentAttribute> stream = this.persistableProperties(); stream.hasNext(); ) { - hasPersistableProperties = true; - if (stream.next().hasAnyAnnotations()) { - // none of the fields are annotated and a getter is annotated => PROPERTY - return AccessType.PROPERTY; - } - } - - if (hasPersistableProperties && ! hasPersistableFields) { - return AccessType.PROPERTY; - } - - // if 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(); - } - - - // ********** CounterMap ********** - - protected static class CounterMap { - private final HashMap<Object, Counter> counters; - - protected CounterMap(int initialCapacity) { - super(); - this.counters = new HashMap<Object, Counter>(initialCapacity); - } - - /** - * 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 a0e41d45f1..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 getNameElementName() { - return JPA.JOIN_COLUMN__NAME; - } - - @Override - protected String getColumnDefinitionElementName() { - return JPA.JOIN_COLUMN__COLUMN_DEFINITION; - } - - @Override - protected String getTableElementName() { - return JPA.JOIN_COLUMN__TABLE; - } - - @Override - protected String getUniqueElementName() { - return JPA.JOIN_COLUMN__UNIQUE; - } - - @Override - protected String getNullableElementName() { - return JPA.JOIN_COLUMN__NULLABLE; - } - - @Override - protected String getInsertableElementName() { - return JPA.JOIN_COLUMN__INSERTABLE; - } - - @Override - protected String getUpdatableElementName() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 905541069c..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinColumnsImpl.java +++ /dev/null @@ -1,157 +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.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.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 JPA.JOIN_COLUMNS__VALUE; - } - - public void update(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 single instance. - */ - 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 361853ae7f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JoinTableImpl.java +++ /dev/null @@ -1,400 +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); - - protected final List<NestableJoinColumn> joinColumns; - - protected 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> getNameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return NAME_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getSchemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return SCHEMA_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getCatalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @JoinTable is never nested - return CATALOG_ADAPTER; - } - - @Override - protected String getUniqueConstraintsElementName() { - return JPA.JOIN_TABLE__UNIQUE_CONSTRAINTS; - } - - @Override - protected NestableUniqueConstraint createUniqueConstraint(int index) { - return UniqueConstraintImpl.createJoinTableUniqueConstraint(this, this.getMember(), index); - } - - @Override - public void update(CompilationUnit astRoot) { - super.update(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; - } - - protected 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); - } - - protected 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 JPA.JOIN_TABLE__JOIN_COLUMNS; - } - } - - protected 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 JPA.JOIN_TABLE__INVERSE_JOIN_COLUMNS; - } - } - - 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 update(CompilationUnit astRoot) { - JoinTableImpl.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return JoinTableImpl.this.getTextRange(astRoot); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getAnnotationName()); - } - - } - public static class JoinTableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final JoinTableAnnotationDefinition INSTANCE = new JoinTableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 eea34364cf..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/JpaCompilationUnitImpl.java +++ /dev/null @@ -1,306 +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.List; - -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaElementDelta; -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.ResourceModelListener; -import org.eclipse.jpt.core.internal.utility.jdt.JDTTools; -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; -import org.eclipse.jpt.utility.internal.BitTools; -import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; - -/** - * - */ -public class JpaCompilationUnitImpl - extends AbstractJavaResourceNode - implements JpaCompilationUnit -{ - private final ICompilationUnit compilationUnit; - - private final JpaAnnotationProvider annotationProvider; - - private final CommandExecutorProvider modifySharedDocumentCommandExecutorProvider; - - private final AnnotationEditFormatter annotationEditFormatter; - - private final ResourceModelListener resourceModelListener; - - /** - * 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( - ICompilationUnit compilationUnit, - JpaAnnotationProvider annotationProvider, - CommandExecutorProvider modifySharedDocumentCommandExecutorProvider, - AnnotationEditFormatter annotationEditFormatter, - ResourceModelListener resourceModelListener) { - super(null); // the JPA compilation unit is the root of its sub-tree - this.compilationUnit = compilationUnit; - this.annotationProvider = annotationProvider; - this.modifySharedDocumentCommandExecutorProvider = modifySharedDocumentCommandExecutorProvider; - this.annotationEditFormatter = annotationEditFormatter; - this.resourceModelListener = resourceModelListener; - this.persistentType = this.buildPersistentType(); - } - - protected JavaResourcePersistentType buildPersistentType() { - this.openCompilationUnit(); - CompilationUnit astRoot = this.buildASTRoot(); - this.closeCompilationUnit(); - return this.buildPersistentType(astRoot); - } - - 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 void closeCompilationUnit() { - try { - this.compilationUnit.close(); - } catch (JavaModelException ex) { - // hmmm - } - } - - protected JavaResourcePersistentType buildPersistentType(CompilationUnit astRoot) { - TypeDeclaration td = this.getPrimaryType(astRoot); - return (td == null) ? null : this.buildPersistentType(astRoot, td); - } - - public void initialize(CompilationUnit astRoot) { - // never called? - } - - - // ********** AbstractJavaResourceNode overrides ********** - - @Override - protected boolean requiresParent() { - return false; - } - - @Override - public JpaCompilationUnit getJpaCompilationUnit() { - return this; - } - - @Override - public JpaAnnotationProvider getAnnotationProvider() { - return this.annotationProvider; - } - - - // ********** JavaResourceNode implementation ********** - - public void update(CompilationUnit astRoot) { - TypeDeclaration td = this.getPrimaryType(astRoot); - if (td == null) { - this.persistentType = null; - } else { - if (this.persistentType == null) { - this.persistentType = this.buildPersistentType(astRoot, td); - } else { - this.persistentType.update(astRoot); - } - } - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return null; - } - - - // ********** JpaCompilationUnit implementation ********** - - public ICompilationUnit getCompilationUnit() { - return this.compilationUnit; - } - - public Iterator<JavaResourcePersistentType> persistableTypes() { - return (this.persistentType == null) ? - EmptyIterator.<JavaResourcePersistentType>instance() : - this.persistentType.allPersistableTypes(); - } - - public void resourceModelChanged() { - this.resourceModelListener.resourceModelChanged(); - } - - public void resolveTypes() { - if (this.persistentType != null) { - this.persistentType.resolveTypes(this.buildASTRoot()); - } - } - - public CommandExecutorProvider getModifySharedDocumentCommandExecutorProvider() { - return this.modifySharedDocumentCommandExecutorProvider; - } - - public AnnotationEditFormatter getAnnotationEditFormatter() { - return this.annotationEditFormatter; - } - - - // ********** Java changes ********** - - public void javaElementChanged(ElementChangedEvent event) { - this.synchWithJavaDelta(event.getDelta()); - } - - protected void synchWithJavaDelta(IJavaElementDelta delta) { - switch (delta.getElement().getElementType()) { - case IJavaElement.JAVA_PROJECT : - if (this.classpathHasChanged(delta)) { - this.updateFromJava(); - break; // no need to check further - } - case IJavaElement.JAVA_MODEL : - case IJavaElement.PACKAGE_FRAGMENT_ROOT : - case IJavaElement.PACKAGE_FRAGMENT : - this.synchChildrenWithJavaDelta(delta); - break; - case IJavaElement.COMPILATION_UNIT : - if (this.deltaIsRelevant(delta)) { - this.updateFromJava(); - } - break; - default : - break; // the element type is somehow held by a compilation unit (i.e. probably doesn't happen) - } - } - - protected void synchChildrenWithJavaDelta(IJavaElementDelta delta) { - for (IJavaElementDelta child : delta.getAffectedChildren()) { - this.synchWithJavaDelta(child); // recurse - } - } - - // 235384 - We need to update all compilation units when a classpath change occurs. - // The persistence.jar could have been added to or removed from the - // classpath which affects whether we know about the JPA annotations. - protected boolean classpathHasChanged(IJavaElementDelta delta) { - return BitTools.anyFlagsAreSet(delta.getFlags(), this.getClasspathChangedFlags()); - } - - protected int getClasspathChangedFlags() { - return CLASSPATH_CHANGED_FLAGS; - } - - protected static final int CLASSPATH_CHANGED_FLAGS = - IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED | - IJavaElementDelta.F_CLASSPATH_CHANGED; - - protected boolean deltaIsRelevant(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 false; - } - - // 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 - if (delta.getKind() == IJavaElementDelta.REMOVED) { - return false; - } - - return delta.getElement().equals(this.compilationUnit); - } - - protected void updateFromJava() { - this.update(this.buildASTRoot()); - } - - - // ********** internal ********** - - protected CompilationUnit buildASTRoot() { - return JDTTools.buildASTRoot(this.compilationUnit); - } - - protected JavaResourcePersistentType buildPersistentType(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 - * - * Return null if resolveBinding() on the TypeDeclaration returns null - * This can occur if the project JRE is removed (bug 225332) - */ - 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 (atd.resolveBinding()) != null ? (TypeDeclaration) atd : null; - } - } - 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"); //$NON-NLS-1$ - 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 8d3e73fadd..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 -{ - private 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 update(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 single instance. - */ - 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 afb48b8294..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> getTargetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> getCascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getFetchAdapter() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 5206043595..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> getTargetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> getCascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getFetchAdapter() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 bc3d3e4f8e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/MapKeyImpl.java +++ /dev/null @@ -1,125 +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 update(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - // ********** 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 single instance. - */ - 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 05b35fad72..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 update(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 single instance. - */ - 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 5ccddc9a82..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueriesImpl.java +++ /dev/null @@ -1,157 +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.JPA; -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 JPA.NAMED_NATIVE_QUERIES__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 update(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 single instance. - */ - 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 7fda779a80..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedNativeQueryImpl.java +++ /dev/null @@ -1,238 +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 getNameElementName() { - return JPA.NAMED_NATIVE_QUERY__NAME; - } - - @Override - protected String getQueryElementName() { - return JPA.NAMED_NATIVE_QUERY__QUERY; - } - - @Override - protected String getHintsElementName() { - return JPA.NAMED_NATIVE_QUERY__HINTS; - } - - @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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 0f8f19a4c6..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueriesImpl.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.JPA; -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 JPA.NAMED_QUERIES__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 update(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 single instance. - */ - 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 d8977a604e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NamedQueryImpl.java +++ /dev/null @@ -1,112 +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 getNameElementName() { - return JPA.NAMED_QUERY__NAME; - } - - @Override - protected String getQueryElementName() { - return JPA.NAMED_QUERY__QUERY; - } - - @Override - protected String getHintsElementName() { - return JPA.NAMED_QUERY__HINTS; - } - - @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 single instance. - */ - 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 ee2838208f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullAssociationOverride.java +++ /dev/null @@ -1,121 +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().addSupportingAnnotation(getAnnotationName()); - } - - public void update(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; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getName()); - } - -} 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 45aa4585d4..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 createResourceColumn() { - return getParent().addColumn(); - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createResourceColumn().setLength(length); - } - } - - public Integer getScale() { - return null; - } - - public void setScale(Integer scale) { - if (scale != null) { - createResourceColumn().setScale(scale); - } - } - - public Integer getPrecision() { - return null; - } - - public void setPrecision(Integer precision) { - if (precision != null) { - createResourceColumn().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 a4cd238c1b..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.Annotation; -import org.eclipse.jpt.core.resource.java.BaseColumnAnnotation; -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 createResourceColumn(); - - public String getTable() { - return null; - } - - public void setTable(String table) { - if (table != null) { - createResourceColumn().setTable(table); - } - } - - public Boolean getUnique() { - return null; - } - - public void setUnique(Boolean unique) { - if (unique != null) { - createResourceColumn().setUnique(unique); - } - } - - public Boolean getUpdatable() { - return null; - } - - public void setUpdatable(Boolean updatable) { - if (updatable != null) { - createResourceColumn().setUpdatable(updatable); - } - } - - public Boolean getInsertable() { - return null; - } - - public void setInsertable(Boolean insertable) { - if (insertable != null) { - createResourceColumn().setInsertable(insertable); - } - } - - public Boolean getNullable() { - return null; - } - - public void setNullable(Boolean nullable) { - if (nullable != null) { - createResourceColumn().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 ac5216bcac..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullBaseTable.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 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().addSupportingAnnotation(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(@SuppressWarnings("unused") int index) { - throw new UnsupportedOperationException(); - } - - public int indexOfUniqueConstraint(@SuppressWarnings("unused") UniqueConstraintAnnotation uniqueConstraint) { - throw new UnsupportedOperationException(); - } - - public void moveUniqueConstraint(@SuppressWarnings("unused") int targetIndex, @SuppressWarnings("unused") int sourceIndex) { - throw new UnsupportedOperationException(); - } - public UniqueConstraintAnnotation uniqueConstraintAt(@SuppressWarnings("unused") 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(@SuppressWarnings("unused") CompilationUnit astRoot) { - return null; - } - - public TextRange getCatalogTextRange(@SuppressWarnings("unused") CompilationUnit astRoot) { - return null; - } - - public TextRange getSchemaTextRange(@SuppressWarnings("unused") CompilationUnit astRoot) { - return null; - } - - public boolean nameTouches(@SuppressWarnings("unused") int pos, @SuppressWarnings("unused") CompilationUnit astRoot) { - return false; - } - - public boolean catalogTouches(@SuppressWarnings("unused") int pos, @SuppressWarnings("unused") CompilationUnit astRoot) { - return false; - } - - public boolean schemaTouches(@SuppressWarnings("unused") int pos, @SuppressWarnings("unused") CompilationUnit astRoot) { - return false; - } - - public void update(CompilationUnit astRoot) { - throw new UnsupportedOperationException(); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getName()); - } - -} 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 a3c65b2adf..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 update(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 255fe7615b..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 createResourceColumn() { - return (ColumnAnnotation) getParent().addSupportingAnnotation(getAnnotationName()); - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createResourceColumn().setLength(length); - } - } - - public Integer getScale() { - return null; - } - - public void setScale(Integer scale) { - if (scale != null) { - createResourceColumn().setScale(scale); - } - } - - public Integer getPrecision() { - return null; - } - - public void setPrecision(Integer precision) { - if (precision != null) { - createResourceColumn().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 7925517bba..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 createResourceColumn() { - return (DiscriminatorColumnAnnotation) getParent().addSupportingAnnotation(getAnnotationName()); - } - - public DiscriminatorType getDiscriminatorType() { - return null; - } - - public void setDiscriminatorType(DiscriminatorType discriminatorType) { - if (discriminatorType != null) { - createResourceColumn().setDiscriminatorType(discriminatorType); - } - } - - public Integer getLength() { - return null; - } - - public void setLength(Integer length) { - if (length != null) { - createResourceColumn().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 261edfbe7c..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().addSupportingAnnotation(getAnnotationName()); - } - - public void update(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 a015e0b4ff..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 update(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 d471c738fc..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().addSupportingAnnotation(getAnnotationName()); - } - - - public EnumType getValue() { - return null; - } - - public void setValue(EnumType value) { - if (value != null) { - createEnumeratedResource().setValue(value); - } - } - - public void update(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 c50f01d1d5..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().addSupportingAnnotation(getAnnotationName()); - } - - public void update(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 499e200d11..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 createResourceColumn() { - 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 a0948a92c9..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 createResourceColumn(); - - public String getName() { - return null; - } - - public void setName(String name) { - if (name != null) { - createResourceColumn().setName(name); - } - } - - public String getColumnDefinition() { - return null; - } - - public void setColumnDefinition(String columnDefinition) { - if (columnDefinition != null) { - createResourceColumn().setColumnDefinition(columnDefinition); - } - } - - public void update(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/NullOneToMany.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToMany.java deleted file mode 100644 index fed1896426..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToMany.java +++ /dev/null @@ -1,163 +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.FetchType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.OneToManyAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullOneToMany extends AbstractJavaResourceNode implements OneToManyAnnotation, Annotation -{ - protected NullOneToMany(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 OneToManyAnnotation.ANNOTATION_NAME; - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - protected OneToManyAnnotation createOneToManyResource() { - getParent().setMappingAnnotation(getAnnotationName()); - return (OneToManyAnnotation) getParent().getMappingAnnotation(); - } - - public FetchType getFetch() { - return null; - } - - public void setFetch(FetchType fetch) { - if (fetch != null) { - createOneToManyResource().setFetch(fetch); - } - } - - public String getMappedBy() { - return null; - } - - public void setMappedBy(String mappedBy) { - if (mappedBy != null) { - createOneToManyResource().setMappedBy(mappedBy); - } - } - - public String getFullyQualifiedTargetEntity() { - return null; - } - - public String getTargetEntity() { - return null; - } - - public void setTargetEntity(String targetEntity) { - if (targetEntity != null) { - createOneToManyResource().setTargetEntity(targetEntity); - } - } - - public boolean isCascadeAll() { - return false; - } - - public void setCascadeAll(boolean all) { - createOneToManyResource().setCascadeAll(all); - } - - public boolean isCascadeMerge() { - return false; - } - - public void setCascadeMerge(boolean merge) { - createOneToManyResource().setCascadeMerge(merge); - } - - public boolean isCascadePersist() { - return false; - } - - public void setCascadePersist(boolean persist) { - createOneToManyResource().setCascadePersist(persist); - } - - public boolean isCascadeRefresh() { - return false; - } - - public void setCascadeRefresh(boolean refresh) { - createOneToManyResource().setCascadeRefresh(refresh); - } - - public boolean isCascadeRemove() { - return false; - } - - public void setCascadeRemove(boolean remove) { - createOneToManyResource().setCascadeRemove(remove); - } - - public void update(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; - } - - public TextRange getMappedByTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getCascadeTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getTargetEntityTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean mappedByTouches(int pos, CompilationUnit astRoot) { - return false; - } - - -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOne.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOne.java deleted file mode 100644 index 7219282afb..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOne.java +++ /dev/null @@ -1,173 +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.FetchType; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; -import org.eclipse.jpt.core.resource.java.OneToOneAnnotation; -import org.eclipse.jpt.core.utility.TextRange; - - -public class NullOneToOne extends AbstractJavaResourceNode implements OneToOneAnnotation, Annotation -{ - protected NullOneToOne(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 OneToOneAnnotation.ANNOTATION_NAME; - } - - @Override - public JavaResourcePersistentMember getParent() { - return (JavaResourcePersistentMember) super.getParent(); - } - - protected OneToOneAnnotation createOneToOneResource() { - getParent().setMappingAnnotation(getAnnotationName()); - return (OneToOneAnnotation) getParent().getMappingAnnotation(); - } - - public FetchType getFetch() { - return null; - } - - public void setFetch(FetchType fetch) { - if (fetch != null) { - createOneToOneResource().setFetch(fetch); - } - } - - public Boolean getOptional() { - return null; - } - - public void setOptional(Boolean optional) { - if (optional != null) { - createOneToOneResource().setOptional(optional); - } - } - - public String getMappedBy() { - return null; - } - - public void setMappedBy(String mappedBy) { - if (mappedBy != null) { - createOneToOneResource().setMappedBy(mappedBy); - } - } - - public String getFullyQualifiedTargetEntity() { - return null; - } - - public String getTargetEntity() { - return null; - } - - public void setTargetEntity(String targetEntity) { - if (targetEntity != null) { - createOneToOneResource().setTargetEntity(targetEntity); - } - } - - public boolean isCascadeAll() { - return false; - } - - public void setCascadeAll(boolean all) { - createOneToOneResource().setCascadeAll(all); - } - - public boolean isCascadeMerge() { - return false; - } - - public void setCascadeMerge(boolean merge) { - createOneToOneResource().setCascadeMerge(merge); - } - - public boolean isCascadePersist() { - return false; - } - - public void setCascadePersist(boolean persist) { - createOneToOneResource().setCascadePersist(persist); - } - - public boolean isCascadeRefresh() { - return false; - } - - public void setCascadeRefresh(boolean refresh) { - createOneToOneResource().setCascadeRefresh(refresh); - } - - public boolean isCascadeRemove() { - return false; - } - - public void setCascadeRemove(boolean remove) { - createOneToOneResource().setCascadeRemove(remove); - } - - public void update(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; - } - - public TextRange getMappedByTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getCascadeTextRange(CompilationUnit astRoot) { - return null; - } - - public TextRange getTargetEntityTextRange(CompilationUnit astRoot) { - return null; - } - - public boolean mappedByTouches(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 689b4b3c8b..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 createResourceColumn() { - 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 416e4d46b5..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().addSupportingAnnotation(getAnnotationName()); - } - - - public TemporalType getValue() { - return null; - } - - public void setValue(TemporalType value) { - if (value != null) { - createTemporalResource().setValue(value); - } - } - - public void update(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 dfb1ed5601..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> getTargetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> getCascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getFetchAdapter() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 new NullOneToMany(parent); - } - - 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 d71a616c83..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> getTargetEntityAdapter() { - return TARGET_ENTITY_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String[]> getCascadeAdapter() { - return CASCADE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getFetchAdapter() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 new NullOneToOne(parent); - } - - 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 627907f6dd..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 update(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 single instance. - */ - 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 0d5a551650..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/OverrideImpl.java +++ /dev/null @@ -1,98 +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 update(CompilationUnit astRoot) { - this.setName(this.name(astRoot)); - } - - protected String name(CompilationUnit astRoot) { - return this.nameAdapter.getValue(astRoot); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - -} 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 c9cb053e41..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 getNameElementName() { - return JPA.PRIMARY_KEY_JOIN_COLUMN__NAME; - } - - @Override - protected String getColumnDefinitionElementName() { - 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 update(CompilationUnit astRoot) { - super.update(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 single instance. - */ - 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 d08876d3ed..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/PrimaryKeyJoinColumnsImpl.java +++ /dev/null @@ -1,157 +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.JPA; -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.PrimaryKeyJoinColumnsAnnotation; -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 PrimaryKeyJoinColumnsAnnotation -{ - - 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 JPA.PRIMARY_KEY_JOIN_COLUMNS__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 update(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 single instance. - */ - private PrimaryKeyJoinColumnsAnnotationDefinition() { - super(); - } - - public PrimaryKeyJoinColumnsAnnotation buildAnnotation(JavaResourcePersistentMember parent, Member member) { - return new PrimaryKeyJoinColumnsImpl(parent, member); - } - - public PrimaryKeyJoinColumnsAnnotation 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 51d1392d5e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/QueryHintImpl.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.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.buildNameAdapter(idaa); - this.nameAdapter = this.buildAdapter(this.nameDeclarationAdapter); - this.valueDeclarationAdapter = this.buildValueAdapter(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> buildNameAdapter(DeclarationAnnotationAdapter daa) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(daa, JPA.QUERY_HINT__NAME); - } - - protected DeclarationAnnotationElementAdapter<String> buildValueAdapter(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 update(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()); - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.name); - } - - // ********** 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 6d69fcf65d..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTableImpl.java +++ /dev/null @@ -1,333 +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); - - protected 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> getCatalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__CATALOG); - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getNameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, JPA.SECONDARY_TABLE__NAME); - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getSchemaAdapter(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 String getUniqueConstraintsElementName() { - return JPA.SECONDARY_TABLE__UNIQUE_CONSTRAINTS; - } - - @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 update(CompilationUnit astRoot) { - super.update(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 update(CompilationUnit astRoot) { - SecondaryTableImpl.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return SecondaryTableImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return JPA.SECONDARY_TABLE__PK_JOIN_COLUMNS; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getAnnotationName()); - } - - } - - public static class SecondaryTableAnnotationDefinition implements AnnotationDefinition - { - // singleton - private static final SecondaryTableAnnotationDefinition INSTANCE = new SecondaryTableAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 8502bb4cec..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SecondaryTablesImpl.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 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.JPA; -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 JPA.SECONDARY_TABLES__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, SECONDARY_TABLES_LIST); - } - - public void remove(NestableSecondaryTable secondaryTable) { - removeItemFromList(secondaryTable, this.secondaryTables, SECONDARY_TABLES_LIST); - } - - public void remove(int index) { - removeItemFromList(index, this.secondaryTables, 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, 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 update(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 single instance. - */ - 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 930e87a5bc..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/SequenceGeneratorImpl.java +++ /dev/null @@ -1,157 +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> getAllocationSizeAdapter() { - return ALLOCATION_SIZE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<Integer> getInitialValueAdapter() { - return INITIAL_VALUE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getNameAdapter() { - 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); - } - - public boolean sequenceNameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(SEQUENCE_NAME_ADAPTER, pos, astRoot); - } - - // ********** java annotations -> persistence model ********** - @Override - public void update(CompilationUnit astRoot) { - super.update(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); - } - - - // ********** annotation definition ********** - - public static class SequenceGeneratorAnnotationDefinition - implements AnnotationDefinition - { - // singleton - private static final SequenceGeneratorAnnotationDefinition INSTANCE = new SequenceGeneratorAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 ee33090640..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableGeneratorImpl.java +++ /dev/null @@ -1,525 +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; - - 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> getAllocationSizeAdapter() { - return ALLOCATION_SIZE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<Integer> getInitialValueAdapter() { - return INITIAL_VALUE_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getNameAdapter() { - 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; - } - - protected 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); - } - - - // ********** text ranges ********** - - public TextRange getTableTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(TABLE_ADAPTER, astRoot); - } - - public boolean tableTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(TABLE_ADAPTER, pos, astRoot); - } - - public TextRange getCatalogTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(CATALOG_ADAPTER, astRoot); - } - - public boolean catalogTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(CATALOG_ADAPTER, pos, astRoot); - } - - public TextRange getSchemaTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(SCHEMA_ADAPTER, astRoot); - } - - public boolean schemaTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(SCHEMA_ADAPTER, pos, astRoot); - } - - public TextRange getPkColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(PK_COLUMN_NAME_ADAPTER, astRoot); - } - - public boolean pkColumnNameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(PK_COLUMN_NAME_ADAPTER, pos, astRoot); - } - - public TextRange getPkColumnValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(PK_COLUMN_VALUE_ADAPTER, astRoot); - } - - public boolean pkColumnValueTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(PK_COLUMN_VALUE_ADAPTER, pos, astRoot); - } - - public TextRange getValueColumnNameTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(VALUE_COLUMN_NAME_ADAPTER, astRoot); - } - - public boolean valueColumnNameTouches(int pos, CompilationUnit astRoot) { - return this.elementTouches(VALUE_COLUMN_NAME_ADAPTER, pos, astRoot); - } - - // ********** java annotations -> persistence model ********** - @Override - public void update(CompilationUnit astRoot) { - super.update(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); - } - - - // ********** unique constraints container annotation ********** - - 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 update(CompilationUnit astRoot) { - TableGeneratorImpl.this.update(astRoot); - } - - public TextRange getTextRange(CompilationUnit astRoot) { - return TableGeneratorImpl.this.getTextRange(astRoot); - } - - public String getElementName() { - return JPA.TABLE_GENERATOR__UNIQUE_CONSTRAINTS; - } - - @Override - public void toString(StringBuilder sb) { - sb.append(this.getAnnotationName()); - } - - } - - - // ********** annotation definition ********** - - public static class TableGeneratorAnnotationDefinition - implements AnnotationDefinition - { - // singleton - private static final TableGeneratorAnnotationDefinition INSTANCE = new TableGeneratorAnnotationDefinition(); - - /** - * Return the singleton. - */ - public static AnnotationDefinition instance() { - return INSTANCE; - } - - /** - * Ensure single instance. - */ - 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 1e6b4c4df0..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/TableImpl.java +++ /dev/null @@ -1,104 +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> getNameAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return NAME_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getSchemaAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return SCHEMA_ADAPTER; - } - - @Override - protected DeclarationAnnotationElementAdapter<String> getCatalogAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) { - // ignore the daa passed in, @Table is never nested - return CATALOG_ADAPTER; - } - - @Override - protected String getUniqueConstraintsElementName() { - return JPA.TABLE__UNIQUE_CONSTRAINTS; - } - - @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 single instance. - */ - 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 af42e97778..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 update(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 single instance. - */ - 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 e4f348bbe4..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 update(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 single instance. - */ - 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 6ad1c8eb89..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/UniqueConstraintImpl.java +++ /dev/null @@ -1,188 +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(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_(String columnName) { - this.addColumnName_(this.columnNames.size(), columnName); - } - - 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 update(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_(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 e9c4431f1f..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 update(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 single instance. - */ - 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; - } - } - -} |