Package it.eng.qbe.model.structure

Examples of it.eng.qbe.model.structure.IModelField


 
  public List filter(IDataSource dataSource, List fields) {
   
    Collections.sort(fields, new Comparator() {
        public int compare(Object o1, Object o2) {
          IModelField f1, f2;
          String p1, p2;
          int i1, i2;
         
          f1 = (IModelField)o1;
          f2 = (IModelField)o2;
         
          i1 = f1.getPropertyAsInt("position");
          i2 = f2.getPropertyAsInt("position");
           
         
            return (i1 < i2 ? -1 :
                    (i1 == i2 ? 0 : 1));
View Full Code Here


   
    // TODO: SCALE E PREC
    int scale = 0;
    int precision = 0;

    IModelField datamartField = dataMartEntity.addNormalField(keyPrefix+ attr.getName());
    datamartField.setType(type);
    datamartField.setPrecision(precision);
    datamartField.setLength(scale);
    propertiesInitializer.addProperties(datamartField);
  }
View Full Code Here

   * @param queryWhereClause the where clause of the query (used for add the strin WHERE or AND at
   * the beginning of the clause)
   * @return
   */
  public String buildViewsRelations(Map entityAliasesMaps, Query query, String queryWhereClause) {
    IModelField datamartField;
    Set<ViewRalationClause> viewRelations = new HashSet<ViewRalationClause>();
    StringBuffer whereClause = new StringBuffer("");
    Set<IModelEntity> concernedEntities = new HashSet<IModelEntity>();
    String clauseToReturn;
   
    //get all the fields
   
    //Get the select fields
    List<DataMartSelectField> selectFields = query.getSelectFields(false);
    if(selectFields!=null){
      for(int i=0; i<selectFields.size(); i++){
        datamartField = statement.getDataSource().getModelStructure().getField(selectFields.get(i).getUniqueName());
        concernedEntities.add(datamartField.getPathParent());
      }
    }

   
    //Get the where fields
    List<WhereField> whereFields = query.getWhereFields();
    if(whereFields!=null){
      for(int i=0; i<whereFields.size(); i++){
        WhereField whereField = whereFields.get(i);
        Operand leftOperand = whereField.getLeftOperand();
        if(statement.OPERAND_TYPE_FIELD.equalsIgnoreCase(leftOperand.type)){
          datamartField = statement.getDataSource().getModelStructure().getField( leftOperand.values[0] );
          concernedEntities.add(datamartField.getPathParent());
        }
        Operand rightOperand = whereField.getLeftOperand();
        if(statement.OPERAND_TYPE_FIELD.equalsIgnoreCase(rightOperand.type)){
          datamartField = statement.getDataSource().getModelStructure().getField( rightOperand.values[0] );
          concernedEntities.add(datamartField.getPathParent());
        }
      }
    }

   
    //Get the having fields
    List<HavingField> havingFields = query.getHavingFields();
    if(havingFields!=null){
      for(int i=0; i<havingFields.size(); i++){
        HavingField havingField = havingFields.get(i);
        Operand leftOperand = havingField.getLeftOperand();
        if(statement.OPERAND_TYPE_FIELD.equalsIgnoreCase(leftOperand.type)){
          datamartField = statement.getDataSource().getModelStructure().getField( leftOperand.values[0] );
          concernedEntities.add(datamartField.getPathParent());
        }
        Operand rightOperand = havingField.getLeftOperand();
        if(statement.OPERAND_TYPE_FIELD.equalsIgnoreCase(rightOperand.type)){
          datamartField = statement.getDataSource().getModelStructure().getField( rightOperand.values[0] );
          concernedEntities.add(datamartField.getPathParent());
        }
      }
    }

   
    //Get the order by fields
    List<DataMartSelectField> orderFields = query.getOrderByFields();
    if(orderFields!=null){
      for(int i=0; i<orderFields.size(); i++){
        datamartField = statement.getDataSource().getModelStructure().getField(orderFields.get(i).getUniqueName());
        concernedEntities.add(datamartField.getPathParent());
      }
    }

   
    //Get the group by fields
    List<DataMartSelectField> groupFields = query.getGroupByFields();
    if(groupFields!=null){
      for(int i=0; i<groupFields.size(); i++){
        datamartField = statement.getDataSource().getModelStructure().getField(groupFields.get(i).getUniqueName());
        concernedEntities.add(datamartField.getPathParent());
      }
    }

   
    Iterator<IModelEntity> concernedEntitiesIter = concernedEntities.iterator();
View Full Code Here

   * @param query
   * @return
   */
  private Set<ViewRalationClause> buildRelationConditionString(List<IModelField> sourceFields, List<IModelField> destFields, Map entityAliases, Query query){
    Set<ViewRalationClause> clauses = new HashSet<ViewRalationClause>();
    IModelField sourceField, destField;
    for(int i=0; i<sourceFields.size(); i++){
      sourceField = sourceFields.get(i);
      destField = destFields.get(i);
      clauses.add(new ViewRalationClause(getFieldString(sourceField, entityAliases,query),getFieldString(destField, entityAliases,query)));
    }
View Full Code Here

  }
 
  // TODO create method getRootItem in IDataMartItem interface and move some code there
  protected String getInheritedProperty(IModelField item, String propertyName) {
    String propertyValue;
    IModelField rootField = null;
    IModelEntity rootEntity = item.getStructure().getRootEntity(item.getParent());
    if(rootEntity == null) {
      rootEntity = item.getStructure().getRootEntity(item.getParent());
      Assert.assertUnreachable("rootEntity for field [" + item.getName() + "] cannot be null");
    }
   
    List fields = null;
    if(item instanceof ModelCalculatedField) {
      fields = rootEntity.getCalculatedFields();
    } else {
      fields = rootEntity.getAllFields();
    }
    Iterator<IModelField> it = fields.iterator();
    while (it.hasNext()) {
      IModelField field = it.next();
      if (field.getName().equals(item.getName())) {
        rootField = field;
        break;
      }
    }
    Assert.assertNotNull(rootField, "Impossible to find root field of field [" + item.getName() + "]");
View Full Code Here

    List entities = modelStructure.getRootEntities(modelName);
    if(entities.size() > 0) {
      ModelEntity entity = (ModelEntity)entities.get(0);
      List fields = entity.getAllFields();
      for(int i = 0; i < fields.size(); i++) {
        IModelField field = (IModelField)fields.get(i);

        query.addSelectFiled(field.getUniqueName(), null, field.getName(), true, true, false, null, null);     
      }
    }
   
    IStatement statement = dataSource.createStatement(query);
    IDataSet datsSet = QbeDatasetFactory.createDataSet(statement);
View Full Code Here

    List<InLineCalculatedSelectField> selectInLineCalculatedFields = new ArrayList<InLineCalculatedSelectField>();
    AbstractSelectField selectAbstractField;
    DataMartSelectField selectField;
    InLineCalculatedSelectField selectInLineField;
    IModelEntity rootEntity;
    IModelField datamartField;
    String queryName;
    String rootEntityAlias;
    String selectClauseElement; // rootEntityAlias.queryName
    Map entityAliases;
     
    logger.debug("IN");
    buffer = new StringBuffer();
    try {
      selectFields = query.getSelectFields(true);
     
      if(selectFields == null ||selectFields.size() == 0) {
        return "";
      }
     
      entityAliases = (Map)entityAliasesMaps.get(query.getId());
           
      buffer.append(SELECT);   
      if (query.isDistinctClauseEnabled()) {
        buffer.append(" " + DISTINCT);
      }
     
      Iterator it = selectFields.iterator();
      if(it.hasNext()){
        selectAbstractField = (AbstractSelectField)it.next();
        String[] idsForQuery = new String[selectFields.size()-query.getCalculatedSelectFields(true).size()];
        int index=0;
        do{       
          if(selectAbstractField.isDataMartField()){
         
            selectField = (DataMartSelectField)selectAbstractField;
           
            logger.debug("select field unique name [" + selectField.getUniqueName() + "]");
           
            datamartField = getDataSource().getModelStructure().getField(selectField.getUniqueName());
           
            Couple queryNameAndRoot = datamartField.getQueryName();
           
            queryName = (String) queryNameAndRoot.getFirst();
            logger.debug("select field query name [" + queryName + "]");
           
            if(queryNameAndRoot.getSecond()!=null){
              rootEntity = (IModelEntity)queryNameAndRoot.getSecond();  
            }else{
              rootEntity = datamartField.getParent().getRoot();  
            }
           
             
            logger.debug("select field root entity unique name [" + rootEntity.getUniqueName() + "]");
           
View Full Code Here

    return operandElement;
  }
 
  private String buildFieldOperand(Operand operand, Query query, Map entityAliasesMaps) {
    String operandElement;
    IModelField datamartField;
    IModelEntity rootEntity;
    String queryName;
    String rootEntityAlias;
    Map targetQueryEntityAliasesMap;
   
    logger.debug("IN");
   
    try {
     
      targetQueryEntityAliasesMap = (Map)entityAliasesMaps.get(query.getId());
      Assert.assertNotNull(targetQueryEntityAliasesMap, "Entity aliases map for query [" + query.getId() + "] cannot be null in order to execute method [buildUserProvidedWhereField]");
     
     
      datamartField = getDataSource().getModelStructure().getField( operand.values[0] );
      Assert.assertNotNull(datamartField, "DataMart does not cantain a field named [" + operand.values[0] + "]");
      Couple queryNameAndRoot = datamartField.getQueryName();
     
      queryName = (String) queryNameAndRoot.getFirst();
      logger.debug("select field query name [" + queryName + "]");
     
      if(queryNameAndRoot.getSecond()!=null){
        rootEntity = (IModelEntity)queryNameAndRoot.getSecond();  
      }else{
        rootEntity = datamartField.getParent().getRoot();  
      }
      logger.debug("where field query name [" + queryName + "]");
     
      logger.debug("where field root entity unique name [" + rootEntity.getUniqueName() + "]");
     
View Full Code Here

    String operandElement;
   
    String[] chunks;
    String parentQueryId;
    String fieldName;
    IModelField datamartField;
    IModelEntity rootEntity;
    String queryName;
    String rootEntityAlias;
   
   
    logger.debug("IN");
   
    try {
     
      // it comes directly from the client side GUI. It is a composition of the parent query id and filed name,
      // separated by a space
      logger.debug("operand  is equals to [" + operand.values[0] + "]");
     
      chunks = operand.values[0].split(" ");
      Assert.assertTrue(chunks.length >= 2, "Operand [" + chunks.toString() + "] does not contains enougth informations in order to resolve the reference to parent field");
     
      parentQueryId = chunks[0];
      logger.debug("where right-hand field belonging query [" + parentQueryId + "]");
      fieldName = chunks[1];
      logger.debug("where right-hand field unique name [" + fieldName + "]");

      datamartField = getDataSource().getModelStructure().getField( fieldName );
      Assert.assertNotNull(datamartField, "DataMart does not cantain a field named [" + fieldName + "]");
     
      Couple queryNameAndRoot = datamartField.getQueryName();
     
      queryName = (String) queryNameAndRoot.getFirst();
      logger.debug("select field query name [" + queryName + "]");
     
      if(queryNameAndRoot.getSecond()!=null){
        rootEntity = (IModelEntity)queryNameAndRoot.getSecond();  
      }else{
        rootEntity = datamartField.getParent().getRoot();  
      }
      logger.debug("where right-hand field query name [" + queryName + "]");
      logger.debug("where right-hand field root entity unique name [" + rootEntity.getUniqueName() + "]");
     
      Map parentEntityAliases = (Map)entityAliasesMaps.get(parentQueryId);
View Full Code Here

        String type = leadOperand.values[0].substring(startType, endType);
        boundedValue = getValueBounded(operandValueToBound, type);
      }else if (OPERAND_TYPE_FIELD.equalsIgnoreCase(leadOperand.type)
              || OPERAND_TYPE_PARENT_FIELD.equalsIgnoreCase(leadOperand.type)) {
       
        IModelField datamartField = getDataSource().getModelStructure().getField(leadOperand.values[0]);
        boundedValue = getValueBounded(operandValueToBound, datamartField.getType());
      }

      boundedValues[i] = boundedValue;
   
    }
View Full Code Here

TOP

Related Classes of it.eng.qbe.model.structure.IModelField

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.