package org.aplikator.client.shared.rpc.marshaller; import java.util.List; import org.aplikator.client.shared.descriptor.EntityDTO; import org.aplikator.client.shared.descriptor.FormDTO; import org.aplikator.client.shared.descriptor.FunctionDTO; import org.aplikator.client.shared.descriptor.PropertyDTO; import org.aplikator.client.shared.descriptor.QueryDescriptorDTO; import org.aplikator.client.shared.descriptor.SortDescriptorDTO; import org.aplikator.client.shared.descriptor.ViewDTO; import org.jboss.errai.marshalling.client.api.Marshaller; 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(ViewDTO.class) @ServerMarshaller(ViewDTO.class) @SuppressWarnings("unchecked") public class ViewDTOMarshaller extends AbstractNullableMarshaller<ViewDTO> { /*@Override public Class<ViewDTO> getTypeHandled() { return ViewDTO.class; }*/ @Override public ViewDTO[] getEmptyArray() { return new ViewDTO[0]; } @Override public ViewDTO doNotNullDemarshall(EJValue o, MarshallingSession ctx) { if (o.isObject() != null) { EJObject eObject = o.isObject(); ViewDTO vdto = new ViewDTO(); DemarshallingUtils.clientDescriptorBaseUnMarshall(eObject, vdto); if (DemarshallingUtils.containsAndNotNull(eObject, "activeFilter")) { vdto.setActiveFilter(eObject.get("activeFilter").isString().stringValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "activeSort")) { vdto.setActiveSort(eObject.get("activeSort").isString().stringValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "pageSize")) { vdto.setPageSize(eObject.get("pageSize").isNumber().intValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "listPanelWidth")) { vdto.setListPanelWidth(eObject.get("listPanelWidth").isNumber().intValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "openAsTable")) { vdto.setOpenAsTable(eObject.get("openAsTable").isBoolean().booleanValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "searchString")) { vdto.setSearchString(eObject.get("searchString").isString().stringValue()); } if (DemarshallingUtils.containsAndNotNull(eObject, "properties")) { List l = DemarshallingUtils.listUnMarshall(eObject.get("properties"), ctx, PropertyDTO.class.getName()); vdto.setProperties(l); } if (DemarshallingUtils.containsAndNotNull(eObject, "filters")) { List l = DemarshallingUtils.listUnMarshall(eObject.get("filters"), ctx, QueryDescriptorDTO.class.getName()); vdto.setQueryDescriptors(l); } if (DemarshallingUtils.containsAndNotNull(eObject, "sorts")) { List l = DemarshallingUtils.listUnMarshall(eObject.get("sorts"), ctx, SortDescriptorDTO.class.getName()); vdto.setSortDescriptors(l); } if (DemarshallingUtils.containsAndNotNull(eObject, "functions")) { List l = DemarshallingUtils.listUnMarshall(eObject.get("functions"), ctx, FunctionDTO.class.getName()); vdto.setFunctions(l); } if (DemarshallingUtils.containsAndNotNull(eObject, "entity")) { Marshaller<Object> marshaller = ctx.getMarshallerInstance(EntityDTO.class.getName()); Object entity = marshaller.demarshall(eObject.get("entity"), ctx); vdto.setEntity((EntityDTO) entity); } if (DemarshallingUtils.containsAndNotNull(eObject, "form")) { Marshaller<Object> marshaller = ctx.getMarshallerInstance(FormDTO.class.getName()); Object fdesc = marshaller.demarshall(eObject.get("form"), ctx); vdto.setFormDescriptor((FormDTO) fdesc); } return vdto; } else return null; } @Override public String doNotNullMarshall(ViewDTO o, MarshallingSession ctx) { StringBuilder builder = new StringBuilder().append('{'); MarshallingUtils.clientDescriptorBase(builder, o).append(','); MarshallingUtils.string("activeFilter", o.getActiveFilter(), builder).append(','); MarshallingUtils.string("activeSort", o.getActiveSort(), builder).append(','); MarshallingUtils.number("pageSize", o.getPageSize(), builder).append(','); MarshallingUtils.number("listPanelWidth", o.getListPanelWidth(), builder).append(','); MarshallingUtils.bool("openAsTable", o.isOpenAsTable(), builder).append(','); MarshallingUtils.string("searchString", o.getSearchString(), builder).append(','); MarshallingUtils.key("properties", builder).append(':'); MarshallingUtils.listMarshall(builder, o.getProperties(), ctx, PropertyDTO.class.getName()).append(','); MarshallingUtils.key("filters", builder).append(':'); MarshallingUtils.listMarshall(builder, o.getQueryDescriptors(), ctx, QueryDescriptorDTO.class.getName()).append(','); MarshallingUtils.key("sorts", builder).append(':'); MarshallingUtils.listMarshall(builder, o.getSortDescriptors(), ctx, SortDescriptorDTO.class.getName()).append(','); MarshallingUtils.key("functions", builder).append(':'); MarshallingUtils.listMarshall(builder, o.getFunctions(), ctx, FunctionDTO.class.getName()).append(','); MarshallingUtils.key("entity", builder).append(':'); Marshaller<Object> entMarshaller = ctx.getMarshallerInstance(EntityDTO.class.getName()); builder.append(entMarshaller.marshall(o.getEntity(), ctx)).append(','); MarshallingUtils.key("form", builder).append(':'); Marshaller<Object> fMarshaller = ctx.getMarshallerInstance(FormDTO.class.getName()); builder.append(fMarshaller.marshall(o.getFormDescriptor(), ctx)); builder.append('}'); return builder.toString(); } }