Dali Provisional API
Release 3.2

org.eclipse.jpt.common.core.resource.java
Interface JavaResourceAnnotatedElement

All Superinterfaces:
JavaResourceNode, Model
All Known Subinterfaces:
JavaResourceAbstractType, JavaResourceAttribute, JavaResourceEnum, JavaResourceEnumConstant, JavaResourceField, JavaResourceMember, JavaResourceMethod, JavaResourcePackage, JavaResourceType

public interface JavaResourceAnnotatedElement
extends JavaResourceNode

Java source code or binary annotated element.

Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.


Nested Class Summary
static class JavaResourceAnnotatedElement.AstNodeType
          The java element's ASTNode type.
static class JavaResourceAnnotatedElement.AstNodeTypeEquals
           
static class JavaResourceAnnotatedElement.IsAnnotated
           
static class JavaResourceAnnotatedElement.IsAnnotatedWithAnyOf
           
 
Nested classes/interfaces inherited from interface org.eclipse.jpt.common.core.resource.java.JavaResourceNode
JavaResourceNode.FileTransformer, JavaResourceNode.Root
 
Field Summary
static String ANNOTATIONS_COLLECTION
          String associated with changes to the "annotations" collection
static org.eclipse.jpt.common.utility.predicate.Predicate<JavaResourceAnnotatedElement> IS_ANNOTATED
           
static String NESTABLE_ANNOTATIONS_COLLECTION
          String associated with changes to the "nestableAnnotations" collection
 
Fields inherited from interface org.eclipse.jpt.common.core.resource.java.JavaResourceNode
FILE_TRANSFORMER
 
Method Summary
 NestableAnnotation addAnnotation(int index, String nestableAnnotationName)
          Add a new nestable annotation with the specified name.
 Annotation addAnnotation(String annotationName)
          Add a top-level stand-alone annotation with the specified name and return the newly-created annotation.
 NestableAnnotation getAnnotation(int index, String nestableAnnotationName)
          Return the nestable annotation at the specified index with the specified name.
 Annotation getAnnotation(String annotationName)
          Return the annotation with the specified name.
 Iterable<Annotation> getAnnotations()
          Return the member's top-level stand-alone annotations in the order that they appear.
 org.eclipse.jpt.common.utility.iterable.ListIterable<NestableAnnotation> getAnnotations(String nestableAnnotationName)
          Return the nestable annotations with the specified name in the order that they appear.
 int getAnnotationsSize()
          Return the number of top-level stand-alone annotations.
 int getAnnotationsSize(String nestableAnnotationName)
          Return the number of nestable annotations with the specified name.
 JavaResourceAnnotatedElement.AstNodeType getAstNodeType()
          Return the element's ASTNode type
 Annotation getContainerAnnotation(String containerAnnotationName)
          Return the "container" annotation with the specified name.
 TextRange getNameTextRange()
          Return the text range for the member's name.
 Annotation getNonNullAnnotation(String annotationName)
          Return the specified top-level stand-alone annotation.
 TextRange getTextRange(String nestableAnnotationName)
          Return the text range for the nestable annotation if it is currently unnested.
 Iterable<Annotation> getTopLevelAnnotations()
          Return the element's "top level" annotations.
 boolean isAnnotated()
          Return whether the underlying JDT member is currently annotated with any recognized annotations.
 boolean isAnnotatedWithAnyOf(Iterable<String> annotationNames)
          Return whether the underlying JDT member is annotated with any of the given annotations.
 void moveAnnotation(int targetIndex, int sourceIndex, String nestableAnnotationName)
          Move the nestable annotation at the specified source index to the specified target index.
 void removeAnnotation(int index, String nestableAnnotationName)
          Remove the specified nestable annotation from the container annotation at the specified index.
 void removeAnnotation(String annotationName)
          Remove the specified top-level standalone annotation.
 
Methods inherited from interface org.eclipse.jpt.common.core.resource.java.JavaResourceNode
getFile, getJavaResourceCompilationUnit, getParent, getRoot, getTextRange
 
Methods inherited from interface org.eclipse.jpt.common.utility.model.Model
addChangeListener, addCollectionChangeListener, addListChangeListener, addPropertyChangeListener, addStateChangeListener, removeChangeListener, removeCollectionChangeListener, removeListChangeListener, removePropertyChangeListener, removeStateChangeListener
 

Field Detail

ANNOTATIONS_COLLECTION

static final String ANNOTATIONS_COLLECTION
String associated with changes to the "annotations" collection

See Also:
Constant Field Values

NESTABLE_ANNOTATIONS_COLLECTION

static final String NESTABLE_ANNOTATIONS_COLLECTION
String associated with changes to the "nestableAnnotations" collection

See Also:
Constant Field Values

IS_ANNOTATED

static final org.eclipse.jpt.common.utility.predicate.Predicate<JavaResourceAnnotatedElement> IS_ANNOTATED
Method Detail

getAnnotations

Iterable<Annotation> getAnnotations()
Return the member's top-level stand-alone annotations in the order that they appear.
Do not return duplicate annotations as this error is handled by the Java compiler.
This is only used to return top-level annotations that are not container or nestable annotations.

See Also:
getContainerAnnotation(String), getAnnotations(String)

getAnnotationsSize

int getAnnotationsSize()
Return the number of top-level stand-alone annotations. This does not include the number of container or nestable annotations

See Also:
getAnnotationsSize(String)

getAnnotation

Annotation getAnnotation(String annotationName)
Return the annotation with the specified name. Return the first if there are duplicates in the source code.
This is only used to return a top-level standalone annotation. It will not return container or nestable annotations

See Also:
getContainerAnnotation(String), getAnnotation(int, String)

getContainerAnnotation

Annotation getContainerAnnotation(String containerAnnotationName)
Return the "container" annotation with the specified name. Return the first if there are duplicates in the source code.
This is only used to return a top-level container annotations.

See Also:
getAnnotation(String), getAnnotation(int, String)

getNonNullAnnotation

Annotation getNonNullAnnotation(String annotationName)
Return the specified top-level stand-alone annotation. Return the first if there are duplicates in the source code. Do not return null, but a Null Object instead if no annotation with the specified name exists in the source code.


getAnnotations

org.eclipse.jpt.common.utility.iterable.ListIterable<NestableAnnotation> getAnnotations(String nestableAnnotationName)
Return the nestable annotations with the specified name in the order that they appear. If nestable and container annotations are both specified on the member directly, the behavior is undefined

See Also:
getAnnotations(), getContainerAnnotation(String)

getAnnotationsSize

int getAnnotationsSize(String nestableAnnotationName)
Return the number of nestable annotations with the specified name. If nestable and container annotations are both specified on the member directly, the behavior is undefined


getAnnotation

NestableAnnotation getAnnotation(int index,
                                 String nestableAnnotationName)
Return the nestable annotation at the specified index with the specified name. If nestable and container annotations are both specified on the member directly, the behavior is undefined


addAnnotation

Annotation addAnnotation(String annotationName)
Add a top-level stand-alone annotation with the specified name and return the newly-created annotation.
Do not use this to add nestable annotations or container annotations

See Also:
addAnnotation(int, String)

addAnnotation

NestableAnnotation addAnnotation(int index,
                                 String nestableAnnotationName)
Add a new nestable annotation with the specified name. Create a new container annotation if necessary and add the nestable annotation to it. If both the nestable annotation and the container annotation already exist, then add to the container annotation, leaving the existing nestable annotation alone. If only the nestable annotation exists, then create the new container annotation and move the existing nestable annotation to it along with the new one. If neither annotation exists, then create a new nestable annotation.


moveAnnotation

void moveAnnotation(int targetIndex,
                    int sourceIndex,
                    String nestableAnnotationName)
Move the nestable annotation at the specified source index to the specified target index.


removeAnnotation

void removeAnnotation(String annotationName)
Remove the specified top-level standalone annotation.
Do not use this to remove container or nestable annotations

See Also:
removeAnnotation(int, String)

removeAnnotation

void removeAnnotation(int index,
                      String nestableAnnotationName)
Remove the specified nestable annotation from the container annotation at the specified index. If there is no container, assume the index is zero and just remove the nestable annotation


getTopLevelAnnotations

Iterable<Annotation> getTopLevelAnnotations()
Return the element's "top level" annotations. For "combination" annotations (i.e. a virtual array of annotations that can be either a single standalone annotation [representing an array of length one] or an array of annotations witin a container annotation), only the container annotation is included (if it is present) or the single standalone annotation.


isAnnotated

boolean isAnnotated()
Return whether the underlying JDT member is currently annotated with any recognized annotations.


isAnnotatedWithAnyOf

boolean isAnnotatedWithAnyOf(Iterable<String> annotationNames)
Return whether the underlying JDT member is annotated with any of the given annotations.


getAstNodeType

JavaResourceAnnotatedElement.AstNodeType getAstNodeType()
Return the element's ASTNode type


getNameTextRange

TextRange getNameTextRange()
Return the text range for the member's name.


getTextRange

TextRange getTextRange(String nestableAnnotationName)
Return the text range for the nestable annotation if it is currently unnested. If it is nested, return the text range for the corresponding container annotation. This is not used for stand-alone annotations

See Also:
JavaResourceNode.getTextRange(), AnnotationProvider.getContainerAnnotationName(String)

Dali Provisional API
Release 3.2

Copyright (c) 2012 Oracle. All rights reserved.