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

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


      }

      int rowNumber = parsedRows.length();
      for (int i = 0; i < rowNumber; i++) {
        JSONObject parsedRow = parsedRows.getJSONObject(i);
        IRecord record = new Record(dataStore);
        for(int j = 0; j < dataStoreMeta.getFieldCount(); j++) {
          String columnName = dataStoreMeta.getFieldName(j);
          String columnValue = parsedRow.getString(columnName);
          IFieldMetaData fieldMeta = dataStoreMeta.getFieldMeta(j);
     
         
          Class fieldType = fieldMeta.getType();
          Object value = null;
          if(fieldType == String.class) {
            value = columnValue;
          } else if(fieldType == BigInteger.class ) {
            value = new BigInteger(columnValue);
          } else if(fieldType == Double.class) {
            value = new Double(columnValue);
          } else if(fieldType ==  Timestamp.class) {
            value = TIMESTAMP_FORMATTER.parse(columnValue);
          } else if(fieldType ==  Date.class) {
            value = DATE_FORMATTER.parse(columnValue);
          } else if(fieldType ==  Boolean.class) {
            value = new Boolean(columnValue);
          } else {
            throw new RuntimeException("Impossible to resolve field type [" + fieldType + "]");
          }
          IField field = new Field(value);
          record.appendField(field);
        }
          dataStore.appendRecord(record);
      }
      
      
View Full Code Here


    dataStore.setMetaData(dataStoreMeta);
   
    try {       
      lineReader = new LineNumberReader( new InputStreamReader( inputDataStream ) );
      while ( (line = lineReader.readLine()) != null ){
        IRecord record = new Record(dataStore);
               
        StringTokenizer tokenizer = new StringTokenizer(line, SEPARATOR);
        while(tokenizer.hasMoreElements()){
          String token = tokenizer.nextToken();
          if (lineReader.getLineNumber() == 1) {
            FieldMetadata fieldMeta = new FieldMetadata();
            fieldMeta.setName(token);
            fieldMeta.setType(String.class);
            dataStoreMeta.addFiedMeta(fieldMeta);
          } else {
            if (token != null) {
              IField field = new Field(token);
              record.appendField(field);
            }
          }
        }
       
        if (lineReader.getLineNumber() != 1){
View Full Code Here

      }

      int rowNumber = nodes.getLength();
      boolean firstRow = true;
      for (int i = 0; i < rowNumber; i++, firstRow = false) {
        IRecord record = new Record(dataStore);
       
          NamedNodeMap nodeAttributes = nodes.item(i).getAttributes();
          for(int j = 0; j < nodeAttributes.getLength(); j++) {
            Node attribute = nodeAttributes.item(j);
            String columnName = attribute.getNodeName();
            String columnValue = attribute.getNodeValue();
            Class columnType = attribute.getNodeValue().getClass();
           
            if(firstRow==true) {
            FieldMetadata fieldMeta = new FieldMetadata();
            fieldMeta.setName( columnName );
            fieldMeta.setType( columnType );
            dataStoreMeta.addFiedMeta(fieldMeta);
          }
           
            IField field = new Field(columnValue);
          record.appendField(field);
          }
         
          dataStore.appendRecord(record);
      }
      
View Full Code Here

          throw new RuntimeException("Impossible to extract rows content from sourcebean [" + resultSB + "]", t);
       
         
        while(rowIterator.hasNext()) {   
          SourceBean rowSB = (SourceBean) rowIterator.next();
          IRecord record = new Record(dataStore);
           
          for(int i = 0; i < dataStoreMeta.getFieldCount(); i++) {
            IFieldMetaData fieldMetaData = dataStoreMeta.getFieldMeta(i);
            try {
              Object value = rowSB.getAttribute( dataStoreMeta.getFieldName(i) );
              logger.debug("Column [" + fieldMetaData.getName() + "] of type [" + (value!=null? value.getClass(): "undef") + "] is equal to [" + value + "]");         
              IField field = new Field( value );
              if(value != null) {
                dataStoreMeta.getFieldMeta(i).setType( value.getClass() );
              }
              record.appendField( field );
            } catch(Throwable t ) {
              throw new RuntimeException("Impossible to read column [" + fieldMetaData.getName()+ "] value", t);
            }
          }
          dataStore.appendRecord(record);
View Full Code Here

   */
    public List transformData(List records, String pivotColumn, String pivotRow, String pivotValue){
      logger.info("IN");
     
      List newRecords = new ArrayList();
      IRecord newRecord = null;
      String newFName = null;
      String newFValue = null;
     
      Iterator it = records.iterator();
      boolean sameRow = true;
      String rowValue = "";
      newRecord = new Record();

      while (it.hasNext()){
      IRecord record =(IRecord) it.next()
      DataStoreMetaData dataStoreMeta = (DataStoreMetaData)record.getDataStore().getMetaData();
      List fields = record.getFields();
      for(int j = 0; j < fields.size(); j++) {   
        IField field = (IField)fields.get(j);
        String fieldName = dataStoreMeta.getFieldName(j);
        String fieldValue = "" + field.getValue();
       
        //checks if the field is a row, a column or a value specified into configuration and manages them
        if (fieldName.equalsIgnoreCase(pivotRow)){
          if (rowValue.equals("")) rowValue = fieldValue;
          if (!(rowValue.trim()).equalsIgnoreCase(fieldValue.trim())){
            rowValue = fieldValue;
            newRecords.add(newRecord);
            newRecord = new Record();
          }
          if (newRecord.getFieldAt(dataStoreMeta.getFieldIndex(fieldName) ) == null)
            newRecord.appendField(field);
        }
        else if (fieldName.equalsIgnoreCase(pivotColumn)){
          newFName = fieldValue;
          IField fv = record.getFieldAt(dataStoreMeta.getFieldIndex(pivotValue));
          if (fv == null){
            logger.error("Pivot value column '"+ pivotValue +"' not found into dataset. Pivot not applicated!");
            return null;
          }
          SourceBeanAttribute newFObject =(SourceBeanAttribute) fv.getValue();
View Full Code Here

    int pivotFieldIndex;
    int valueFieldIndex;
    int groupFieldIndex;

    List newRecords = new ArrayList();
    IRecord newRecord = null;
    Object selectedGroupValue = null;
   
    pivotedFieldNames = new ArrayList();
   
    dataStoreMeta = dataStore.getMetaData();
    pivotFieldIndex = dataStoreMeta.getFieldIndex(getPivotFieldName());
    valueFieldIndex = dataStoreMeta.getFieldIndex(getValueFieldName());
    groupFieldIndex = dataStoreMeta.getFieldIndex(getGroupFieldName());

    /************************************************************************************
    * Renaming output column for dynamic records (alias record with different number of columns )
    * if requested
    /************************************************************************************/
    if (numRows){
      String precGroupField = null;
      String precPivotField = null;
      int cont = 0;
      Iterator iterator = dataStore.iterator();
      while (iterator.hasNext()) {
        IRecord record = (IRecord) iterator.next();
 
        IField pivotField = record.getFieldAt(pivotFieldIndex);
        IField valueField = record.getFieldAt(valueFieldIndex);
        IField groupField = record.getFieldAt(groupFieldIndex);
        
        if (precGroupField == null)
          precGroupField = groupField.getValue().toString();
       
        if (precPivotField == null)
          precPivotField = pivotField.getValue().toString();
       
        if (precGroupField.equalsIgnoreCase(groupField.getValue().toString())){
          if (precPivotField.equalsIgnoreCase(pivotField.getValue().toString())){
            pivotField.setValue(pivotField.getValue().toString()+String.valueOf(cont));
            cont++;
          }
          else{
            cont = 0;
            precPivotField = pivotField.getValue().toString();
            pivotField.setValue(pivotField.getValue().toString()+String.valueOf(cont))
            cont++;
          }
        }
        else{
          cont = 0;
          precGroupField = groupField.getValue().toString();
          precPivotField = pivotField.getValue().toString();
          pivotField.setValue(pivotField.getValue().toString()+String.valueOf(cont));
          cont++;
        }
      }
    }

   
    Iterator pivotedFieldNamesIterator = dataStore.getFieldDistinctValues(pivotFieldIndex).iterator();   
    while ( pivotedFieldNamesIterator.hasNext() ) {
      pivotedFieldNames.add( pivotedFieldNamesIterator.next() );
    }
   
    Iterator it = dataStore.iterator();
    while (it.hasNext()) {
      IRecord record = (IRecord) it.next();

      IField pivotField = record.getFieldAt(pivotFieldIndex);
      IField valueField = record.getFieldAt(valueFieldIndex);
      IField groupField = record.getFieldAt(groupFieldIndex);

      if(selectedGroupValue == null || !selectedGroupValue.toString().equals( groupField.getValue().toString() )) {
        selectedGroupValue = groupField.getValue();
        if(newRecord != null) {
          newRecord.getFields().remove(pivotFieldIndex);
View Full Code Here

Febbraio           SER3           13            2
Febbraio           SER4           75            2
   */
  public static void main(String[] args) {
    IDataStore dataStore;
    IRecord record;
   
    dataStore = new DataStore();
   
    dataStore.getMetaData().addFiedMeta(new FieldMetadata("X", String.class ));
    dataStore.getMetaData().addFiedMeta(new FieldMetadata("SER", String.class));
    dataStore.getMetaData().addFiedMeta(new FieldMetadata("VAL", Double.class));
    dataStore.getMetaData().addFiedMeta(new FieldMetadata("IDX", Integer.class));
   
    // ----------------------------------------------------
   
    record = new Record();
    record.appendField(new Field("Gennaio"));
    record.appendField(new Field("SER1"));
    record.appendField(new Field(new Double(33)));
    record.appendField(new Field(new Integer(1)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Gennaio"));
    record.appendField(new Field("SER2"));
    record.appendField(new Field(new Field(new Double(12))));
    record.appendField(new Field(new Integer(1)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Gennaio"));
    record.appendField(new Field("SER3"));
    record.appendField(new Field(new Field(new Double(64))));
    record.appendField(new Field(new Integer(1)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Gennaio"));
    record.appendField(new Field("SER4"));
    record.appendField(new Field(new Field(new Double(21))));
    record.appendField(new Field(new Integer(1)));
    dataStore.appendRecord(record);
   
    // ----------------------------------------------------
   
    record = new Record();
    record.appendField(new Field("Febbraio"));
    record.appendField(new Field("SER1"));
    record.appendField(new Field("56"));
    record.appendField(new Field(new Integer(2)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Febbraio"));
    record.appendField(new Field("SER2"));
    record.appendField(new Field(new Field(new Double(35))));
    record.appendField(new Field(new Integer(2)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Febbraio"));
    record.appendField(new Field("SER3"));
    record.appendField(new Field(new Field(new Double(13))));
    record.appendField(new Field(new Integer(2)));
    dataStore.appendRecord(record);
   
    record = new Record();
    record.appendField(new Field("Febbraio"));
    record.appendField(new Field("SER4"));
    record.appendField(new Field(new Field(new Double(75))));
    record.appendField(new Field(new Integer(2)));
    dataStore.appendRecord(record);
   
    IDataStoreTransformer transformer = new PivotDataSetTransformer("SER", "VAL", "X", false);
    transformer.transform(dataStore);
    System.out.println(dataStore.toXml());
View Full Code Here

    JSONObject  result = null;
    JSONObject metadata;
    IField field;
    JSONArray fieldsMetaDataJSON;   
    JSONObject fieldMetaDataJSON;
    IRecord record;
    JSONObject recordJSON;
    int recNo;
   
   
    JSONArray recordsJSON;
    int resultNumber;
    Object propertyRawValue;
    String detailProperty;
   
    Assert.assertNotNull(dataStore, "Object to be serialized connot be null");
   
    try {
      result = new JSONObject();
     
      metadata = new JSONObject();
       
      metadata.put("totalProperty", TOTAL_PROPERTY);
      metadata.put("root", ROOT);
      metadata.put("id", "id");
      result.put("metaData", metadata);
     
      propertyRawValue = dataStore.getMetaData().getProperty("resultNumber");
      detailProperty = (String)dataStore.getMetaData().getProperty("detailProperty");
      if(propertyRawValue==null){
        propertyRawValue = new Integer(1);
      }
      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;
        }
       
        String fieldName = "column_" + (i+1);
        String fieldHeader = fieldMetaData.getAlias() != null? fieldMetaData.getAlias(): fieldMetaData.getName();
       
        fieldMetaDataJSON = new JSONObject();
        fieldMetaDataJSON.put("name", fieldName);           
        fieldMetaDataJSON.put("dataIndex", fieldName);
        fieldMetaDataJSON.put("header", fieldHeader);
       
       
        Class clazz = fieldMetaData.getType();
        if (clazz == null) {
          logger.debug("Metadata class is null; considering String as default");
          clazz = String.class;
        } else {
          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");
          }
         
          String format = (String) fieldMetaData.getProperty("format");
          if ( format != null ) {
            fieldMetaDataJSON.put("format", format);
          }
         
        } else if( String.class.isAssignableFrom(clazz) ) {
          logger.debug("Column [" + (i+1) + "] type is equal to [" + "STRING" + "]");
          fieldMetaDataJSON.put("type", "string");
        } else if( Timestamp.class.isAssignableFrom(clazz) ) {
          logger.debug("Column [" + (i+1) + "] type is equal to [" + "TIMESTAMP" + "]");
          fieldMetaDataJSON.put("type", "date");
          fieldMetaDataJSON.put("subtype", "timestamp");
          fieldMetaDataJSON.put("dateFormat", "d/m/Y H:i:s");
        } 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");
        } 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");
        calculated = calculated == null? Boolean.FALSE: 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");
          }
         
        }
       
        if(detailProperty != null && fieldHeader.equalsIgnoreCase(detailProperty)) {
          metadata.put("detailProperty", fieldName);
          fieldMetaDataJSON.put("hidden", true);
        }
       
        fieldsMetaDataJSON.put(fieldMetaDataJSON);
      }
      metadata.put("fields", fieldsMetaDataJSON);
     
      // records
      recNo = 0;
      Iterator records = dataStore.iterator();
      while(records.hasNext()) {
        record = (IRecord)records.next();
        recordJSON = new JSONObject();
        recordJSON.put("id", ++recNo);
       
        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) {
View Full Code Here

    JSONObject  result = null;
    JSONObject metadata;
    IField field;
    JSONArray fieldsMetaDataJSON;   
    JSONObject fieldMetaDataJSON;
    IRecord record;
    JSONObject recordJSON;
    int recNo;
    IDataStore dataStore;
       
    JSONArray recordsJSON;
    int resultNumber;
    Object propertyRawValue;
   
    Assert.assertNotNull(o, "Object to be serialized connot be null");
    if( !(o instanceof IDataStore) ) {
      throw new SerializationException("DataStoreJSONSerializer is unable to serialize object of type: " + o.getClass().getName());
    }
   
   
   
    try {
      dataStore = (IDataStore)o;
      result = new JSONObject();
     
      metadata = new JSONObject();
       
      metadata.put("totalProperty", TOTAL_PROPERTY);
      metadata.put("root", ROOT);
      metadata.put("id", "id");
      result.put("metaData", metadata);
     
      propertyRawValue = dataStore.getMetaData().getProperty("resultNumber");
     
     
      recordsJSON = new JSONArray();
      result.put(ROOT, recordsJSON);
   
      // field's meta
      fieldsMetaDataJSON = new JSONArray();
      //fieldsMetaDataJSON.put("recNo");
      for(int i = 0; i < dataStore.getMetaData().getFieldCount(); i++) {
        IFieldMetaData fieldMetaData = dataStore.getMetaData().getFieldMeta(i);
       
        Object visibleProp = fieldMetaData.getProperty("visible");
        if(visibleProp != null
            && (visibleProp instanceof Boolean)
            && ((Boolean)visibleProp).booleanValue() == false) {
          continue;
        }
       
        fieldMetaDataJSON = new JSONObject();
        fieldMetaDataJSON.put("header", fieldMetaData.getName());
        fieldMetaDataJSON.put("name", "column-" + (i+1));           
        fieldMetaDataJSON.put("dataIndex", "column-" + (i+1));
       
        fieldsMetaDataJSON.put(fieldMetaDataJSON);   
      }
      metadata.put("fields", fieldsMetaDataJSON);
     
      // records
      recNo = 0;
      Iterator records = dataStore.iterator();
      while(records.hasNext()) {
        record = (IRecord)records.next();
        recordJSON = new JSONObject();
        recordJSON.put("id", ++recNo);
       
        for(int i = 0; i < metadata.getJSONArray("fields").length(); i++) {
          field = record.getFieldAt(i);
          recordJSON.put("column-" + (i+1), field.getValue().toString());
        }
       
        recordsJSON.put(recordJSON);
      }
View Full Code Here

        }else{
          row = (Object[])o;
        }
       
       
        IRecord record = new Record(dataStore);
        for(int i = 0,  j = 0; i < dataStoreMeta.getFieldCount(); i++) {
        IFieldMetaData fieldMeta = dataStoreMeta.getFieldMeta(i);
        Boolean calculated = (Boolean)fieldMeta.getProperty("calculated");
        if(calculated.booleanValue() == false) {
          Assert.assertTrue(j < row.length, "Impossible to read field [" + fieldMeta.getName() + "] from resultset");
          record.appendField( new Field( row[j] ) );
          if(row[j] != null) fieldMeta.setType(row[j].getClass());
          j++;         
        } else {
          DataSetVariable variable = (DataSetVariable)fieldMeta.getProperty("variable");
          if(variable.getResetType() == DataSetVariable.RESET_TYPE_RECORD) {
            variable.reset();
          }
         
          record.appendField( new Field( variable.getValue()) );
          if(variable.getValue() != nullfieldMeta.setType(variable.getValue().getClass());
        }
      }
       
        processCalculatedFields(record, dataStore);
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.