public class UnitsRelationsTools extends Object
Constructor and Description |
---|
UnitsRelationsTools() |
Modifier and Type | Method and Description |
---|---|
static @Nullable AnnotationMirror |
buildAnnoMirrorWithDefaultPrefix(ProcessingEnvironment env,
Class<? extends Annotation> annoClass)
Creates an AnnotationMirror representing a unit defined by annoClass, with the default Prefix
of
Prefix.one . |
static @Nullable AnnotationMirror |
buildAnnoMirrorWithNoPrefix(ProcessingEnvironment env,
CharSequence annoClass)
Creates an AnnotationMirror representing a unit defined by annoClass, with no prefix.
|
static @Nullable AnnotationMirror |
buildAnnoMirrorWithSpecificPrefix(ProcessingEnvironment env,
CharSequence annoClass,
Prefix p)
Creates an AnnotationMirror representing a unit defined by annoClass, with the specific
Prefix p.
|
static @Nullable AnnotationMirror |
buildAnnoMirrorWithSpecificPrefix(ProcessingEnvironment env,
Class<? extends Annotation> annoClass,
Prefix p)
Creates an AnnotationMirror representing a unit defined by annoClass, with the specific
Prefix p.
|
static @Nullable Prefix |
getPrefix(AnnotatedTypeMirror annoType)
Retrieves the SI Prefix of an Annotated Type.
|
static @Nullable Prefix |
getPrefix(AnnotationMirror unitsAnnotation)
Retrieves the SI Prefix of an Annotation.
|
static boolean |
hasNoPrefix(AnnotatedTypeMirror annoType)
Checks to see if an Annotated Type has no prefix.
|
static boolean |
hasNoPrefix(AnnotationMirror unitsAnnotation)
Checks to see if an Annotation has no prefix (ie, no value element).
|
static boolean |
hasNoUnits(AnnotatedTypeMirror annoType)
Checks to see if a particular Annotated Type has no units, such as scalar constants in
calculations.
|
static boolean |
hasSpecificUnit(AnnotatedTypeMirror annoType,
AnnotationMirror unitsAnnotation)
Checks to see if a particular Annotated Type has a specific unit (represented by its
Annotation).
|
static boolean |
hasSpecificUnitIgnoringPrefix(AnnotatedTypeMirror annoType,
AnnotationMirror unitsAnnotation)
Checks to see if a particular Annotated Type has a particular base unit (represented by its
Annotation).
|
static AnnotatedTypeMirror |
removePrefix(Elements elements,
AnnotatedTypeMirror annoType)
Removes the Prefix value from an Annotated Type, by constructing and returning a copy of the
Annotated Type without the prefix.
|
static @Nullable AnnotationMirror |
removePrefix(Elements elements,
AnnotationMirror unitsAnnotation)
Removes the prefix value from an Annotation, by constructing and returning a copy of its base
SI unit's Annotation.
|
public static @Nullable AnnotationMirror buildAnnoMirrorWithSpecificPrefix(ProcessingEnvironment env, CharSequence annoClass, Prefix p)
env
- the Checker Processing Environment, provided as a parameter in init() of a
UnitsRelations implementationannoClass
- the fully-qualified name of an Annotation representing a Unit (eg m.class
for meters)p
- a Prefix valuepublic static @Nullable AnnotationMirror buildAnnoMirrorWithNoPrefix(ProcessingEnvironment env, CharSequence annoClass)
env
- checker Processing Environment, provided as a parameter in init() of a
UnitsRelations implementationannoClass
- the getElementValueClassname of an Annotation representing a Unit (eg
m.class for meters)public static @Nullable Prefix getPrefix(AnnotatedTypeMirror annoType)
annoType
- an AnnotatedTypeMirror representing a Units Annotated Typepublic static @Nullable Prefix getPrefix(AnnotationMirror unitsAnnotation)
unitsAnnotation
- an AnnotationMirror representing a Units Annotationpublic static boolean hasNoPrefix(AnnotatedTypeMirror annoType)
annoType
- an AnnotatedTypeMirror representing a Units Annotated Typepublic static boolean hasNoPrefix(AnnotationMirror unitsAnnotation)
unitsAnnotation
- an AnnotationMirror representing a Units Annotationpublic static @Nullable AnnotationMirror removePrefix(Elements elements, AnnotationMirror unitsAnnotation)
elements
- the Element Utilities from a checker's processing environment, typically
obtained by calling env.getElementUtils() in init() of a Units Relations implementationunitsAnnotation
- an AnnotationMirror representing a Units Annotationpublic static AnnotatedTypeMirror removePrefix(Elements elements, AnnotatedTypeMirror annoType)
elements
- the Element Utilities from a checker's processing environment, typically
obtained by calling env.getElementUtils() in init() of a Units Relations implementationannoType
- an AnnotatedTypeMirror representing a Units Annotated Typepublic static boolean hasNoUnits(AnnotatedTypeMirror annoType)
Any number that isn't assigned a unit will automatically get the Annotation UnknownUnits. eg: int x = 5; // x has @UnknownUnits
annoType
- an AnnotatedTypeMirror representing a Units Annotated Typepublic static boolean hasSpecificUnit(AnnotatedTypeMirror annoType, AnnotationMirror unitsAnnotation)
annoType
- an AnnotatedTypeMirror representing a Units Annotated TypeunitsAnnotation
- an AnnotationMirror representing a Units Annotation of a specific unitpublic static boolean hasSpecificUnitIgnoringPrefix(AnnotatedTypeMirror annoType, AnnotationMirror unitsAnnotation)
annoType
- an AnnotatedTypeMirror representing a Units Annotated TypeunitsAnnotation
- an AnnotationMirror representing a Units Annotation of the base unitpublic static @Nullable AnnotationMirror buildAnnoMirrorWithSpecificPrefix(ProcessingEnvironment env, Class<? extends Annotation> annoClass, Prefix p)
This interface is intended only for subclasses of UnitsRelations; other clients should use
buildAnnoMirrorWithSpecificPrefix(ProcessingEnvironment, CharSequence, Prefix)
env
- the Checker Processing Environment, provided as a parameter in init() of a
UnitsRelations implementationannoClass
- the Class of an Annotation representing a Unit (eg m.class for meters)p
- a Prefix valuepublic static @Nullable AnnotationMirror buildAnnoMirrorWithDefaultPrefix(ProcessingEnvironment env, Class<? extends Annotation> annoClass)
Prefix.one
.
This interface is intended only for subclasses of UnitsRelations; other clients should not use it.
env
- the Checker Processing Environment, provided as a parameter in init() of a
UnitsRelations implementationannoClass
- the Class of an Annotation representing a Unit (eg m.class for meters)