package org.aplikator.client.shared.rpc.marshaller; import static org.aplikator.client.shared.rpc.marshaller.DemarshallingUtils.clientDescriptorBaseUnMarshall; import org.aplikator.client.shared.descriptor.ActionDTO; 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.EJObject; import org.jboss.errai.marshalling.client.api.json.EJValue; import org.jboss.errai.marshalling.client.marshallers.AbstractNullableMarshaller; /** * ActionDTO marshaller * * @author pavels */ @ClientMarshaller(ActionDTO.class) @ServerMarshaller(ActionDTO.class) public class ActionDTOMarshaller extends AbstractNullableMarshaller<ActionDTO> { /*@Override public Class<ActionDTO> getTypeHandled() { return ActionDTO.class; }*/ @Override public ActionDTO[] getEmptyArray() { return new ActionDTO[0]; } @Override public ActionDTO doNotNullDemarshall(EJValue o, MarshallingSession ctx) { if (o.isObject() != null) { EJObject object = o.isObject(); ActionDTO adto = new ActionDTO(); clientDescriptorBaseUnMarshall(object, adto); adto.setToken(object.get("token").isString().stringValue()); return adto; } else return null; } @Override public String doNotNullMarshall(ActionDTO o, MarshallingSession ctx) { StringBuilder builder = new StringBuilder("{"); MarshallingUtils.clientDescriptorBase(builder, o).append(','); MarshallingUtils.string("token", o.getToken(), builder); builder.append("}"); return builder.toString(); } }