Annotation Interface Swap
ObjectSwap and Surrogate classes with POJOs and bean properties.
 Can be used in the following locations:
- Classes.
- Bean getters/setters/fields.
- @Rest -annotated classes and- @RestOp -annotated methods when an- on()value is specified.
See Also:
- 
Optional Element SummaryOptional ElementsModifier and TypeOptional ElementDescriptionString[]Optional description for the exposed API.Class<?>TheObjectSwapandSurrogateclass.String[]Identifies the media types that this swap is applicable for.String[]Dynamically apply this annotation to the specified classes/methods/fields.Class<?>[]Dynamically apply this annotation to the specified classes.Identifies a template string along with this swap.Class<?>TheObjectSwapandSurrogateclass.
- 
Element Details- 
descriptionOptional description for the exposed API.- Returns:
- The annotation value.
- Since:
- 9.2.0
 - Default:
- {}
 
- 
impl- Returns:
- The annotation value.
 - Default:
- void.class
 
- 
mediaTypesIdentifies the media types that this swap is applicable for.In the following example, the swap is only invoked by the JSON serializer: @Swap (impl=ToStringSwap.class , mediaTypes="*/json" )public class MyBean { ... }public class ToStringSwapextends ObjectSwap<Object,String> {public String swap(BeanSessionsession , Objectvalue )throws Exception {return value .toString(); } }See Also:- Returns:
- The annotation value.
 - Default:
- {}
 
- 
onDynamically apply this annotation to the specified classes/methods/fields.Used in conjunction with BeanContext.Builder.applyAnnotations(Class...)to dynamically apply an annotation to an existing class. It is ignored when the annotation is applied directly to classes.Valid patterns:- Classes:
      - Fully qualified:
            - "com.foo.MyClass" 
 
- Fully qualified inner class:
            - "com.foo.MyClass$Inner1$Inner2" 
 
- Simple:
            - "MyClass" 
 
- Simple inner:
            - "MyClass$Inner1$Inner2" 
- "Inner1$Inner2" 
- "Inner2" 
 
 
- Fully qualified:
            
- Methods:
      - Fully qualified with args:
            - "com.foo.MyClass.myMethod(String,int)" 
- "com.foo.MyClass.myMethod(java.lang.String,int)" 
- "com.foo.MyClass.myMethod()" 
 
- Fully qualified:
            - "com.foo.MyClass.myMethod" 
 
- Simple with args:
            - "MyClass.myMethod(String,int)" 
- "MyClass.myMethod(java.lang.String,int)" 
- "MyClass.myMethod()" 
 
- Simple:
            - "MyClass.myMethod" 
 
- Simple inner class:
            - "MyClass$Inner1$Inner2.myMethod" 
- "Inner1$Inner2.myMethod" 
- "Inner2.myMethod" 
 
 
- Fully qualified with args:
            
- Fields:
      - Fully qualified:
            - "com.foo.MyClass.myField" 
 
- Simple:
            - "MyClass.myField" 
 
- Simple inner class:
            - "MyClass$Inner1$Inner2.myField" 
- "Inner1$Inner2.myField" 
- "Inner2.myField" 
 
 
- Fully qualified:
            
- A comma-delimited list of anything on this list.
 See Also:- Returns:
- The annotation value.
 - Default:
- {}
 
- Classes:
      
- 
onClassDynamically apply this annotation to the specified classes.Identical to on()except allows you to specify class objects instead of a strings.See Also:- Returns:
- The annotation value.
 - Default:
- {}
 
- 
templateIdentifies a template string along with this swap.Template strings are arbitrary strings associated with swaps that help provide additional context information for the swap class. They're called 'templates' because their primary purpose is for providing template names, such as Apache FreeMarker template names. The following is an example of a templated swap class used to serialize POJOs to HTML using FreeMarker: // Our templated swap class. public class FreeMarkerSwapextends ObjectSwap<Object,Reader> {public MediaType[] forMediaTypes() {return MediaType.forStrings ("*/html" ); }public Reader swap(BeanSessionsession , Objectvalue , Stringtemplate )throws Exception {return getFreeMarkerReader (template ,value );// Some method that creates raw HTML. } }@Swap (impl=FreeMarkerSwap.class , template="MyPojo.div.ftl" )public class MyPojo {}See Also:- Returns:
- The annotation value.
 - Default:
- ""
 
- 
value- Returns:
- The annotation value.
 - Default:
- void.class
 
 
-