-
Notifications
You must be signed in to change notification settings - Fork 41
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