public static boolean setStringDataFilter(Analysis analysis, String datafilterString) {
   EList<Domain> dataFilters = analysis.getParameters().getDataFilter();
   // update existing filters
   if (!dataFilters.isEmpty()) {
     Domain domain = dataFilters.get(0);
     EList<RangeRestriction> ranges = domain.getRanges();
     RangeRestriction rangeRestriction =
         (ranges.isEmpty()) ? DomainHelper.addRangeRestriction(domain) : ranges.get(0);
     BooleanExpressionNode expressions = rangeRestriction.getExpressions();
     if (expressions == null) {
       expressions = BooleanExpressionHelper.createBooleanExpressionNode(datafilterString);
       rangeRestriction.setExpressions(expressions);
     } else {
       Expression expression = expressions.getExpression();
       if (expression == null) {
         expression =
             BooleanExpressionHelper.createTdExpression(
                 BooleanExpressionHelper.DEFAULT_LANGUAGE, datafilterString);
         expressions.setExpression(expression);
       } else {
         expression.setBody(datafilterString);
       }
     }
     return false;
   }
   // else
   return dataFilters.add(createDomain(analysis, datafilterString));
 }
Example #2
0
 /**
  * DOC xqliu Comment method "createUserDefIndicator".
  *
  * @param indicatorDefinition
  * @param pattern
  * @return
  */
 public static Indicator createUserDefIndicator(
     IndicatorDefinition indicatorDefinition, Pattern pattern) {
   UserDefIndicator indicator = IndicatorSqlFactory.eINSTANCE.createUserDefIndicator();
   IndicatorParameters indicParams = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
   Domain validData = DomainFactory.eINSTANCE.createDomain();
   validData.getPatterns().add(pattern);
   indicParams.setDataValidDomain(validData);
   indicator.setParameters(indicParams);
   indicator.setName(UDIHelper.getMatchingIndicatorName(indicatorDefinition, pattern));
   return indicator;
 }
  /**
   * DOC xqliu Comment method "getStringDataFilter".
   *
   * @param analysis
   * @param index 0 for DataFilterA, 1 for DataFilterB
   * @return
   */
  public static String getStringDataFilter(Analysis analysis, int index) {
    AnalysisParameters parameters = analysis.getParameters();
    if (parameters == null) {
      return null;
    }
    EList<Domain> dataFilters = parameters.getDataFilter();
    // remove existing filters
    if (dataFilters == null || dataFilters.isEmpty()) {
      return null;
    }

    int i = 0;
    for (Domain domain : dataFilters) {
      if (domain == null) {
        continue;
      }
      EList<RangeRestriction> ranges = domain.getRanges();
      for (RangeRestriction rangeRestriction : ranges) {
        BooleanExpressionNode expressions = rangeRestriction.getExpressions();
        if (expressions == null) {
          continue;
        }
        Expression expression = expressions.getExpression();
        if (expression == null) {
          continue;
        }
        if (i == index) {
          // MOD klliu 2011-07-14 bug 23150 solve an NPE
          String body = expression.getBody();
          if (body == null) {
            continue;
          }
          // ~
          return body.trim();
        } else if (i > index) {
          return null;
        }
      }
      i++;
    }
    return null;
  }
 /**
  * DOC xqliu Comment method "setStringDataFilter".
  *
  * @param analysis
  * @param datafilterString
  * @param index 0 for DataFilterA, 1 for DataFilterB
  * @return
  */
 public static boolean setStringDataFilter(Analysis analysis, String datafilterString, int index) {
   if (index == 1) {
     EList<Domain> dataFilters = analysis.getParameters().getDataFilter();
     int size = dataFilters.size();
     if (size == 0) {
       dataFilters.add(createDomain(analysis, "")); // $NON-NLS-1$
       return dataFilters.add(createDomain(analysis, datafilterString, "1")); // $NON-NLS-1$
     } else if (size == 1) {
       return dataFilters.add(createDomain(analysis, datafilterString, "1")); // $NON-NLS-1$
     } else if (size == 2) {
       Domain domain = dataFilters.get(1);
       EList<RangeRestriction> ranges = domain.getRanges();
       RangeRestriction rangeRestriction =
           (ranges.isEmpty()) ? DomainHelper.addRangeRestriction(domain) : ranges.get(0);
       BooleanExpressionNode expressions = rangeRestriction.getExpressions();
       if (expressions == null) {
         expressions = BooleanExpressionHelper.createBooleanExpressionNode(datafilterString);
         rangeRestriction.setExpressions(expressions);
       } else {
         Expression expression = expressions.getExpression();
         if (expression == null) {
           expression =
               BooleanExpressionHelper.createTdExpression(
                   BooleanExpressionHelper.DEFAULT_LANGUAGE, datafilterString);
           expressions.setExpression(expression);
         } else {
           expression.setBody(datafilterString);
         }
       }
       return false;
     } else {
       return false;
     }
   } else {
     return setStringDataFilter(analysis, datafilterString);
   }
 }