package org.aplikator.client.shared.rpc.marshaller; import java.util.List; import org.aplikator.client.shared.descriptor.QueryDescriptorDTO; import org.aplikator.client.shared.descriptor.QueryParameterDTO; 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(QueryDescriptorDTO.class) @ServerMarshaller(QueryDescriptorDTO.class) @SuppressWarnings("unchecked") public class QueryDescriptorDTOMarshaller extends AbstractNullableMarshaller<QueryDescriptorDTO> { /*@Override public Class<QueryDescriptorDTO> getTypeHandled() { return QueryDescriptorDTO.class; }*/ @Override public QueryDescriptorDTO[] getEmptyArray() { return new QueryDescriptorDTO[0]; } @Override public QueryDescriptorDTO doNotNullDemarshall(EJValue o, MarshallingSession ctx) { if (o.isObject() != null) { EJObject ejObject = o.isObject(); QueryDescriptorDTO qdto = new QueryDescriptorDTO(); DemarshallingUtils.clientDescriptorBaseUnMarshall(ejObject, qdto); List l = DemarshallingUtils.listUnMarshall(ejObject.get("queryParameters"), ctx, QueryParameterDTO.class.getName()); qdto.setQueryParameters(l); return qdto; } else return null; } @Override public String doNotNullMarshall(QueryDescriptorDTO o, MarshallingSession ctx) { StringBuilder builder = new StringBuilder().append('{'); MarshallingUtils.clientDescriptorBase(builder, o).append(','); MarshallingUtils.key("queryParameters", builder).append(':'); MarshallingUtils.listMarshall(builder, o.getQueryParameters(), ctx, QueryParameterDTO.class.getName()); builder.append('}'); return builder.toString(); } }