|
Re: [MOXy] Mapping element to boolean field [message #504427 is a reply to message #504386] |
Fri, 18 December 2009 21:33 |
|
You caught me on the way out the door for the holidays. The following is close to what you could do:
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.converters.Converter;
import org.eclipse.persistence.oxm.XMLDescriptor;
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
import org.eclipse.persistence.oxm.mappings.nullpolicy.NullPolicy;
import org.eclipse.persistence.sessions.Project;
import org.eclipse.persistence.sessions.Session;
public class CustomerProject extends Project {
public CustomerProject() {
this.addDescriptor(getCustomerDescriptor());
}
private XMLDescriptor getCustomerDescriptor() {
XMLDescriptor xmlDescriptor = new XMLDescriptor();
xmlDescriptor.setJavaClass(Customer.class);
xmlDescriptor.setDefaultRootElement("customer");
XMLDirectMapping booleanPropertyMapping = new XMLDirectMapping();
booleanPropertyMapping.setAttributeName("fullTime");
booleanPropertyMapping.setXPath("full-time");
NullPolicy nullPolicy = new NullPolicy();
nullPolicy.setSetPerformedForAbsentNode(false);
booleanPropertyMapping.setNullPolicy(nullPolicy);
booleanPropertyMapping.setConverter(new BooleanConverter());
xmlDescriptor.addMapping(booleanPropertyMapping);
return xmlDescriptor;
}
private static class BooleanConverter implements Converter {
public Object convertDataValueToObjectValue(Object dataValue, Session session) {
return true;
}
public Object convertObjectValueToDataValue(Object objectValue, Session session) {
if(objectValue.equals(true)) {
return "";
} else {
return null;
}
}
public void initialize(DatabaseMapping mapping, Session session) {
// TODO Auto-generated method stub
}
public boolean isMutable() {
// TODO Auto-generated method stub
return false;
}
}
}
-Blaise
|
|
|
|
Powered by
FUDForum. Page generated in 0.02800 seconds