diff options
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java')
-rw-r--r-- | jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java index b2cc14676e..173473e6b5 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/resource/java/source/SourceXmlPathAnnotation.java @@ -10,7 +10,6 @@ package org.eclipse.jpt.jaxb.eclipselink.core.internal.resource.java.source; import org.eclipse.jdt.core.dom.Annotation; -import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.resource.java.source.SourceAnnotation; import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter; import org.eclipse.jpt.common.core.internal.utility.jdt.CombinationIndexedDeclarationAnnotationAdapter; @@ -43,6 +42,7 @@ public class SourceXmlPathAnnotation private final DeclarationAnnotationElementAdapter<String> valueDeclarationAdapter; private final AnnotationElementAdapter<String> valueAdapter; private String value; + private TextRange valueTextRange; public static SourceXmlPathAnnotation buildSourceXmlPathAnnotation( @@ -90,12 +90,14 @@ public class SourceXmlPathAnnotation public void initialize(Annotation astAnnotation) { super.initialize(astAnnotation); this.value = buildValue(astAnnotation); + this.valueTextRange = this.buildValueTextRange(astAnnotation); } @Override public void synchronizeWith(Annotation astAnnotation) { super.synchronizeWith(astAnnotation); syncValue(buildValue(astAnnotation)); + this.valueTextRange = this.buildValueTextRange(astAnnotation); } @Override @@ -126,13 +128,17 @@ public class SourceXmlPathAnnotation private String buildValue(Annotation astAnnotation) { return this.valueAdapter.getValue(astAnnotation); } - - public TextRange getValueTextRange(CompilationUnit astRoot) { - return this.getElementTextRange(this.valueDeclarationAdapter, astRoot); + + public TextRange getValueTextRange() { + return this.valueTextRange; + } + + private TextRange buildValueTextRange(Annotation astAnnotation) { + return this.getElementTextRange(this.valueDeclarationAdapter, astAnnotation); } - public boolean valueTouches(int pos, CompilationUnit astRoot) { - return elementTouches(this.valueDeclarationAdapter, pos, astRoot); + public boolean valueTouches(int pos) { + return this.textRangeTouches(this.valueTextRange, pos); } |