GroupDetailsConverter.java
package sk.iway.iwcm.doc;
import sk.iway.iwcm.Logger;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
/**
* Konvertuje databazovy typ int groupId na GroupDetails objekt a naopak, priklad pouzitia:
*
* @Column(name = "group_id")
* @Convert(converter = GroupDetailsConverter.class)
* private GroupDetails parentGroup;
*
* v databaze sa ulozi hodnota groupId ale na FE bude dostupny GroupDetails objekt
*/
@Converter
public class GroupDetailsConverter implements AttributeConverter<GroupDetails, Integer> {
@Override
public Integer convertToDatabaseColumn(GroupDetails group) {
//podmienka >0 je aby fungovala anotacia @NotNull na entite
if (group != null && group.getGroupId()>0) return Integer.valueOf(group.getGroupId());
return null;
}
@Override
public GroupDetails convertToEntityAttribute(Integer groupId) {
if (groupId != null) {
GroupsDB groupsDB = GroupsDB.getInstance();
GroupDetails group = groupsDB.getGroup(groupId.intValue());
if (group != null) {
try {
GroupDetails cloned = (GroupDetails)group.clone();
return cloned;
} catch (CloneNotSupportedException e) {
Logger.error(GroupDetailsConverter.class, e);
}
}
}
return null;
}
}