/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.eas.client.serial; import com.eas.client.metadata.Fields; import com.eas.client.metadata.Parameters; import com.eas.client.queries.Query; import com.eas.core.Utils.JsObject; import com.google.gwt.core.client.JavaScriptObject; /** * * @author mg */ public class QueryJSONReader { private static final String TITLE_PROP_NAME = "title"; private static final String APP_ELEMENT_PROP_NAME = "appelement"; private static final String PARAMETERS_PROP_NAME = "parameters"; private static final String FIELDS_PROP_NAME = "fields"; public static Query read(JavaScriptObject aValue) throws Exception { JsObject o = aValue.cast(); assert o != null; Query query = new Query(); query.setTitle(o.getString(TITLE_PROP_NAME)); query.setEntityName(o.getString(APP_ELEMENT_PROP_NAME)); // parameters assert o.has(PARAMETERS_PROP_NAME); JavaScriptObject pa = o.getJs(PARAMETERS_PROP_NAME); assert pa != null; Parameters params = new Parameters(); FieldsJSONReader.readFields(pa, params); query.setParameters(params); // fields assert o.has(FIELDS_PROP_NAME); JavaScriptObject fa = o.getJs(FIELDS_PROP_NAME); assert fa != null; Fields fields = new Fields(); FieldsJSONReader.readFields(fa, fields); query.setFields(fields); return query; } }