- 
                Notifications
    You must be signed in to change notification settings 
- Fork 40
inheritance examples
        avurro edited this page Aug 5, 2015 
        ·
        2 revisions
      
    With JMapper you can apply inheritance to configurations and conversions. The purpose is to share the configurations/conversions that are common between more beans.
When you have a complex hierarchy, where there are two or more level of inheritance, it is useful configure the common fields just one time.
Annotation example:
class Item {
   @JMap String id;
   @JMap String description;
   // getters and setters..
}
class Eggs extends Item {         class Detergents extends Item {
   @JMap Date expirationDate;        @JMap Integer cl;
 
   // getter and setter              // getter and setter    
}                                 }
XML example:
<jmapper>
   <class name="package.Item">
      <attribute name="id">
         <value name="id"/>
      </attribute>
      <attribute name ="description">
         <value name="description"/>
      </attribute>
   </class>
   <class name="package.Eggs">
      <attribute name ="expirationDate">
         <value name="expirationDate"/>
      </attribute>
   </class>
   <class name="package.Detergents">
      <attribute name ="cl">
         <value name="cl"/>
      </attribute>
   </class>
</jmapper>
The same logic can be applied for the conversions definition.
Annotation example:
class Item {
   @JMap String id;
   @JMap String description;
   @JMapConversion(from="description")
   public String conversion(String description){
      return description + " information added";
   }
   // getters and setters..
}
class Eggs extends Item {         class Detergents extends Item {
   @JMap Date expirationDate;        @JMap Integer cl;
 
                                     @JMapConversion(from="cl")
                                     public String conversion(Integer cl){
                                        if(cl <=750) return "small package";
                                        if(cl >=1500) return "large package";
                                        return "normal package";
   }
   // getter and setter              // getter and setter    
}                                 }
XML example:
<jmapper>
   <class name="package.Item">
      <attribute name="id">
         <value name="id"/>
      </attribute>
      <attribute name ="description">
         <value name="description"/>
      </attribute>
      <conversion name="fromDescription" from="description">
         return ${source} + " information added";
      </conversion>
   </class>
   <class name="package.Eggs">
      <attribute name ="expirationDate">
         <value name="expirationDate"/>
      </attribute>
   </class>
   <class name="package.Detergents">
      <attribute name ="cl">
         <value name="cl"/>
      </attribute>
      <conversion name="fromCl" from="cl">
         if(${source}<=750) return "small package";
         if(${source}>=1500) return "large package";
         return "normal package";
      </conversion>
   </class>
</jmapper>
© 2016 Alessandro Vurro
- Home
- How to map
- Relations
- Conversions
- creation/enrichment
- XML
- Annotation
- API
- Configurations
- Utilities
- Examples
- Articles
- More information
- Performance tests
- Release Notes