Dozer: Unterschied zwischen den Versionen
Jochen (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Mapping des Typs Boolean == Dozer hat ein Problem beim Mapping von Java Fields des Typs Boolean. Das Mapping funktioniert in diesem Falle nur, wenn die Get…“) |
Jochen (Diskussion | Beiträge) |
||
| Zeile 1: | Zeile 1: | ||
__TOC__ | |||
== Mapping des Typs Boolean == | == Mapping des Typs Boolean == | ||
Version vom 29. September 2016, 07:43 Uhr
Mapping des Typs Boolean
Dozer hat ein Problem beim Mapping von Java Fields des Typs Boolean. Das Mapping funktioniert in diesem Falle nur, wenn die Getter-Methode mit “get” beginnt (z.B. Boolean getValue()). Beginnt die Getter-Methode mit “is” (z.B. Boolean isValue()), so findet Dozer diese Methode nicht automatisch. Dieses Verhalten tritt lediglich für den Typ Boolean auf. Das Mapping des Typs boolean hingegen funktioniert problemlos. Hier findet Dozer wahlweise die get-Methode als auch die is-Methode. D.h. für den Typ boolean ist es egal, ob man eine get- oder eine is-Methode verwendet.
Soll Dozer dennoch mit is-Methoden verwendet werden, welche den Typ Boolean zurückliefern, so muss dies in der XML-Mapping-Datei explizit spezifiziert werden.
<mapping map-id="customer">
<class-a>...</class-a>
<class-b>...</class-b>
<field>
<a get-method=”isValue”>value</a>
<b>value</b>
</field>
</mapping>
Custom Converter mit Parametern
Custom Converter können im Konstruktor Parameter enthalten. Damit kann das Verhalten eines Custom Converter parametrisiert werden. Hierzu muss der Converter jedoch auf eine besondere Art und Weise erzeugt werden.
/**
* Create a specialized Dozer mapper for the mapping of service times.
*
* @param loginCredentials
* The login credentials.
* @return The specialized Dozer mapper.
*/
private static DozerBeanMapper createServiceTimeMapper(LoginCredentials loginCredentials)
{
// Create a specialized dozer bean mapper.
DozerBeanMapper mapper = new DozerBeanMapper(Arrays.asList(MasterDataDozerSingleton.DOZER_MAPPING_FILE));
List<CustomConverter> customerConverters = new ArrayList<CustomConverter>();
customerConverters.add(new ServiceTimeConverter(loginCredentials));
mapper.setCustomConverters(customerConverters);
return mapper;
}
Zusätzlich muss der Custom Converter im Dozer XML File enthalten sein.