@ -47,11 +47,12 @@ import org.springframework.lang.Nullable;
@@ -47,11 +47,12 @@ import org.springframework.lang.Nullable;
* { @code String } and { @code String [ ] } respectively to prevent potential early
* class initialization .
*
* < p > If necessary , a { @link MergedAnnotation } can be { @link # synthesize ( )
* < p > If necessary , a { @code MergedAnnotation } can be { @linkplain # synthesize ( )
* synthesized } back into an actual { @link java . lang . annotation . Annotation } .
*
* @author Phillip Webb
* @author Juergen Hoeller
* @author Sam Brannen
* @since 5 . 2
* @param < A > the annotation type
* @see MergedAnnotations
@ -66,52 +67,52 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -66,52 +67,52 @@ public interface MergedAnnotation<A extends Annotation> {
/ * *
* Return the { @code Class } reference for the actual annotation type .
* Get the { @code Class } reference for the actual annotation type .
* @return the annotation type
* /
Class < A > getType ( ) ;
/ * *
* Return if the annotation is present on the source . Considers
* { @link # isDirectlyPresent ( ) direct annotations } , and
* { @link # isMetaPresent ( ) meta - annotation } annotations within the context
* Determine if the annotation is present on the source . Considers
* { @linkplain # isDirectlyPresent ( ) directly present } and
* { @linkplain # isMetaPresent ( ) meta - present } annotations within the context
* of the { @link SearchStrategy } used .
* @return { @code true } if the annotation is present
* /
boolean isPresent ( ) ;
/ * *
* Return if the annotation is directly present on the source . A directly
* present annotation is one that the user has explicitly defin ed and not
* one that is { @link # isMetaPresent ( ) meta - present } or
* Determine if the annotation is directly present on the source . A directly
* present annotation is one that the user has explicitly declar ed and not
* one that is { @linkplain # isMetaPresent ( ) meta - present } or
* { @link Inherited @Inherited } .
* @return { @code true } if the annotation is directly present
* /
boolean isDirectlyPresent ( ) ;
/ * *
* Return if the annotation is meta - present on the source . A meta - present
* annotation is an annotation that the user hasn ' t explicitly defin ed , but
* Determine if the annotation is meta - present on the source . A meta - present
* annotation is an annotation that the user hasn ' t explicitly declar ed , but
* has been used as a meta - annotation somewhere in the annotation hierarchy .
* @return { @code true } if the annotation is meta - present
* /
boolean isMetaPresent ( ) ;
/ * *
* Return the depth of this annotation related to its use as a
* Get the depth of this annotation related to its use as a
* meta - annotation . A directly declared annotation has a depth of { @code 0 } ,
* a meta - annotation has a depth of { @code 1 } , a meta - annotation on a
* meta - annotation has a depth of { @code 2 } , etc . A { @link # missing ( )
* meta - annotation has a depth of { @code 2 } , etc . A { @linkplain # missing ( )
* missing } annotation will always return a depth of { @code - 1 } .
* @return the annotation depth or { @code - 1 } if the annotation is missing
* /
int getDepth ( ) ;
/ * *
* Return the index of the aggregate collection containing this annotation .
* Get the index of the aggregate collection containing this annotation .
* Can be used to reorder a stream of annotations , for example , to give a
* higher priority to annotations declared on a superclass or interface . A
* { @link # missing ( ) missing } annotation will always return an aggregate
* { @linkplain # missing ( ) missing } annotation will always return an aggregate
* index of { @code - 1 } .
* @return the aggregate index ( starting at { @code 0 } ) or { @code - 1 } if the
* annotation is missing
@ -119,7 +120,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -119,7 +120,7 @@ public interface MergedAnnotation<A extends Annotation> {
int getAggregateIndex ( ) ;
/ * *
* Return the source that ultimately declared the annotation , or
* Get the source that ultimately declared the annotation , or
* { @code null } if the source is not known . If this merged annotation was
* created { @link MergedAnnotations # from ( java . lang . reflect . AnnotatedElement )
* from } an { @link AnnotatedElement } then this source will be an element of
@ -132,15 +133,15 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -132,15 +133,15 @@ public interface MergedAnnotation<A extends Annotation> {
Object getSource ( ) ;
/ * *
* Return the parent of the meta - annotation , or { @code null } if the
* annotation is not { @link # isMetaPresent ( ) meta - present } .
* Get the parent of the meta - annotation , or { @code null } if the
* annotation is not { @linkplain # isMetaPresent ( ) meta - present } .
* @return the parent annotation or { @code null }
* /
@Nullable
MergedAnnotation < ? > getParent ( ) ;
/ * *
* Return if the specified attribute name as a non - default value when
* Determine if the specified attribute name h as a non - default value when
* compared to the annotation declaration .
* @param attributeName the attribute name
* @return { @code true } if the attribute value is different from the default
@ -149,7 +150,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -149,7 +150,7 @@ public interface MergedAnnotation<A extends Annotation> {
boolean hasNonDefaultValue ( String attributeName ) ;
/ * *
* Return if the specified attribute name as a default value when compared
* Determine if the specified attribute name h as a default value when compared
* to the annotation declaration .
* @param attributeName the attribute name
* @return { @code true } if the attribute value is the same as the default
@ -158,7 +159,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -158,7 +159,7 @@ public interface MergedAnnotation<A extends Annotation> {
boolean hasDefaultValue ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required byte attribute value from the annotation .
* Get a required byte attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a byte
* @throws NoSuchElementException if there is no matching attribute
@ -166,7 +167,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -166,7 +167,7 @@ public interface MergedAnnotation<A extends Annotation> {
byte getByte ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required byte array attribute value from the annotation .
* Get a required byte array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a byte array
* @throws NoSuchElementException if there is no matching attribute
@ -174,7 +175,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -174,7 +175,7 @@ public interface MergedAnnotation<A extends Annotation> {
byte [ ] getByteArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required boolean attribute value from the annotation .
* Get a required boolean attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a boolean
* @throws NoSuchElementException if there is no matching attribute
@ -182,7 +183,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -182,7 +183,7 @@ public interface MergedAnnotation<A extends Annotation> {
boolean getBoolean ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required boolean array attribute value from the annotation .
* Get a required boolean array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a boolean array
* @throws NoSuchElementException if there is no matching attribute
@ -190,7 +191,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -190,7 +191,7 @@ public interface MergedAnnotation<A extends Annotation> {
boolean [ ] getBooleanArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required char attribute value from the annotation .
* Get a required char attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a char
* @throws NoSuchElementException if there is no matching attribute
@ -198,7 +199,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -198,7 +199,7 @@ public interface MergedAnnotation<A extends Annotation> {
char getChar ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required char array attribute value from the annotation .
* Get a required char array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a char array
* @throws NoSuchElementException if there is no matching attribute
@ -206,7 +207,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -206,7 +207,7 @@ public interface MergedAnnotation<A extends Annotation> {
char [ ] getCharArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required short attribute value from the annotation .
* Get a required short attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a short
* @throws NoSuchElementException if there is no matching attribute
@ -214,7 +215,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -214,7 +215,7 @@ public interface MergedAnnotation<A extends Annotation> {
short getShort ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required short array attribute value from the annotation .
* Get a required short array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a short array
* @throws NoSuchElementException if there is no matching attribute
@ -222,7 +223,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -222,7 +223,7 @@ public interface MergedAnnotation<A extends Annotation> {
short [ ] getShortArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required int attribute value from the annotation .
* Get a required int attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as an int
* @throws NoSuchElementException if there is no matching attribute
@ -230,7 +231,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -230,7 +231,7 @@ public interface MergedAnnotation<A extends Annotation> {
int getInt ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required int array attribute value from the annotation .
* Get a required int array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as an int array
* @throws NoSuchElementException if there is no matching attribute
@ -238,7 +239,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -238,7 +239,7 @@ public interface MergedAnnotation<A extends Annotation> {
int [ ] getIntArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required long attribute value from the annotation .
* Get a required long attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a long
* @throws NoSuchElementException if there is no matching attribute
@ -246,7 +247,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -246,7 +247,7 @@ public interface MergedAnnotation<A extends Annotation> {
long getLong ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required long array attribute value from the annotation .
* Get a required long array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a long array
* @throws NoSuchElementException if there is no matching attribute
@ -254,7 +255,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -254,7 +255,7 @@ public interface MergedAnnotation<A extends Annotation> {
long [ ] getLongArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required double attribute value from the annotation .
* Get a required double attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a double
* @throws NoSuchElementException if there is no matching attribute
@ -262,7 +263,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -262,7 +263,7 @@ public interface MergedAnnotation<A extends Annotation> {
double getDouble ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required double array attribute value from the annotation .
* Get a required double array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a double array
* @throws NoSuchElementException if there is no matching attribute
@ -270,7 +271,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -270,7 +271,7 @@ public interface MergedAnnotation<A extends Annotation> {
double [ ] getDoubleArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required float attribute value from the annotation .
* Get a required float attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a float
* @throws NoSuchElementException if there is no matching attribute
@ -278,7 +279,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -278,7 +279,7 @@ public interface MergedAnnotation<A extends Annotation> {
float getFloat ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required float array attribute value from the annotation .
* Get a required float array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a float array
* @throws NoSuchElementException if there is no matching attribute
@ -286,7 +287,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -286,7 +287,7 @@ public interface MergedAnnotation<A extends Annotation> {
float [ ] getFloatArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required string attribute value from the annotation .
* Get a required string attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a string
* @throws NoSuchElementException if there is no matching attribute
@ -294,7 +295,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -294,7 +295,7 @@ public interface MergedAnnotation<A extends Annotation> {
String getString ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required string array attribute value from the annotation .
* Get a required string array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a string array
* @throws NoSuchElementException if there is no matching attribute
@ -302,7 +303,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -302,7 +303,7 @@ public interface MergedAnnotation<A extends Annotation> {
String [ ] getStringArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required class attribute value from the annotation .
* Get a required class attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a class
* @throws NoSuchElementException if there is no matching attribute
@ -310,7 +311,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -310,7 +311,7 @@ public interface MergedAnnotation<A extends Annotation> {
Class < ? > getClass ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required class array attribute value from the annotation .
* Get a required class array attribute value from the annotation .
* @param attributeName the attribute name
* @return the value as a class array
* @throws NoSuchElementException if there is no matching attribute
@ -318,7 +319,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -318,7 +319,7 @@ public interface MergedAnnotation<A extends Annotation> {
Class < ? > [ ] getClassArray ( String attributeName ) throws NoSuchElementException ;
/ * *
* Return a required enum attribute value from the annotation .
* Get a required enum attribute value from the annotation .
* @param attributeName the attribute name
* @param type the enum type
* @return the value as a enum
@ -327,7 +328,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -327,7 +328,7 @@ public interface MergedAnnotation<A extends Annotation> {
< E extends Enum < E > > E getEnum ( String attributeName , Class < E > type ) throws NoSuchElementException ;
/ * *
* Return a required enum array attribute value from the annotation .
* Get a required enum array attribute value from the annotation .
* @param attributeName the attribute name
* @param type the enum type
* @return the value as a enum array
@ -336,7 +337,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -336,7 +337,7 @@ public interface MergedAnnotation<A extends Annotation> {
< E extends Enum < E > > E [ ] getEnumArray ( String attributeName , Class < E > type ) throws NoSuchElementException ;
/ * *
* Return a required annotation attribute value from the annotation .
* Get a required annotation attribute value from the annotation .
* @param attributeName the attribute name
* @param type the annotation type
* @return the value as a { @link MergedAnnotation }
@ -346,7 +347,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -346,7 +347,7 @@ public interface MergedAnnotation<A extends Annotation> {
throws NoSuchElementException ;
/ * *
* Return a required annotation array attribute value from the annotation .
* Get a required annotation array attribute value from the annotation .
* @param attributeName the attribute name
* @param type the annotation type
* @return the value as a { @link MergedAnnotation } array
@ -356,7 +357,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -356,7 +357,7 @@ public interface MergedAnnotation<A extends Annotation> {
throws NoSuchElementException ;
/ * *
* Return an optional attribute value from the annotation .
* Get an optional attribute value from the annotation .
* @param attributeName the attribute name
* @return an optional value or { @link Optional # empty ( ) } if there is no
* matching attribute
@ -364,7 +365,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -364,7 +365,7 @@ public interface MergedAnnotation<A extends Annotation> {
Optional < Object > getValue ( String attributeName ) ;
/ * *
* Return an optional attribute value from the annotation .
* Get an optional attribute value from the annotation .
* @param attributeName the attribute name
* @param type the attribute type . Must be compatible with the underlying
* attribute type or { @code Object . class } .
@ -374,7 +375,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -374,7 +375,7 @@ public interface MergedAnnotation<A extends Annotation> {
< T > Optional < T > getValue ( String attributeName , Class < T > type ) ;
/ * *
* Return the default attribute value from the annotation as specified in
* Get the default attribute value from the annotation as specified in
* the annotation declaration .
* @param attributeName the attribute name
* @return an optional of the default value or { @link Optional # empty ( ) } if
@ -383,7 +384,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -383,7 +384,7 @@ public interface MergedAnnotation<A extends Annotation> {
Optional < Object > getDefaultValue ( String attributeName ) ;
/ * *
* Return the default attribute value from the annotation as specified in
* Get the default attribute value from the annotation as specified in
* the annotation declaration .
* @param attributeName the attribute name
* @param type the attribute type . Must be compatible with the underlying
@ -394,7 +395,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -394,7 +395,7 @@ public interface MergedAnnotation<A extends Annotation> {
< T > Optional < T > getDefaultValue ( String attributeName , Class < T > type ) ;
/ * *
* Return a new view of the annotation with all attributes that have default
* Create a new view of the annotation with all attributes that have default
* values removed .
* @return a filtered view of the annotation without any attributes that
* have a default value
@ -403,7 +404,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -403,7 +404,7 @@ public interface MergedAnnotation<A extends Annotation> {
MergedAnnotation < A > filterDefaultValues ( ) ;
/ * *
* Return a new view of the annotation with only attributes that match the
* Create a new view of the annotation with only attributes that match the
* given predicate .
* @param predicate a predicate used to filter attribute names
* @return a filtered view of the annotation
@ -413,24 +414,24 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -413,24 +414,24 @@ public interface MergedAnnotation<A extends Annotation> {
MergedAnnotation < A > filterAttributes ( Predicate < String > predicate ) ;
/ * *
* Return a new view of the annotation that exposes non - merged attribute values .
* Methods from this view will return attribute values with only alias mirroring
* Create a new view of the annotation that exposes non - merged attribute values .
* < p > Methods from this view will return attribute values with only alias mirroring
* rules applied . Aliases to parent attributes will not be applied .
* @return a non - merged view of the annotation
* /
MergedAnnotation < A > withNonMergedAttributes ( ) ;
/ * *
* Return an immutable { @link Map } that contains all the annotation attributes .
* The { @link MapValues } options may be used to change the way that values are added .
* Create an immutable { @link Map } that contains all the annotation attributes .
* < p > The { @link MapValues options } may be used to change the way that values are added .
* @param options map value options
* @return an immutable map containing the attributes and values
* /
Map < String , Object > asMap ( MapValues . . . options ) ;
/ * *
* Return a { @link Map } of the given type that contains all the annotation attributes .
* The { @link MapValues } options may be used to change the way that values are added .
* Create a { @link Map } of the given type that contains all the annotation attributes .
* < p > The { @link MapValues options } may be used to change the way that values are added .
* @param factory a map factory
* @param options map value options
* @return a map containing the attributes and values
@ -438,18 +439,20 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -438,18 +439,20 @@ public interface MergedAnnotation<A extends Annotation> {
< T extends Map < String , Object > > T asMap ( Function < MergedAnnotation < ? > , T > factory , MapValues . . . options ) ;
/ * *
* Return a type - safe synthesized version of this annotation that can be
* used directly in code . The result is synthesized using a JDK { @link Proxy }
* and as a result may incur a computational cost when first invoked .
* Create a type - safe synthesized version of this annotation that can be
* used directly in code .
* < p > The result is synthesized using a JDK { @link Proxy } and as a result may
* incur a computational cost when first invoked .
* @return a synthesized version of the annotation .
* @throws NoSuchElementException on a missing annotation
* /
A synthesize ( ) throws NoSuchElementException ;
/ * *
* Optionally return type - safe synthesized version of this annotation based
* on a condition predicate . The result is synthesized using a JDK { @link Proxy }
* and as a result may incur a computational cost when first invoked .
* Optionally create a type - safe synthesized version of this annotation based
* on a condition predicate .
* < p > The result is synthesized using a JDK { @link Proxy } and as a result may
* incur a computational cost when first invoked .
* @param condition the test to determine if the annotation can be synthesized
* @return a optional containing the synthesized version of the annotation or
* an empty optional if the condition doesn ' t match
@ -460,7 +463,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -460,7 +463,7 @@ public interface MergedAnnotation<A extends Annotation> {
/ * *
* Return an { @link MergedAnnotation } that represents a missing annotation
* Create a { @link MergedAnnotation } that represents a missing annotation
* ( i . e . one that is not present ) .
* @return an instance representing a missing annotation
* /
@ -479,11 +482,11 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -479,11 +482,11 @@ public interface MergedAnnotation<A extends Annotation> {
}
/ * *
* Create a new { @link MergedAnnotations } instance from the specified
* Create a new { @link MergedAnnotation } instance from the specified
* annotation .
* @param source the source for the annotation . This source is used only for
* information and logging . It does not need to < em > actually < / em > contain
* the specified annotations and it will not be searched .
* the specified annotations , and it will not be searched .
* @param annotation the annotation to include
* @return a { @link MergedAnnotation } instance for the annotation
* /
@ -492,9 +495,9 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -492,9 +495,9 @@ public interface MergedAnnotation<A extends Annotation> {
}
/ * *
* Create a new { @link MergedAnnotations } instance from the specified
* Create a new { @link MergedAnnotation } instance from the specified
* annotation type . The resulting annotation will not have any attribute
* values , but may still be used to query default values .
* values but may still be used to query default values .
* @param annotationType the annotation type
* @return a { @link MergedAnnotation } instance for the annotation
* /
@ -503,8 +506,8 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -503,8 +506,8 @@ public interface MergedAnnotation<A extends Annotation> {
}
/ * *
* Create a new { @link MergedAnnotations } instance from the specified
* annotation type and attributes maps .
* Create a new { @link MergedAnnotation } instance from the specified
* annotation type and attributes map .
* @param annotationType the annotation type
* @param attributes the annotation attributes or { @code null } if just default
* values should be used
@ -518,8 +521,8 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -518,8 +521,8 @@ public interface MergedAnnotation<A extends Annotation> {
}
/ * *
* Create a new { @link MergedAnnotations } instance from the specified
* annotation type and attributes maps .
* Create a new { @link MergedAnnotation } instance from the specified
* annotation type and attributes map .
* @param source the source for the annotation . This source is used only for
* information and logging . It does not need to < em > actually < / em > contain
* the specified annotations and it will not be searched .
@ -537,7 +540,7 @@ public interface MergedAnnotation<A extends Annotation> {
@@ -537,7 +540,7 @@ public interface MergedAnnotation<A extends Annotation> {
/ * *
* Options that effect the way map values are
* { @link MergedAnnotation # asMap ( MapValues . . . ) converted } .
* { @linkplain MergedAnnotation # asMap ( MapValues . . . ) converted } .
* /
enum MapValues {