Examples of FeatureRelation


Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

    result.add(father);
    AtomedFeature fatherAtomedFeature = allAtomedFeatures.get(father);

    Iterator e = null;
    Feature child = null;
    FeatureRelation r = null;
    AtomedFeature startAtomedFeature = null, endAtomedFeature = null;

    e = include.keySet().iterator();
    while (e.hasNext()) {
      r = (FeatureRelation) include.get(e.next());
      if (r.getStartFeature().equals(father)) {
        getDepthVisitFeatureOrder(r.getEndFeature() , result);
      }
    }

    e = dimensionValue.keySet().iterator();
    while (e.hasNext()) {
      r = (FeatureRelation) dimensionValue.get(e.next());
      if (r.getStartFeature().equals(father)) {
        getDepthVisitFeatureOrder(r.getEndFeature() , result);
      }
    }

    e = require.keySet().iterator();
    while (e.hasNext()) {
      r = (FeatureRelation) require.get(e.next());
      if (r.getStartFeature().equals(father)) {
        getDepthVisitFeatureOrder(r.getEndFeature() , result);
      }
    }
  }
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

    while(e.hasNext()){
      list.add((Feature)e.next());
     
      while(!list.isEmpty()){
        Iterator    i  =  null;
        FeatureRelation  r  =  null;
        AtomedFeature  startAtomedFeature  =  null,
                endAtomedFeature  =  null,
                fatherAtomedFeature  =  null;
       
        Feature  father  =  list.getFirst();
        list.removeFirst();
        fatherAtomedFeature  =  allAtomedFeatures.get(father)
       
        i  =  include.keySet().iterator();
        while(i.hasNext()){
          Object  key  =  (Object)i.next();
          r  =  (FeatureRelation)include.get(key);
//          ��������ϵ��������������������Ϊend��     
//          ��������ϵ�б���������Ϊstart��ȡ���ǵ�ԭ�Ӽ�
          startAtomedFeature  =  allAtomedFeatures.get(r.getStartFeature());
          endAtomedFeature  =  allAtomedFeatures.get(r.getEndFeature());
         
//          ֻ��start��father��ͬһԭ�Ӽ��ڣ�
//          ��end��start����ͬһԭ�Ӽ��ڣ�
//          ��˵�����������ϵ����Ч��
          if  startAtomedFeature.atomSetNum  ==  fatherAtomedFeature.atomSetNum
              &&
              startAtomedFeature.atomSetNum  !=  endAtomedFeature.atomSetNum){
            int  temp  =  bdd.ref(
                      bdd.imp(endAtomedFeature.BddVar
                          ,startAtomedFeature.BddVar)
                        );
            bdd.bddRoot  =  bdd.andTo(bdd.bddRoot, temp);
            bdd.deref(temp);
          /*  System.out.println(  endAtomedFeature.feature.getName()  +  "   "+
                "->   "  +
                startAtomedFeature.feature.getName()  +  ":   "+
                endAtomedFeature.atomSetNum  +  "   "  +
                "->   "  +
                startAtomedFeature.atomSetNum  +  "��   "+
                endAtomedFeature.BddVar    +  "   "  +
                "->   "  +
                startAtomedFeature.BddVar);*/
           
            i.remove();
            include.remove(key);
            list.addLast(endAtomedFeature.feature);
          }//end if
          else if(startAtomedFeature.atomSetNum  ==  endAtomedFeature.atomSetNum){
            i.remove();
            require.remove(key);
          }
         
        }//end while
       
        i  =  dimensionValue.keySet().iterator();
        while(i.hasNext()){
          Object  key  =  (Object)i.next();
          r  =  (FeatureRelation)dimensionValue.get(key);
//          ��������ϵ��������������������Ϊend��     
//          ��������ϵ�б���������Ϊstart��ȡ���ǵ�ԭ�Ӽ�
          startAtomedFeature  =  allAtomedFeatures.get(r.getStartFeature());
          endAtomedFeature  =  allAtomedFeatures.get(r.getEndFeature());
         
//          ֻ��start��father��ͬһԭ�Ӽ��ڣ�
//          ��end��start����ͬһԭ�Ӽ��ڣ�
//          ��˵�����������ϵ����Ч��
          if  startAtomedFeature.atomSetNum  ==  fatherAtomedFeature.atomSetNum
              &&
              startAtomedFeature.atomSetNum  !=  endAtomedFeature.atomSetNum){
            //list.addLast(r.getEndFeature());
            int  temp  =  bdd.ref(
                      bdd.imp(endAtomedFeature.BddVar
                          ,startAtomedFeature.BddVar)
                        );
            bdd.bddRoot  =  bdd.andTo(bdd.bddRoot, temp);
            bdd.deref(temp);
           
        /*    System.out.println(  endAtomedFeature.feature.getName()  +  "   "+
                "->   "  +
                startAtomedFeature.feature.getName()  +  ":   "+
                endAtomedFeature.atomSetNum  +  "   "  +
                "->   "  +
                startAtomedFeature.atomSetNum  +  "��   "+
                endAtomedFeature.BddVar    +  "   "  +
                "->   "  +
                startAtomedFeature.BddVar);*/
           
            i.remove();
            dimensionValue.remove(key);
            list.addLast(endAtomedFeature.feature);
          }//end if
          else if(startAtomedFeature.atomSetNum  ==  endAtomedFeature.atomSetNum){
            i.remove();
            require.remove(key);
          }
         
        }//end while
       
       
//!!!!!!!!!!!require��dimensionValue��include��ͬ���ر�Ҫע�⣺
        //require��start->end
        //dimensionValue��include��end->start
        i  =  require.keySet().iterator();
        while(i.hasNext()){
          Object  key  =  (Object)i.next();
          r  =  (FeatureRelation)require.get(key);
//          ��������ϵ��������������������Ϊstart��     
//          ��������ϵ�б���������Ϊend��ȡ���ǵ�ԭ�Ӽ�
          startAtomedFeature  =  allAtomedFeatures.get(r.getStartFeature());
          endAtomedFeature  =  allAtomedFeatures.get(r.getEndFeature());
         
//          ֻ��start��father��ͬһԭ�Ӽ��ڣ�
//          ��end��start����ͬһԭ�Ӽ��ڣ�
//          ��˵�����������ϵ����Ч��
          if  startAtomedFeature.atomSetNum  ==  fatherAtomedFeature.atomSetNum
              &&
              startAtomedFeature.atomSetNum  !=  endAtomedFeature.atomSetNum){
            //list.addLast(r.getEndFeature());
            int  temp  =  bdd.ref(
                      bdd.imp(startAtomedFeature.BddVar
                          ,endAtomedFeature.BddVar)
                        );
            bdd.bddRoot  =  bdd.andTo(bdd.bddRoot, temp);
            bdd.deref(temp);
           
        /*    System.out.println(  startAtomedFeature.feature.getName()  +  "   "+
                "->   "  +
                endAtomedFeature.feature.getName()  +  ":   "+
                startAtomedFeature.atomSetNum  +  "   "  +
                "->   "  +
                endAtomedFeature.atomSetNum  +  "��   "+
                startAtomedFeature.BddVar    +  "   "  +
                "->   "  +
                endAtomedFeature.BddVar);*/
           
            i.remove();
            require.remove(key);
            list.addLast(startAtomedFeature.feature);
          }//end if
          else if(startAtomedFeature.atomSetNum  ==  endAtomedFeature.atomSetNum){
            i.remove();
            require.remove(key);
          }
         
        }//end while
       
      }//end while
     
    }//end while
  /*  System.out.println("\nRestrict_building completed***********************\n");
    if(!include.isEmpty()  ||  !dimensionValue.isEmpty()  ||  !require.isEmpty())
      System.out.println("FATAL!!/n/n");
    else
      System.out.println("PASS/n/n");*/
   
   
    x  =  mutex.keySet().iterator();
    while(x.hasNext()){
      FeatureRelation  r  =  (FeatureRelation)mutex.get(x.next());
//      ��������ϵ��������������������Ϊstart��     
//      ��������ϵ�б���������Ϊend��ȡ���ǵ�ԭ�Ӽ�
      AtomedFeature  startAtomedFeature  =  allAtomedFeatures.get(r.getStartFeature());
      AtomedFeature  endAtomedFeature  =  allAtomedFeatures.get(r.getEndFeature());
      if  (startAtomedFeature.atomSetNum  !=  endAtomedFeature.atomSetNum){
        //list.addLast(r.getEndFeature());
        int  temp  =  bdd.ref(
                  bdd.or(bdd.not(startAtomedFeature.BddVar)
                      , bdd.not(endAtomedFeature.BddVar))
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

     
    //  System.out.println(include);
    //  if  (!e.hasNext())  System.out.println("!!!!!!!!!!");
     
      while(e.hasNext()){
        FeatureRelation    r  =  (FeatureRelation)include.get(e.next());
        Feature startFeature  =  r.getStartFeature();
        Feature endFeature    =  r.getEndFeature();
       
      //  System.out.print(endFeature.getName()+" "+startFeature.getName());
      /*  if(featureModel.getParentFeature(endFeature.getID())!=null)
          System.out.println(" "+featureModel.getParentFeature(endFeature.getID()).getName());
        else
          System.out.println(" null");*/
        if  (endFeature.getVariability().equals(de.FeatureModellingTool.FeatureModel.Variability.Mandatory)
            &&
            featureModel.getParentFeature(endFeature.getID())  ==  startFeature){
          if  (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1
              &&
              allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
          else if    (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1){
            int  n  =  allAtomedFeatures.get(endFeature).getAtomSetNum();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
          }
          else if    (allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  allAtomedFeatures.get(startFeature).getAtomSetNum();
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
          else{
            int  m  =  allAtomedFeatures.get(startFeature).getAtomSetNum();
            int  n  =  allAtomedFeatures.get(endFeature).getAtomSetNum();
            Iterator  i  =  allAtomedFeatures.keySet().iterator();
            while(i.hasNext()){
              AtomedFeature  cur  =  allAtomedFeatures.get(i.next());
              if(cur.getAtomSetNum()  ==  n)
                cur.setAtomSetNum(m);
            }
           
          }
         
        }//end if
        else{
          if  (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
          }
          if  (allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
        }//end else
      }//end while
    }
   
//    ����dimensionValue��ϵ������ԭ�Ӽ�
    if(dimensionValue  !=  null){
      e  =  dimensionValue.keySet().iterator();
      while(e.hasNext()){
        FeatureRelation    r  =  (FeatureRelation)dimensionValue.get(e.next());
        Feature startFeature  =  r.getStartFeature();
        Feature endFeature    =  r.getEndFeature();
       
      /*  System.out.print(endFeature.getName()+" "+startFeature.getName());
        if(featureModel.getParentFeature(endFeature.getID())!=null)
          System.out.println(" "+featureModel.getParentFeature(endFeature.getID()).getName());
        else
          System.out.println(" null");*/
        if  (endFeature.getVariability().equals(de.FeatureModellingTool.FeatureModel.Variability.Mandatory)
            &&
            featureModel.getParentFeature(endFeature.getID())  ==  startFeature){
          if  (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1
              &&
              allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
          else if    (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1){
            int  n  =  allAtomedFeatures.get(endFeature).getAtomSetNum();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
          }
          else if    (allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  allAtomedFeatures.get(startFeature).getAtomSetNum();
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
          else{
            int  m  =  allAtomedFeatures.get(startFeature).getAtomSetNum();
            int  n  =  allAtomedFeatures.get(endFeature).getAtomSetNum();
            Iterator  i  =  allAtomedFeatures.keySet().iterator();
            while(i.hasNext()){
              AtomedFeature  cur  =  allAtomedFeatures.get(i.next());
              if(cur.getAtomSetNum()  ==  n)
                cur.setAtomSetNum(m);
            }
           
          }
         
        }//end if
        else{
          if  (allAtomedFeatures.get(startFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(startFeature).setAtomSetNum(n);
          }
          if  (allAtomedFeatures.get(endFeature).getAtomSetNum() == -1){
            int  n  =  AtomedFeature.increaseSet();
            allAtomedFeatures.get(endFeature).setAtomSetNum(n);
          }
        }//end else
      }//end while 
   
//    ����require��ϵ������ԭ�Ӽ�
    if(require  !=  null){
      e  =  require.keySet().iterator();
      while(e.hasNext()){
        FeatureRelation    r  =  (FeatureRelation)require.get(e.next());
        Feature startFeature  =  r.getStartFeature();
        Feature endFeature    =  r.getEndFeature();
       
      /*  System.out.print(endFeature.getName()+" "+startFeature.getName());
        if(featureModel.getParentFeature(endFeature.getID())!=null)
          System.out.println(" "+featureModel.getParentFeature(endFeature.getID()).getName());
        else
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

      }
    }
    if (fm.getAllFeatureRelation()!=null) {
      List<FeatureRelation> relations = new ArrayList<FeatureRelation>(fm.getAllFeatureRelation().values());
      for (int i=relations.size()-1 ; i>=0 ; i--) {
        FeatureRelation relation = relations.get(i);
        if (removeFeatures.contains(relation.getStartFeature()) || removeFeatures.contains(relation.getEndFeature())) {
          Figure f = mFigure.get(relation.getID());
          DrawingView dv = mDrawingView.get(f);
         
          dv.remove(f);
          fme.removeRelation(relation);
        }
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

      , HashMap<String,Figure> mFigure , HashMap<Figure,DrawingView> mDrawingView) {
    if (fm.getAllFeatureRelation()!=null) {
      List<FeatureRelation> frs = new ArrayList<FeatureRelation>();
      frs.addAll(fm.getAllFeatureRelation().values());
      for (int i=0 ; i<frs.size() ; i++) {
        FeatureRelation fr = frs.get(i);
        if (FeatureRelation.REQUIRE.equals(fr.getName()) || FeatureRelation.EXCLUDE.equals(fr.getName())) {
          Figure f = mFigure.get(fr.getID());
          DrawingView dv = mDrawingView.get(f);
          if (!checkFeatureRelation(fr , fme , f , dv , cv)) {
//            return false;
          }
        }
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

                        //grandParent.remove(parent);
                        treeTableModel.removeNodeFromParent(parent);
                    }
                } else if (propertyName.equals(FeatureModelProperties.RELATION_ADDED)) {
                    //--��������˾�����ϵ����endNode��ΪstartNode�����ӽڵ㣬�м���Ϲ�ϵ�ڵ�
                    FeatureRelation fr = (FeatureRelation) evt.getNewValue();
                    String relationName = fr.getName();

                    if (refineRelation.containsKey(relationName)) {
                        Feature start = fr.getStartFeature();
                        Feature end = fr.getEndFeature();
                        FeatureNode startNode = getTreeNode(root, start);
                        FeatureNode endNode = getTreeNode(root, end);

                        if (relationName.equals(FeatureRelation.DECOMPOSE)) {
                            FeatureNode compNode = startNode.getCompositionNode();
                            if (compNode == null) {
                                compNode = new FeatureNode(context, FeatureNode.NODE_TYPE_COMPOSITION);
                                //startNode.add(compNode);
                                treeTableModel.insertNodeInto(compNode, startNode, startNode.getChildCount());
                            }
                            //compNode.add(endNode);
                            treeTableModel.removeNodeFromParent(endNode);
                            treeTableModel.insertNodeInto(endNode, compNode, compNode.getChildCount());
                        } else if (relationName.equals(FeatureRelation.ATTRIBUTE)) {
                            FeatureNode compNode = startNode.getCharacterizationNode();
                            if (compNode == null) {
                                compNode = new FeatureNode(context, FeatureNode.NODE_TYPE_CHARACTERIZATION);
                                //startNode.add(compNode);
                                treeTableModel.insertNodeInto(compNode, startNode, startNode.getChildCount());
                            }
                            //compNode.add(endNode);
                            treeTableModel.removeNodeFromParent(endNode);
                            treeTableModel.insertNodeInto(endNode, compNode, compNode.getChildCount());
                        }
                    }
                } else if (propertyName.equals(FeatureModelProperties.RELATION_REMOVED)) {
                    //--���ɾ���˾�����ϵ����endNode��Ϊroot, ���endNode�ĸ��ڵ�(��ϵ�ڵ㣩û�������ӽڵ��ˣ���ɾ��endNode�ĸ��ڵ�
                    FeatureRelation fr = (FeatureRelation) evt.getOldValue();
                    String relationName = fr.getName();

                    if (refineRelation.containsKey(relationName)) {
                        Feature start = fr.getStartFeature();
                        Feature end = fr.getEndFeature();
                        FeatureNode startNode = getTreeNode(root, start);
                        FeatureNode endNode = getTreeNode(root, end);
                        FeatureNode relationNode = (FeatureNode) endNode.getParent();

                        //root.add(endNode);
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

            String newSFID = (String) newStartFigure.getAttribute("id");
            String newEFID = (String) newEndFigure.getAttribute("id");

            if (featureModel.containsFeatureRelations(relationName)) {//����ģ���ڵĹ�ϵ�ı䴦��
                if (!oldSFID.equals(newSFID) || !oldEFID.equals(newEFID)) {
                    FeatureRelation relation = featureModel.getFeatureRelation(relationName, oldSFID, oldEFID);
                    featureModelEditor.removeRelation(relation);

                    //����id��figure��ӳ���
                    if (idToFigureMap != null) {
                        idToFigureMap.remove(relation.getID(), focusConnection);
                    }

                    if (!featureModel.contains(relationName, newSFID, newEFID)) {
                        FeatureRelation newRelation = featureModelEditor.addRelation(relationName, id, newSFID, newEFID);

                        //����id��figure��ӳ���
                        if (idToFigureMap != null) {
                            idToFigureMap.add(newRelation.getID(), focusConnection);
                        }
                    } else {
                        drawingView.removeFromSelection(focusConnection);
                        drawingView.remove(focusConnection);
                    }
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

  private static void collectSubFeatureIDs(Feature feature , HashSet<String> hsSubFeatureIDs) {
    hsSubFeatureIDs.add(feature.getID());
    for (Iterator<FeatureRelation> itRelation
        = (Iterator<FeatureRelation>)feature.getAllRelatedRelation().iterator()
        ; itRelation.hasNext() ; ) {
      FeatureRelation relation = itRelation.next();
      if (ConstantDefinition.isStructRelation(relation)
          && relation.getStartFeature().getID().equals(feature.getID())
          && !hsSubFeatureIDs.contains(relation.getEndFeature().getID())) {
        collectSubFeatureIDs(relation.getEndFeature() , hsSubFeatureIDs);
      }
    }   
  }
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

    Set constraints = new HashSet();

    constraints.clear();
    constraints.addAll(featureModel.getAllFeatureRelation().values());
    for (Iterator<FeatureRelation> itRelation = constraints.iterator() ; itRelation.hasNext() ; ) {
      FeatureRelation relation = itRelation.next();
      if (!htNameMap.containsKey(relation.getID())) {
        Feature start = featureModel.getFeature(htNameMap.get(relation.getStartFeature().getID()));
        Feature end = featureModel.getFeature(htNameMap.get(relation.getEndFeature().getID()));
        if (start!=null || end!=null) {
          if (start==null)
            start = relation.getStartFeature();
          if (end==null)
            end = relation.getEndFeature();
          FeatureRelation newRelation = featureModelEditor.addRelation(relation.getName() , start, end);
          htNameMap.put(relation.getID() , newRelation.getID());
        }
      }
    }
   
    constraints.clear();
View Full Code Here

Examples of de.FeatureModellingTool.FeatureModel.FeatureRelation

    featureEditor.setVariability(newFeature , feature.getVariability());
   
    for (Iterator<FeatureRelation> itRelation
        = feature.getAllRelatedRelation().iterator()
        ; itRelation.hasNext() ; ) {
      FeatureRelation relation = itRelation.next();
      if (ConstantDefinition.isStructRelation(relation)
          && relation.getStartFeature().getID().equals(feature.getID())) {
        cloneFeatureTree(relation.getEndFeature() , featureEditor , featureModel , featureModelEditor , htNameMap , hsSubFeatureIDs);
      }
    }
  }
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.