Examples of TCGOCLVariableClassificator


Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

       *    -> wenn passive Abh�ngige in Bezug zu Konstante gesetzt werden -> in vorherigen Postconditions suchen
       */
      for(TCGConjunction oConjunction : in_colPostcondition.getConjunctions())
      for(TCGOCLExpression oPostCondition : oConjunction.getExpressions())
      {
        TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(oPostCondition);
        // for all active dependent atoms ...
        for(TCGOCLAtom oActiveExpression :
          oClassificator.getClassifiedElementsInExpression(
              VariableClassification.ACTIVE_DEPENDENT)) {
         
          TCGOCLAtom oAtomExp = (TCGOCLAtom)oActiveExpression;
          if(oAtomExp.getElement().equals(in_oProperty))
          {
            oClassificator.shiftSubexpressionToTheLeft(oActiveExpression);
            if(oClassificator.getExpression() instanceof TCGOCLOperation)
            {
              TCGOCLOperation oOperation = (TCGOCLOperation)oClassificator.getExpression();
              TCGOCLVariableClassificator oRightSubClassificator = new TCGOCLVariableClassificator(oOperation.getRight());
             
              // does the right side contain an active dependent element? -> schwierig -> daf�r oActiveExpression und
              // oActiveSubExpression auseinanderhalten !
              //TCGOCLExpression oActiveSubExpression = oRightSubClassificator.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT);
 
              // does the right side contain a passive dependent element?
              List<TCGOCLAtom> colPassiveDependentSubExpression =
                oRightSubClassificator.getClassifiedElementsInExpression(
                    VariableClassification.PASSIVE_DEPENDENT);
              List<TCGOCLAtom> colInputParameterSubExpression =
                oRightSubClassificator.getClassifiedElementsInExpression(
                    VariableClassification.INPUT_PARAMETER);
             
              if((!colPassiveDependentSubExpression.isEmpty()) ||
                  (!colInputParameterSubExpression.isEmpty())) {
                TCGOCLExpression oNewExp = TCGOCLExpressionHelperClass.connectPreconditionAndPostcondition(in_oPrecondition, oPostCondition);
                if(oNewExp != null)
                  in_colNewExpressions.add(oNewExp);
              } else { // does the right side contain just independent elements?
                // compare the expressions of both elements!
                ValueTypeRange oPostConditionRange =
                  OCLExpressionValueTypeRangeFactory.
                  getValueTypeRangeForRightSideOfExpression(
                      oOperation);
                ValueTypeRange oPreConditionRange =
                  OCLExpressionValueTypeRangeFactory.
                  getValueTypeRangeForRightSideOfExpression(
                      in_oPrecondition);
               
               
  //              TCGEquivalenceClass oEqPostconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(oOperation);
  //              TCGEquivalenceClass oEqPreconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(in_oPrecondition);
  //              if(oEqPostconditionClass != null && oEqPreconditionClass != null)
                if(oPostConditionRange != null && oPreConditionRange != null)
                {
                  // postcondition
                  if(ValueTypeRangeHelper.outerVTRangeContainsInnerVTRange(oPreConditionRange, oPostConditionRange, false))
                  //if(ConversionController.outerEquivalenceClassContainsInnerClass(oEqPreconditionClass, oEqPostconditionClass, false))
                  {
                    // alle Elemente der Konjunktion durchsuchen
                    for(TCGConjunction oIndependentConjunction : in_colPostcondition.getConjunctions())
                    for(TCGOCLExpression oIndependentPostCondition : oIndependentConjunction.getExpressions())
                    {
                      // au�er der gerade behandelten Nachbedingung
                      if(oIndependentPostCondition != oPostCondition)
                      {
                        TCGOCLVariableClassificator oIndependentClassificator = new TCGOCLVariableClassificator(oIndependentPostCondition);
                        if(oIndependentClassificator.getClassifiedElementsInExpression(VariableClassification.ACTIVE_DEPENDENT).isEmpty())
                        {
                          // die Elemente ohne aktive Variablen weiter in fr�heren Postconditions checken
                          in_colNewExpressions.add(oIndependentPostCondition);
                        }
                      }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

 
      // iterate over all expressions of all postcondition conjunctions
      for(TCGConjunction oPostConjunction : in_colPostcondition.getConjunctions()) {
        EXPRESSIONLOOP: for(TCGOCLExpression oPostCondition : oPostConjunction.getExpressions()) {
         
          TCGOCLVariableClassificator oClassificator =
            new TCGOCLVariableClassificator(oPostCondition);
          for(TCGOCLAtom oActivePostExpression :
            oClassificator.getClassifiedElementsInExpression(
                VariableClassification.ACTIVE_DEPENDENT)) {
           
            oClassificator.shiftSubexpressionToTheLeft(oActivePostExpression);
            TCGOCLAtom oAtomPostExp = (TCGOCLAtom)oActivePostExpression;
           
            // 1) precondition references the same active object as postcondition
            // 2) expression is an operation (else a transformation is not possible)
            if((TCGOCLExpressionHelperClass.conditionContainsReferenceToObject(
              in_oPrecondition, oAtomPostExp.getElement()))) //  &&
              //oClassificator.getExpression() instanceof TCGOCLOperation)
            {
             
              TCGOCLVariableClassificator oRightSubClassificator =
                new TCGOCLVariableClassificator(oClassificator.getExpression());
             
              // does the right side contain a passive dependent element?
              List<TCGOCLAtom> colPassiveDependentSubExpression =
                oRightSubClassificator.getClassifiedElementsInExpression(
                    VariableClassification.PASSIVE_DEPENDENT);
              List<TCGOCLAtom> colInputParameterSubExpression =
                oRightSubClassificator.getClassifiedElementsInExpression(
                    VariableClassification.INPUT_PARAMETER);
             
              if((!colPassiveDependentSubExpression.isEmpty()) ||
                  (!colInputParameterSubExpression.isEmpty()))
              {
                TCGOCLExpression oNewExpression = TCGOCLExpressionHelperClass.connectPreconditionAndPostcondition(
                    in_oPrecondition, oPostCondition);
                if(oNewExpression != null) {
                  in_colNewExpressions.add(oNewExpression);
                }
                io_oPostConjunction.getExpressions().addAll(
                    oPostConjunction.getExpressions());
                eRetValue = PrePostComparisonResult.RESOLVED_CONDITION;
              }
              else { // does the right side contain just independent elements?

//                Hier ansetzen - Postcondition kann auch LateEvaluationGroups erzeugen
                // TODO : AA hier Abh�ngigkeiten bei postconditions einbauen
//                List<TCGOCLAtom> colChangeableParameters =
//                  TCGOCLExpressionHelperClass.getPassiveDependentVariablesAndInputParameters(oPostCondition);

                ValueTypeRange oPostValueRange =
                  OCLExpressionValueTypeRangeFactory.
                  getValueTypeRangeForRightSideOfExpression(
                      oPostCondition);

                // compare the expressions of both elements!
               
                if(oPreValueRange != null && oPostValueRange != null)
                {
                  // postcondition
                  if(ValueTypeRangeHelper.outerVTRangeContainsInnerVTRange(
                      oPreValueRange, oPostValueRange, false))
                  {
                    // alle Elemente der Konjunktion durchsuchen
                    for(TCGOCLExpression oIndependentPostCondition : oPostConjunction.getExpressions())
                    {
                      // au�er der gerade behandelten Nachbedingung
                      if(oIndependentPostCondition != oPostCondition)
                      {
                        TCGOCLVariableClassificator oIndependentClassificator = new TCGOCLVariableClassificator(oIndependentPostCondition);
                        if(oIndependentClassificator.getClassifiedElementsInExpression(VariableClassification.ACTIVE_DEPENDENT).isEmpty())
                        {
                          // die Elemente ohne aktive Variablen weiter in fr�heren Postconditions checken
                          if(oIndependentPostCondition == null) {
                            System.out.println("new expression is zero!");
                          }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

 
  public static List<TCGOCLAtom> getVariablesOfType(
      TCGOCLExpression in_oExpression,
      VariableClassification in_oClassification)
  {
    TCGOCLVariableClassificator oClassificator =
      new TCGOCLVariableClassificator(in_oExpression);
    return oClassificator.getClassifiedElementsInExpression(
        in_oClassification);   
  }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

    int nWarrantedAtoms = getPassiveDependentVariablesAndInputParameters(in_oWarrantedExpression).size();
   
    if((nCheckedAtoms == 1) && (nWarrantedAtoms == 1)) {
      // both expressions are operations
      if(in_oCheckedExpression instanceof TCGOCLOperation) {
        TCGOCLVariableClassificator oCheckedClassificator =
          new TCGOCLVariableClassificator(in_oCheckedExpression);
        oCheckedElement =
          TCGOCLExpressionHelperClass.
          getDependentVariablesAndInputParameters(oCheckedClassificator).get(0);
        oCheckedClassificator.shiftSubexpressionToTheLeft(oCheckedElement);
      }
      else {
        oCheckedElement = (TCGOCLAtom)in_oCheckedExpression;
      }
     
      if(in_oWarrantedExpression instanceof TCGOCLOperation) {
        TCGOCLVariableClassificator oWarrantedClassificator =
          new TCGOCLVariableClassificator(in_oWarrantedExpression);
        oWarrantedElement =
          TCGOCLExpressionHelperClass.
          getDependentVariablesAndInputParameters(oWarrantedClassificator).get(0);
        oWarrantedClassificator.shiftSubexpressionToTheLeft(oWarrantedElement);
      }
      else {
        oWarrantedElement = (TCGOCLAtom)in_oWarrantedExpression;
      }
       
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

    return in_oTCGOCLExpression;
  }

  public static boolean needsToBeConverted(TCGOCLExpression in_oExpression) {
    try {
      TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(
          in_oExpression);
 
      // there is at least one dependent variable -> convert the
      // expression!
      if (oClassificator.getNumberOfDependentVariables() > 0)
        return true;
      else
        return false;
    } catch (Exception e) {
      Configuration.handleException(e);
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

   * element is then shifted to the left.
   */
  public static void normalizeExpression(TCGOCLExpression in_oCondition) {
    if (in_oCondition != null) {
      // find input parameter in condition
      TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(
          in_oCondition);
      TCGOCLExpression oToBeIsolatedOnLeft = null;
      List<TCGOCLAtom> colExpression = oClassificator
          .getClassifiedElementsInExpression(VariableClassification.ACTIVE_DEPENDENT);
      if (colExpression.isEmpty()) {
        colExpression = oClassificator
          .getClassifiedElementsInExpression(VariableClassification.INPUT_PARAMETER);
        if (colExpression.isEmpty()) {
          colExpression = oClassificator
            .getClassifiedElementsInExpression(VariableClassification.PASSIVE_DEPENDENT);
          if(!colExpression.isEmpty())
            oToBeIsolatedOnLeft = colExpression.get(0);
        }
        else {
          oToBeIsolatedOnLeft = colExpression.get(0);
        }
      }
      else {
        oToBeIsolatedOnLeft = colExpression.get(0);
      }
 
      if (oToBeIsolatedOnLeft != null) {
        // if not isolated on left side - then isolate!
        if (!oClassificator
            .expressionIsIsolatedOnLeftSide(oToBeIsolatedOnLeft)) {
          oClassificator
              .shiftSubexpressionToTheLeft(oToBeIsolatedOnLeft);
        }
      }
    }
  }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

      HashMap<EObject, ValueTypeRange> io_colElementToValueRange,
      HashMap<EObject, ArrayList<TCGOCLExpression>> io_colElementToExpressions)
  {
    ArrayList<TCGOCLExpression> colContradictingExpressions =
      new ArrayList<TCGOCLExpression>();
    TCGOCLVariableClassificator oClassificator =
      new TCGOCLVariableClassificator(in_oExpression);
    TCGOCLAtom oInterestingElement = null;
    EObject oReferredObject = null;
    ValueTypeRange oActualValueRange = null;
   
    // current expression is an operation
    if(in_oExpression instanceof TCGOCLOperation) {
      TCGOCLOperation oOperationExp = (TCGOCLOperation)in_oExpression;
      // first check that the expression has no dependent elements
      if((oClassificator.getNumberOfDependentVariables() == 0) &&
          (oClassificator.getNumberOfInputParameter() == 0)) {
        ValueTypeRange oExpressionRange =
          OCLExpressionValueTypeRangeFactory.
          getValueTypeRangeForRightSideOfExpression(
              oOperationExp);
        if(oExpressionRange == null) {
          TCGOCLExpressionHelperClass.
            getDependentVariableOrInputParameter(in_oExpression);
        }
        else if(oExpressionRange.isEmpty())
        {
          colContradictingExpressions.add(oOperationExp);
          return colContradictingExpressions;
        }
      }
      else {
        // TODO #### Widerspr�che auch f�r Eingabeparameter aufdecken
        // step 1: hashmap von Variablen auf ValueRanges bauen -> immer erweitern bis zum Widerspruch
        if((oClassificator.getNumberOfDependentVariables() +
            oClassificator.getNumberOfInputParameter() == 1)) {
          oInterestingElement =
            getDependentVariablesAndInputParameters(oClassificator).get(0);
          oReferredObject =
            getReferencedElement(oInterestingElement);
          oClassificator.shiftSubexpressionToTheLeft(oInterestingElement);
          oActualValueRange =
            OCLExpressionValueTypeRangeFactory.
            getValueTypeRangeForRightSideOfExpression(
                oOperationExp);
        }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

  /*
   * returns the one parameter that could be the "target" of an expression: dependent variable or input parameter
   */
  public static List<TCGOCLAtom> getDependentVariableOrInputParameter(
      TCGOCLExpression in_oExpression) {
    TCGOCLVariableClassificator oClassificator =
      new TCGOCLVariableClassificator(in_oExpression);
    return getDependentVariablesAndInputParameters(oClassificator);
  }
View Full Code Here

Examples of net.sf.parteg.base.testcasegraph.ocl.parser.TCGOCLVariableClassificator

 
  public static List<TCGOCLAtom> getPassiveDependentVariablesAndInputParameters(
      TCGOCLExpression in_oExpression) {
    List<TCGOCLAtom> colRetValues = new ArrayList<TCGOCLAtom>();
   
    TCGOCLVariableClassificator oClassificator =
      new TCGOCLVariableClassificator(in_oExpression);
   
    colRetValues.addAll(oClassificator.
        getClassifiedElementsInExpression(VariableClassification.PASSIVE_DEPENDENT));
    colRetValues.addAll(oClassificator.
        getClassifiedElementsInExpression(VariableClassification.INPUT_PARAMETER));
    return colRetValues;
  }
View Full Code Here

Examples of net.sf.parteg.base.testcasetree.ocl.parser.TCGOCLVariableClassificator

   */
  private void referToEvent(TCGEvent in_oTCGEvent, TCGOCLExpression in_oExpression)
  {
    if(in_oExpression != null)
    {
      TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(in_oExpression);
      TCGOCLExpression oExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.INPUT_PARAMETER);
      TCGOCLAtom oAtom = (TCGOCLAtom)oExpression;
      if(oAtom != null)
      {
        for(TCGParameter oParameter : in_oTCGEvent.getParameters())
        {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.