package org.aplikator.client.shared.rpc.marshaller; import org.aplikator.client.shared.data.PrimaryKey; 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; @ClientMarshaller(PrimaryKey.class) @ServerMarshaller(PrimaryKey.class) public class PrimaryKeyMarshaller extends AbstractNullableMarshaller<PrimaryKey> { public PrimaryKeyMarshaller() { super(); } /*@Override public Class<PrimaryKey> getTypeHandled() { return PrimaryKey.class; }*/ @Override public PrimaryKey[] getEmptyArray() { return new PrimaryKey[0]; } @Override public PrimaryKey doNotNullDemarshall(EJValue o, MarshallingSession ctx) { EJObject eObject = o.isObject(); if (eObject != null && (!eObject.get("pkValue").isNull())) { String value = eObject.get("pkValue").isString().stringValue(); PrimaryKey pkey = new PrimaryKey(value); if (DemarshallingUtils.containsAndNotNull(eObject, "tempId") && eObject.get("tempId").isString() != null) { pkey.setTempId(eObject.get("tempId").isString().stringValue()); } return pkey; } else return null; } @Override public String doNotNullMarshall(PrimaryKey o, MarshallingSession ctx) { StringBuilder builder = new StringBuilder("{"); MarshallingUtils.string("pkValue", o.getSerializationString(), builder); if (o.getTempId() != null) { builder.append(','); MarshallingUtils.string("tempId", o.getTempId(), builder); } builder.append("}"); return builder.toString(); } }