Package net.sf.parteg.base.testcasetree.ocl.parser

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


            oTransition.getPostcondition().getConjunctions().add(
                GeneratedFactory.eINSTANCE.createTCGConjunction());
          oTransition.getPostcondition().getConjunctions().get(0).getExpressions().add(oExpression);
         
          // if this postcondition contains no dependent elements -> then adapt the domain!
          TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(oExpression);
          TCGOCLExpression oActiveDependentExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT);
//          TCGOCLExpression oPassiveDependentExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.PASSIVE_DEPENDENT);
          if(oActiveDependentExpression == null)
          {
//            if(oPassiveDependentExpression == null) // just constants and input parameters
//            {
View Full Code Here

     *    -> 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);
      TCGOCLExpression oActiveExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT);
      if(oActiveExpression instanceof TCGOCLAtom)
      {
        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?
            TCGOCLExpression oPassiveDependentSubExpression = oRightSubClassificator.getClassifiedElementInExpression(VariableClassification.PASSIVE_DEPENDENT);
            TCGOCLExpression oInputParameterSubExpression = oRightSubClassificator.getClassifiedElementInExpression(VariableClassification.INPUT_PARAMETER);
            if((oPassiveDependentSubExpression != null) || (oInputParameterSubExpression != null))
            {
              in_colNewExpressions.add(connectPreconditionAndPostcondition(in_oPrecondition, oPostCondition));
            }
            else { // does the right side contain just independent elements?
              // compare the expressions of both elements!
              TCGEquivalenceClass oEqPostconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(oOperation);
              TCGEquivalenceClass oEqPreconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(in_oPrecondition);
              if(oEqPostconditionClass != null && oEqPreconditionClass != null)
              {
                // postcondition
                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.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT) == null)
                      {
                        // die Elemente ohne aktive Variablen weiter in fr�heren Postconditions checken
                        in_colNewExpressions.add(oIndependentPostCondition);
                      }
                    }
View Full Code Here

      ArrayList<TCGOCLExpression> in_colNewExpressions)
  {
    for(TCGConjunction oConjunction : in_colPostcondition.getConjunctions())
    for(TCGOCLExpression oPostCondition : oConjunction.getExpressions())
    {
      TCGOCLVariableClassificator oClassificator =
        new TCGOCLVariableClassificator(oPostCondition);
      TCGOCLExpression oActivePostExpression =
        oClassificator.getClassifiedElementInExpression(
            VariableClassification.ACTIVE_DEPENDENT);
      if(oActivePostExpression instanceof TCGOCLAtom)
      {
        TCGOCLAtom oAtomPostExp = (TCGOCLAtom)oActivePostExpression;
        if(TCGOCLExpressionHelperClass.conditionContainsReferenceToObject(
            in_oPrecondition, oAtomPostExp.getElement()))
        {
          oClassificator.shiftSubexpressionToTheLeft(oActivePostExpression);
          if(oClassificator.getExpression() instanceof TCGOCLOperation)
          {
            TCGOCLOperation oOperation =
              (TCGOCLOperation)oClassificator.getExpression();
            TCGOCLVariableClassificator oRightSubClassificator =
              new TCGOCLVariableClassificator(oOperation.getRight());
           
            // does the right side contain a passive dependent element?
            TCGOCLExpression oPassiveDependentSubExpression = oRightSubClassificator.getClassifiedElementInExpression(VariableClassification.PASSIVE_DEPENDENT);
            TCGOCLExpression oInputParameterSubExpression = oRightSubClassificator.getClassifiedElementInExpression(VariableClassification.INPUT_PARAMETER);
            if((oPassiveDependentSubExpression != null) || (oInputParameterSubExpression != null))
            {
              in_colNewExpressions.add(connectPreconditionAndPostcondition(in_oPrecondition, oPostCondition));
            }
            else { // does the right side contain just independent elements?
              // compare the expressions of both elements!
              TCGEquivalenceClass oEqPostconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(oOperation);
              TCGEquivalenceClass oEqPreconditionClass = ExpressionConverter.getEquivalenceClassForRightSideOfExpression(in_oPrecondition);
              if(oEqPostconditionClass != null && oEqPreconditionClass != null)
              {
                // postcondition
                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.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT) == null)
                      {
                        // die Elemente ohne aktive Variablen weiter in fr�heren Postconditions checken
                        in_colNewExpressions.add(oIndependentPostCondition);
                      }
                    }
View Full Code Here

  }
 
 
  private boolean expressionContainsActiveProperty(TCGOCLExpression in_oExpression, Property in_oSearchedProperty)
  {
    TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(in_oExpression);
    TCGOCLExpression oExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT);
    if(oExpression instanceof TCGOCLAtom)
    {
      TCGOCLAtom oAtomExp = (TCGOCLAtom)oExpression;
      if(oAtomExp.getElement().equals(in_oSearchedProperty))
        return true;
View Full Code Here

  {
    // simple contradiction in just one condition
    for(TCGOCLExpression oExpression : in_oConjunction.getExpressions())
    {
      // first check that the expression has no dependent elements
      TCGOCLVariableClassificator oClassificator = new TCGOCLVariableClassificator(oExpression);
     
      // TODO #### Widerspr�che auch f�r Eingabeparameter aufdecken
     
      if((oClassificator.getNumberOfDependentVariables() == 0) &&
          (oClassificator.getNumberOfInputParameter() == 0))
      {
        try {
          if(oExpression instanceof TCGOCLOperation)
          {
            TCGOCLOperation oOperation = (TCGOCLOperation)oExpression;
View Full Code Here

 
  public static TCGOCLExpression getVariableOfType(
      TCGOCLExpression in_oExpression,
      VariableClassification in_oClassification)
  {
    TCGOCLVariableClassificator oClassificator =
      new TCGOCLVariableClassificator(in_oExpression);
    return oClassificator.getClassifiedElementInExpression(
        in_oClassification);   
  }
View Full Code Here

  }
 
  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)
View Full Code Here

  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;
      TCGOCLExpression oExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.ACTIVE_DEPENDENT);
      if(oExpression != null)
        oToBeIsolatedOnLeft = oExpression;
      else
      {
        oExpression = oClassificator.getClassifiedElementInExpression(VariableClassification.INPUT_PARAMETER);
        if(oExpression != null)
          oToBeIsolatedOnLeft = oExpression;
        else
        {
          oToBeIsolatedOnLeft = oClassificator.getClassifiedElementInExpression(VariableClassification.PASSIVE_DEPENDENT);
        }
      }
     
      if(oToBeIsolatedOnLeft != null)
      {
        // if not isolated on left side - then isolate!
        if(!oClassificator.expressionIsIsolatedOnLeftSide(oToBeIsolatedOnLeft))
        {
          oClassificator.shiftSubexpressionToTheLeft(oToBeIsolatedOnLeft);
        }
      }
    }
  }
View Full Code Here

TOP

Related Classes of net.sf.parteg.base.testcasetree.ocl.parser.TCGOCLVariableClassificator

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.