Package it.eng.spagobi.commons.serializer

Source Code of it.eng.spagobi.commons.serializer.KpiJSONSerializer

package it.eng.spagobi.commons.serializer;

import it.eng.spagobi.commons.metadata.SbiExtRoles;
import it.eng.spagobi.kpi.config.bo.Kpi;
import it.eng.spagobi.kpi.config.bo.KpiDocuments;
import it.eng.spagobi.kpi.model.bo.Resource;
import it.eng.spagobi.profiling.bean.SbiExtUserRoles;
import it.eng.spagobi.tools.udp.bo.UdpValue;

import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Set;

import org.json.JSONArray;
import org.json.JSONObject;

public class KpiJSONSerializer implements Serializer {

  public static final String KPI_ID = "id";
  private static final String KPI_NAME = "name";
  private static final String KPI_CODE = "code";
  private static final String KPI_DESCRIPTION = "description";
  private static final String KPI_WEIGHT = "weight";
  private static final String IS_ADDITIVE = "isAdditive";
  private static final String KPI_DATASET = "dataset";
  private static final String KPI_THR = "threshold";
  private static final String KPI_DOCS = "documents";
  private static final String KPI_INTERPRETATION = "interpretation";
  private static final String KPI_ALGDESC = "algdesc";
  private static final String KPI_INPUT_ATTR = "inputAttr";
  private static final String KPI_MODEL_REFERENCE = "modelReference";
  private static final String KPI_TARGET_AUDIENCE = "targetAudience";
  private static final String UDP_VALUES = "udpValues";

  private static final String KPI_TYPE_ID = "kpiTypeId";
  private static final String KPI_TYPE_CD = "kpiTypeCd";
  private static final String METRIC_SCALE_TYPE_ID = "metricScaleId";
  private static final String METRIC_SCALE_TYPE_CD = "metricScaleCd";
  private static final String MEASURE_TYPE_ID = "measureTypeId";
  private static final String MEASURE_TYPE_CD = "measureTypeCd";

  public Object serialize(Object o, Locale locale) throws SerializationException {
    JSONObject  result = null;

    if( !(o instanceof Kpi) ) {
      throw new SerializationException("KpiJSONSerializer is unable to serialize object of type: " + o.getClass().getName());
    }

    try {
      Kpi kpi = (Kpi)o;
      result = new JSONObject();

      result.put(KPI_ID, kpi.getKpiId() );
      result.put(KPI_NAME, kpi.getKpiName());
      result.put(KPI_DESCRIPTION, kpi.getDescription() );
      result.put(KPI_CODE, kpi.getCode() );
      result.put(KPI_WEIGHT, kpi.getStandardWeight() );
      boolean isAdd = false;
      if(kpi.getIsAdditive()!=null){
        isAdd = kpi.getIsAdditive().booleanValue();
      }
      result.put(IS_ADDITIVE, isAdd);
      result.put(KPI_DATASET, kpi.getDsLabel());
      if(kpi.getThreshold()!=null){
        result.put(KPI_THR, kpi.getThreshold().getCode() );
      }
      //roles
      List userDocs = kpi.getSbiKpiDocuments();
      Iterator itDocs = userDocs.iterator();
      JSONArray documentsJSON = new JSONArray();
      //documentsJSON.put("documents");

      while(itDocs.hasNext()){
        //JSONObject jsonDoc = new JSONObject();
        KpiDocuments kpiDoc = (KpiDocuments)itDocs.next();
        //jsonDoc.put("label", kpiDoc.getBiObjLabel());
        documentsJSON.put(kpiDoc.getBiObjLabel());
     
      result.put(KPI_DOCS, documentsJSON);

      // put udpValues assocated to KPI
      List udpValues = kpi.getUdpValues();
      JSONArray udpValuesJSON = new JSONArray();

      if(udpValues != null){
        Iterator itUdpValues = udpValues.iterator();
        while(itUdpValues.hasNext()){
          UdpValue udpValue = (UdpValue)itUdpValues.next();
          if(udpValue != null){
            JSONObject jsonVal = new JSONObject();
            //jsonVal.put("family", udpValue.getFamily());
            jsonVal.put("label", udpValue.getLabel());
            jsonVal.put("value", udpValue.getValue());
            jsonVal.put("family", udpValue.getFamily());
            jsonVal.put("type", udpValue.getTypeLabel());
            udpValuesJSON.put(jsonVal);
          }       
        } 
        result.put(UDP_VALUES, udpValuesJSON);
      }


      //result.put(KPI_DOCS, kpi.getDocumentLabel() );
      result.put(KPI_INTERPRETATION, kpi.getInterpretation() );
      result.put(KPI_ALGDESC, kpi.getMetric() );
      result.put(KPI_INPUT_ATTR, kpi.getInputAttribute() );
      result.put(KPI_MODEL_REFERENCE, kpi.getModelReference() );
      result.put(KPI_TARGET_AUDIENCE, kpi.getTargetAudience() );

      result.put(KPI_TYPE_ID, kpi.getKpiTypeId() );
      result.put(KPI_TYPE_CD, kpi.getKpiTypeCd());   
      result.put(METRIC_SCALE_TYPE_ID, kpi.getMetricScaleId() );
      result.put(METRIC_SCALE_TYPE_CD, kpi.getMetricScaleCd())
      result.put(MEASURE_TYPE_ID, kpi.getMeasureTypeId() );
      result.put(MEASURE_TYPE_CD, kpi.getMeasureTypeCd())

    } catch (Throwable t) {
      throw new SerializationException("An error occurred while serializing object: " + o, t);
    } finally {

    }
    return result;
  }
}
TOP

Related Classes of it.eng.spagobi.commons.serializer.KpiJSONSerializer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.