Package it.eng.spagobi.tools.dataset.common.datastore

Examples of it.eng.spagobi.tools.dataset.common.datastore.IRecord


   * Builds the crossTab (headers structure and data)
   * @param dataStore: the source of the data
   * @param crosstabDefinition: the definition of the crossTab
   */
  public CrossTab(IDataStore dataStore, CrosstabDefinition crosstabDefinition) throws JSONException{
    IRecord record;
    String rowPath;
    String columnPath;
    this.config = crosstabDefinition.getConfig();
    int cellLimit = crosstabDefinition.getCellLimit();
    boolean columnsOverflow = false; //true if the number of cell shown in the crosstab is less than the total number of cells
   
    boolean measuresOnColumns = crosstabDefinition.isMeasuresOnColumns();
   
    int rowsCount = crosstabDefinition.getRows().size();
    int columnsCount = crosstabDefinition.getColumns().size();
    int measuresCount = crosstabDefinition.getMeasures().size();
    int index;
   
    cellLimit = cellLimit/measuresCount;
   
    List<String> rowCordinates = new ArrayList<String>();
    List<String> columnCordinates = new ArrayList<String>();
    List<String> data = new ArrayList<String>();

    columnsRoot = new Node("rootC");
    rowsRoot = new Node("rootR");

    for(index = 0; index<dataStore.getRecordsCount() && index<cellLimit; index++){
      record = dataStore.getRecordAt(index);
      addRecord(columnsRoot, record, 0, columnsCount);
      addRecord(rowsRoot, record, columnsCount, columnsCount+rowsCount);
    }
   
    if(index<dataStore.getRecordsCount()){
      Node completeColumnsRoot =  new Node("rootCompleteC");
      for(index = 0; index<dataStore.getRecordsCount(); index++){
        record = dataStore.getRecordAt(index);
        addRecord(completeColumnsRoot, record, 0, columnsCount);
      }
      columnsOverflow =  columnsRoot.getLeafsNumber()<completeColumnsRoot.getLeafsNumber();
    }
       
    for(index = 0; index<dataStore.getRecordsCount(); index++){
      record = dataStore.getRecordAt(index);
      List<IField> fields= record.getFields();
      columnPath="";
      for(int i=0; i<columnsCount; i++){
        Object value = fields.get(i).getValue();
        String valueStr = null;
        if (value == null){
          valueStr = "null";
        } else {
          valueStr = value.toString();
        }
        columnPath = columnPath + valueStr;
      }
           
      rowPath="";
      for(int i=columnsCount; i<record.getFields().size()-measuresCount; i++){
        Object value = fields.get(i).getValue();
        String valueStr = null;
        if (value == null){
          valueStr = "null";
        } else {
          valueStr = value.toString();
        }
        rowPath = rowPath + valueStr.toString();
      }

      for(int i=record.getFields().size()-measuresCount; i<record.getFields().size(); i++){
        columnCordinates.add(columnPath);
        rowCordinates.add(rowPath);
        data.add(""+getStringValue(fields.get(i).getValue()));
      }
    }
View Full Code Here


      IFeaturesProviderDAO featuresProvider = FeaturesProviderDAOFactory.getFeaturesProviderDAO(featureSourceType);
     
      while(it.hasNext()) {
            
        IRecord record = (IRecord)it.next();
          IField field;
        field = record.getFieldAt( dataStoreMeta.getFieldIndex(businessIdPName) );
             
             
             
          //IDfetaure
        geoIdPValue = "" + field.getValue();

       
        if(geoIdPValues.contains(geoIdPValue)) {
          continue;
        } else {
          geoIdPValues.add(geoIdPValue);
        }
       
          Map parameters = new HashMap();
          parameters.put("layerName", layerName);
          parameters.put("geoIdPName", geoIdPName);
          parameters.put("geoIdPValue", geoIdPValue);
                 
        // geoserver call
          try {
           
              MfFeatureCollection featureCollection = featuresProvider.getFeatures(featureSource, parameters);
              List featureList = new ArrayList(featureCollection.getCollection());
              MfFeature feature = (MfFeature) featureList.get(0);
             
              //Geometry from GeoServer
              MfGeometry geom = feature.getMfGeometry();
             
             
              // JSON creation
              JSONObject jsonProperties = new JSONObject();
         
              //for each col
              for(int j=0; j<nc; j++){
                jsonProperties.accumulate(
                    dataStoreMeta.getFieldName(j),
                    record.getFieldAt( dataStoreMeta.getFieldIndex(dataStoreMeta.getFieldName(j)) ).getValue()
                )
              }
             
              //for each prop
              if(feature instanceof SbiFeature) {
View Full Code Here

    Iterator it = dataStore.iterator();
     
      IDataStoreMetaData d = dataStore.getMetaData()
   
    while(it.hasNext()){//for each record
      IRecord record =(IRecord)it.next();
      List fields = record.getFields();
      int length = fields.size();
      //build the row
      for(int fieldIndex =0; fieldIndex<length; fieldIndex++){
        IField f = (IField)fields.get(fieldIndex);
        IFieldMetaData fieldMetaData = d.getFieldMeta(fieldIndex);
View Full Code Here

      if(indexRes!=-1){
        Iterator it = dataStore.iterator();
        while(it.hasNext()){

          kpiValTemp = kVal.clone();
          IRecord record =(IRecord)it.next();
          List fields = record.getFields();
          kpiValTemp = setKpiValuesFromDataset(kpiValTemp,fields,d, begD, endDate, dataSet.getLabel(),modInstNodeId, kVal);

          if (kpiValTemp.getR()!=null && kVal.getR()!=null && kpiValTemp.getR().getId()!=null &&
              kVal.getR().getId()!=null && kpiValTemp.getR().getId().equals(kVal.getR().getId())){
            kVal = kpiValTemp.clone() ;
          }
          logger.debug("New value calculated");
          if(register_values && kpiValTemp.getR().getName()!=null){

            if(doSave){
              // Insert new Value into the DB
              IKpiDAO dao= DAOFactory.getKpiDAO();
              dao.setUserProfile(profile);
              Integer kpiValueId = dao.insertKpiValue(kpiValTemp);
              kVal.setKpiValueId(kpiValueId);
              logger.info("New value inserted in the DB. Resource="+kpiValTemp.getR().getName()+" KpiInstanceId="+kpiValTemp.getKpiInstanceId());
            }
            // Checks if the value is alarming (out of a certain range)
            // If the value is alarming a new line will be inserted in the
            // sbi_alarm_event table and scheduled to be sent
            DAOFactory.getAlarmDAO().isAlarmingValue(kpiValTemp);
            logger.debug("Alarms sent if the value is over the thresholds");
          }


        }          
      }else{

        IRecord record = dataStore.getRecordAt(0);
        List fields = record.getFields();
        kVal = setKpiValuesFromDataset(kVal,fields,d, begD, endDate, dataSet.getLabel(), modInstNodeId, kVal);
        logger.debug("New value calculated");
        if(register_values){
          if(doSave){
            // Insert new Value into the DB
View Full Code Here

   
    IDataStoreMetaData d = dataStore.getMetaData()
   
    while(it.hasNext()){
      Row rowVal = sheet.getRow(rownum);
      IRecord record =(IRecord)it.next();
      List fields = record.getFields();
      int length = fields.size();
      for(int fieldIndex =0; fieldIndex<length; fieldIndex++){
        IField f = (IField)fields.get(fieldIndex);
        if (f != null && f.getValue()!= null) {
              IFieldMetaData fieldMetaData = d.getFieldMeta(fieldIndex);
View Full Code Here

      logger.debug("Using value [" + codeValue + "] for dataset filtering...");

      Iterator it = dataStore.iterator();
      while (it.hasNext()) {
        String recipient = null;
        IRecord record = (IRecord)it.next();
        // the parameter value is used to filter on the first dataset field
        IField valueField = (IField) record.getFieldAt(0);
        Object valueObj = valueField.getValue();
        String value = null;
        if (valueObj != null)
          value = valueObj.toString();
        if (codeValue.equals(value)) {
          logger.debug("Found value [" + codeValue + "] on the first field of a record of the dataset.");
          // recipient address is on the second dataset field
          IField recipientField = (IField) record.getFieldAt(1);
          Object recipientFieldObj = recipientField.getValue();
          if (recipientFieldObj != null) {
            recipient = recipientFieldObj.toString();
            logger.debug("Found recipient [" + recipient + "] on the second field of the record.");
          } else {
View Full Code Here

      logger.debug("Using value [" + codeValue + "] for dataset filtering...");
     
      Iterator it = dataStore.iterator();
      while (it.hasNext()) {
        String folder = null;
        IRecord record = (IRecord)it.next();
        // the parameter value is used to filter on the first dataset field
        IField valueField = (IField) record.getFieldAt(0);
        Object valueObj = valueField.getValue();
        String value = null;
        if (valueObj != null)
          value = valueObj.toString();
        if (codeValue.equals(value)) {
          logger.debug("Found value [" + codeValue + "] on the first field of a record of the dataset.");
          // recipient address is on the second dataset field
          IField folderField = (IField) record.getFieldAt(1);
          Object folderFieldObj = folderField.getValue();
          if (folderFieldObj != null) {
            folder = folderFieldObj.toString();
            logger.debug("Found folder [" + folder + "] on the second field of the record.");
          } else {
View Full Code Here

    JSONObject  result = null;
    JSONObject metadata;
    IField field;
    JSONArray fieldsMetaDataJSON;   
    JSONObject fieldMetaDataJSON;
    IRecord record;
    JSONObject recordJSON;
    int recNo;
    String valueField;
    String displayField;
    String descriptionField;
   
    JSONArray recordsJSON;
    int resultNumber;
    Object propertyRawValue;
   
    Assert.assertNotNull(dataStore, "Object to be serialized connot be null");
   
    try {
      IDataStoreMetaData dataStoreMeta = dataStore.getMetaData();
      valueField = "Values";
      displayField = "Values";
      descriptionField = "Values";
     
      result = new JSONObject();
 
      metadata = new JSONObject();
     
      metadata.put("root", ROOT);
      metadata.put("totalProperty", TOTAL_PROPERTY);
      metadata.put("valueField", valueField);
      metadata.put("displayField", displayField);
      metadata.put("descriptionField", descriptionField);     
      result.put("metaData", metadata);
     
      propertyRawValue = dataStore.getMetaData().getProperty("resultNumber");
      Assert.assertNotNull(propertyRawValue, "DataStore property [resultNumber] cannot be null");
      Assert.assertTrue(propertyRawValue instanceof Integer, "DataStore property [resultNumber] must be of type [Integer]");
      resultNumber = ((Integer)propertyRawValue).intValue();
      Assert.assertTrue(resultNumber >= 0, "DataStore property [resultNumber] cannot be equal to [" + resultNumber + "]. It must be greater or equal to zero")
      result.put(TOTAL_PROPERTY, resultNumber);
     
      recordsJSON = new JSONArray();
      result.put(ROOT, recordsJSON);
   
      // field's meta
      fieldsMetaDataJSON = new JSONArray();
      fieldsMetaDataJSON.put("recNo"); // counting column
      for(int i = 0; i < dataStore.getMetaData().getFieldCount(); i++) {
        IFieldMetaData fieldMetaData = dataStore.getMetaData().getFieldMeta(i);
       
        propertyRawValue = fieldMetaData.getProperty("visible");
        if(propertyRawValue != null
            && (propertyRawValue instanceof Boolean)
            && ((Boolean)propertyRawValue).booleanValue() == false) {
          continue;
        }
       
        fieldMetaDataJSON = new JSONObject();
        fieldMetaDataJSON.put("header", "Values");
        fieldMetaDataJSON.put("name", "Values" );           
        fieldMetaDataJSON.put("dataIndex", "Values");
                     
             
        Class clazz = fieldMetaData.getType();
        logger.debug("Column [" + (i+1) + "] class is equal to [" + clazz.getName() + "]");
        if( Number.class.isAssignableFrom(clazz) ) {
          //BigInteger, Integer, Long, Short, Byte
          if(Integer.class.isAssignableFrom(clazz)
               || BigInteger.class.isAssignableFrom(clazz)
             || Long.class.isAssignableFrom(clazz)
             || Short.class.isAssignableFrom(clazz)
             || Byte.class.isAssignableFrom(clazz)) {
            logger.debug("Column [" + (i+1) + "] type is equal to [" + "INTEGER" + "]");
            fieldMetaDataJSON.put("type", "int");
          } else {
            logger.debug("Column [" + (i+1) + "] type is equal to [" + "FLOAT" + "]");
            fieldMetaDataJSON.put("type", "float");
          }
         
        } else if( String.class.isAssignableFrom(clazz) ) {
          logger.debug("Column [" + (i+1) + "] type is equal to [" + "STRING" + "]");
          fieldMetaDataJSON.put("type", "string");
        } else if( Date.class.isAssignableFrom(clazz) ) {
          logger.debug("Column [" + (i+1) + "] type is equal to [" + "DATE" + "]");
          fieldMetaDataJSON.put("type", "date");
          fieldMetaDataJSON.put("dateFormat", "d/m/Y H:i:s");
        } else if( Boolean.class.isAssignableFrom(clazz) ) {
          logger.debug("Column [" + (i+1) + "] type is equal to [" + "BOOLEAN" + "]");
          fieldMetaDataJSON.put("type", "boolean");
        } else {
          logger.warn("Column [" + (i+1) + "] type is equal to [" + "???" + "]");
          fieldMetaDataJSON.put("type", "string");
        }
       
        Boolean calculated = (Boolean)fieldMetaData.getProperty("calculated");
        if(calculated.booleanValue() == true) {
          DataSetVariable variable =  (DataSetVariable)fieldMetaData.getProperty("variable");
          if(variable.getType().equalsIgnoreCase(DataSetVariable.HTML)) {
            fieldMetaDataJSON.put("type", "auto");
            fieldMetaDataJSON.remove("type");
            fieldMetaDataJSON.put("subtype", "html");
          }       
        }
        fieldsMetaDataJSON.put(fieldMetaDataJSON);
      }
     
      fieldsMetaDataJSON.put("recCk");
      metadata.put("fields", fieldsMetaDataJSON);
     
      // records
      recNo = 0;
      Iterator records = dataStore.iterator();
      while(records.hasNext()) {
        record = (IRecord)records.next();
        recordJSON = new JSONObject();
       
        for(int i = 0; i < dataStore.getMetaData().getFieldCount(); i++) {
          IFieldMetaData fieldMetaData = dataStore.getMetaData().getFieldMeta(i);
         
          propertyRawValue = fieldMetaData.getProperty("visible");
          if(propertyRawValue != null
              && (propertyRawValue instanceof Boolean)
              && ((Boolean)propertyRawValue).booleanValue() == false) {
            continue;
          }
          String key = fieldMetaData.getAlias() != null ? fieldMetaData.getAlias() : fieldMetaData.getName();
          field = record.getFieldAt( dataStore.getMetaData().getFieldIndex( key ) );
   
          String fieldValue = "";
          if(field.getValue() != null && !field.getValue().equals("")) {
            if(Date.class.isAssignableFrom(fieldMetaData.getType())) {
              fieldValue =  DATE_FORMATTER.formatfield.getValue() );
View Full Code Here

 

  public void decorate(IDataStore dataStore) {
    Iterator<IRecord> it = dataStore.iterator();
    while(it.hasNext()) {
      IRecord record = it.next();
      updateDecoration(dataStore, record);
    }
  }
View Full Code Here

        }
       
        int recCount = 0;
        int resultNumber = 0;
        while ((recCount < maxRecToParse) && rs.next()) {
          IRecord record = new Record(dataStore);
          for(columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
            Object columnValue = rs.getObject(columnIndex);
            IField field = new Field( columnValue );
          if(columnValue != null) {
            dataStoreMeta.getFieldMeta(columnIndex-1).setType( columnValue.getClass() );
          }
          record.appendField( field );
          }
          dataStore.appendRecord(record);
          recCount++;
          logger.debug("[" + recCount + "] - Records [" + rs.getRow()  + "] succesfully readed");
        }
View Full Code Here

TOP

Related Classes of it.eng.spagobi.tools.dataset.common.datastore.IRecord

Copyright © 2018 www.massapicom. 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.