Package it.eng.qbe.model.structure

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


 
 
  public String parseInLinecalculatedField(String expr, Query query, Map entityAliasesMaps){
    List allSelectFields;
    IModelEntity rootEntity;
    IModelField datamartField;
    String queryName;
    String rootEntityAlias;
    Map entityAliases = (Map)entityAliasesMaps.get(query.getId());
    List<String> aliasEntityMapping = new  ArrayList<String>();
    List<String> aliases = new  ArrayList<String>();
   
    StringTokenizer stk = new StringTokenizer(expr, "+-|*/()");
    while(stk.hasMoreTokens()){
      String alias = stk.nextToken().trim();
      String uniqueName;
      allSelectFields = query.getSelectFields(false);
      for(int i=0; i<allSelectFields.size(); i++){
        if(allSelectFields.get(i).getClass().equals(DataMartSelectField.class) && ((DataMartSelectField)allSelectFields.get(i)).getAlias().equals(alias)){
          uniqueName=((DataMartSelectField)allSelectFields.get(i)).getUniqueName();
          datamartField = getDataSource().getModelStructure().getField(uniqueName)
          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();  
          }
          rootEntityAlias = (String)entityAliases.get(rootEntity.getUniqueName());
          queryName = ((DataMartSelectField)allSelectFields.get(i)).getFunction().apply(rootEntityAlias+"."+queryName);
          aliasEntityMapping.add(queryName);
          aliases.add(alias);
View Full Code Here


              Set fields = filter.getFields();
              Properties props = new Properties();
              Iterator fieldIterator = fields.iterator();
              while(fieldIterator.hasNext()) {
                String fieldName = (String)fieldIterator.next();
                IModelField filed = null;
                Iterator subEntityFields = subEntity.getAllFields().iterator();
                while(subEntityFields.hasNext()) {
                  filed = (IModelField)subEntityFields.next();
                  if(((String)filed.getQueryName().getFirst()).endsWith("." + fieldName)) break;
                }
                String entityAlias = (String)entityAliases.get(entityUniqueName);
                props.put(fieldName, entityAlias + "." + filed.getQueryName());
              }
              String filterCondition = null;
              try {
                filterCondition = StringUtils.replaceParameters(filter.getFilterCondition(), "F", props);
              } catch (IOException e) {
                e.printStackTrace();
              }
             
              if(filterCondition != null) {
                if(buffer.toString().length() > 0) {
                  buffer.append(" and ");
                } else {
                  buffer.append("where ");
                }
                buffer.append(filterCondition + " ");
              }
            }
          }
        }
      }
    }
   
    // add joins required by views
    try {
    Map<String, Set<String>> viewToInnerEntitiesMap = new HashMap<String, Set<String>>();
    List<ISelectField> selectFields =  query.getSelectFields(true);
    for(ISelectField selectField : selectFields) {
      if(selectField.isDataMartField()){
        DataMartSelectField dataMartSelectField = (DataMartSelectField)selectField;
        IModelField modelField = getDataSource().getModelStructure().getField(dataMartSelectField.getUniqueName());
        List<ModelViewEntity> viewEntities = modelField.getParentViews();
        if(viewEntities!=null){
          for(ModelViewEntity viewEntity : viewEntities) {
            if( !viewToInnerEntitiesMap.containsKey( viewEntity.getUniqueName() ) ) {
              viewToInnerEntitiesMap.put(viewEntity.getUniqueName(), new HashSet<String>());
            }
            Set innerEntities = (Set)viewToInnerEntitiesMap.get( viewEntity.getUniqueName());
            innerEntities.add(modelField.getParent().getUniqueName());
          }
        }       
      }
    }
   
    // per il momento metto le join anche se non ce n'� bisogno
    for(String viewName : viewToInnerEntitiesMap.keySet()) {
      ModelViewEntity view = (ModelViewEntity)getDataSource().getModelStructure().getEntity( viewName );
      List<Join> joins = view.getJoins();
      for(Join join : joins) {
        IConditionalOperator conditionalOperator = null;
        conditionalOperator = (IConditionalOperator)JPQLStatementConditionalOperators.getOperator( CriteriaConstants.EQUALS_TO );
       
        String sourceEntityAlias = (String)entityAliases.get(join.getSourceEntity().getUniqueName());
        if(sourceEntityAlias == null) {
          sourceEntityAlias = getNextAlias(entityAliasesMaps);
          entityAliases.put(join.getSourceEntity().getUniqueName(), sourceEntityAlias);
        }
        String destinationEntityAlias = (String)entityAliases.get(join.getDestinationEntity().getUniqueName());
        if(destinationEntityAlias == null) {
          destinationEntityAlias = getNextAlias(entityAliasesMaps);
          entityAliases.put(join.getDestinationEntity().getUniqueName(), destinationEntityAlias);
        }
       
        for(int i = 0; i < join.getSourceFileds().size(); i++) {
          IModelField sourceField = join.getSourceFileds().get(i);
          IModelField destinationField = join.getDestinationFileds().get(i);
          String sourceFieldName = (String)sourceField.getQueryName().getFirst();
          String destinationFieldName = (String)destinationField.getQueryName().getFirst();
         
          String leftHandValue = sourceEntityAlias + "." + sourceFieldName;
          String rightHandValues = destinationEntityAlias + "." + destinationFieldName;
         
          String filterCondition = conditionalOperator.apply(leftHandValue, new String[]{rightHandValues});
View Full Code Here

        InLineCalculatedSelectField icf = (InLineCalculatedSelectField)abstractSelectedField;
        fieldName = parseInLinecalculatedField(icf.getExpression(), query, entityAliasesMaps);
      }else{
     
        DataMartSelectField groupByField = (DataMartSelectField)abstractSelectedField;
        IModelField datamartField = getDataSource().getModelStructure().getField(groupByField.getUniqueName());
       
           
        Couple queryNameAndRoot = datamartField.getQueryName();
        IModelEntity root;
        String queryName = (String) queryNameAndRoot.getFirst();
        logger.debug("select field query name [" + queryName + "]");
       
        if(queryNameAndRoot.getSecond()!=null){
          root = (IModelEntity)queryNameAndRoot.getSecond();  
        }else{
          root = datamartField.getParent().getRoot();  
        }
       
       
        if(!entityAliases.containsKey(root.getUniqueName())) {
          entityAliases.put(root.getUniqueName(), getNextAlias(entityAliasesMaps));
View Full Code Here

    while( it.hasNext() ) {
      selectField = (DataMartSelectField)it.next();
     
      Assert.assertTrue(selectField.isOrderByField(), "Field [" + selectField.getUniqueName() +"] is not an orderBy filed");
     
      IModelField datamartField = getDataSource().getModelStructure().getField(selectField.getUniqueName());
      Couple queryNameAndRoot = datamartField.getQueryName();
      IModelEntity root;
      String queryName = (String) queryNameAndRoot.getFirst();
      logger.debug("select field query name [" + queryName + "]");
     
      if(queryNameAndRoot.getSecond()!=null){
        root = (IModelEntity)queryNameAndRoot.getSecond();  
      }else{
        root = datamartField.getParent().getRoot();  
      }
     
      if(!entityAliases.containsKey(root.getUniqueName())) {
        entityAliases.put(root.getUniqueName(), getNextAlias(entityAliasesMaps));
      }
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.