package org.aplikator.client.shared.rpc.marshaller;
import org.aplikator.client.shared.descriptor.WidgetDTO;
import org.aplikator.client.shared.rpc.marshaller.WidgetMarshallingUtils.WidgetType;
import org.jboss.errai.marshalling.client.api.MarshallingSession;
import org.jboss.errai.marshalling.client.api.annotations.ClientMarshaller;
import org.jboss.errai.marshalling.client.api.annotations.ServerMarshaller;
import org.jboss.errai.marshalling.client.api.json.EJValue;
import org.jboss.errai.marshalling.client.marshallers.AbstractNullableMarshaller;
@ClientMarshaller(WidgetDTO.class)
@ServerMarshaller(WidgetDTO.class)
public class WidgetDTOMarshaller extends AbstractNullableMarshaller<WidgetDTO> {
/*@Override
public Class<WidgetDTO> getTypeHandled() {
return WidgetDTO.class;
}*/
@Override
public WidgetDTO[] getEmptyArray() {
return new WidgetDTO[0];
}
@Override
public WidgetDTO doNotNullDemarshall(EJValue o, MarshallingSession ctx) {
WidgetType lookup = WidgetMarshallingUtils.WidgetType.lookup(o);
if (lookup != null) {
return lookup.demarshall(o, ctx);
} else
return null;
}
@Override
public String doNotNullMarshall(WidgetDTO o, MarshallingSession ctx) {
WidgetType lookup = WidgetMarshallingUtils.WidgetType.lookup(o);
if (lookup != null) {
String marshalled = lookup.marshall(new StringBuilder(), o, ctx).toString();
return marshalled;
} else
return null;
}
}