Package de.FeatureModellingTool.DupHelper

Source Code of de.FeatureModellingTool.DupHelper.ModelDupHelper

package de.FeatureModellingTool.DupHelper;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import de.FeatureModellingTool.FeatureModel.CFRelation;
import de.FeatureModellingTool.FeatureModel.CompositeConstraint;
import de.FeatureModellingTool.FeatureModel.CompositeConstraintEditor;
import de.FeatureModellingTool.FeatureModel.Constraint;
import de.FeatureModellingTool.FeatureModel.ConstraintModel;
import de.FeatureModellingTool.FeatureModel.ConstraintModelEditor;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.FeatureModel.FeatureEditor;
import de.FeatureModellingTool.FeatureModel.FeatureModel;
import de.FeatureModellingTool.FeatureModel.FeatureModelEditor;
import de.FeatureModellingTool.FeatureModel.FeatureRelation;
import de.FeatureModellingTool.FeatureModel.GroupConstraint;
import de.FeatureModellingTool.FeatureModel.GroupConstraintEditor;
import de.FeatureModellingTool.FeatureModel.VPConstraint;
import de.FeatureModellingTool.FeatureModel.VPConstraintEditor;

public class ModelDupHelper {
  public static Feature dupFeature(Feature fSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , FeatureEditor feDest , FeatureModelEditor fmeDest) {
    Feature result = fmeDest.addFeature("");
   
    feDest.setBindingTime(result , fSrc.getBindingTime());
    feDest.setCategory(result , fSrc.getCategory());
    feDest.setDescription(result , fSrc.getDescription());
    feDest.setIssueAndDecision(result , fSrc.getIssueAndDecision());
    feDest.setName(result , fSrc.getName());
    feDest.setNote(result , fSrc.getNote());
    feDest.setSource(result , fSrc.getSource());
    feDest.setVariability(result , fSrc.getVariability());
   
    mName.put(fSrc.getID() , result.getID());
    mFeature.put(result.getID() , result);
   
    return result;
  }
 
  public static FeatureRelation dupFeatureRelation(FeatureRelation frSrc
      , HashMap<String,String> mName , HashMap<String,FeatureRelation> mRelation
      , FeatureModelEditor fmeDest) {
    String sStart = mName.get(frSrc.getStartFeature().getID());
    String sEnd = mName.get(frSrc.getEndFeature().getID());
   
    FeatureRelation result = fmeDest.addRelation(frSrc.getName() , sStart , sEnd);
   
    mName.put(frSrc.getID() , result.getID());
    mRelation.put(result.getID() , result);
   
    return result;
  }
 
  public static GroupConstraint dupGroupConstraint(GroupConstraint gcSrc , ConstraintModel cmSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , HashMap<String,Constraint> mConstraint , HashMap<String,CFRelation> mRelation
      , ConstraintModelEditor cmeDest , GroupConstraintEditor gceDest) {
    GroupConstraint result = cmeDest.addGroupConstraint();
    gceDest.setType(result , gcSrc.getType());
    for (Iterator<Feature> itFeature=(Iterator<Feature>)gcSrc.getFeatureSet().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      Feature fDest = mFeature.get(mName.get(fSrc.getID()));
      gceDest.addFeature(result , fDest);
     
      boolean isSource = true;
      CFRelation cfrSrc = cmSrc.getCFRelation(fSrc , gcSrc , isSource);
      if (cfrSrc==null) {
        isSource = false;
        cfrSrc = cmSrc.getCFRelation(fSrc , gcSrc , isSource);
      }
      CFRelation cfrDest = cmeDest.addCFRelation(fDest , result , isSource , cfrSrc.getModifier());
     
      mName.put(cfrSrc.getID() , cfrDest.getID());
      mRelation.put(cfrDest.getID() , cfrDest);
    }
   
    mName.put(gcSrc.getID() , result.getID());
    mConstraint.put(result.getID() , result);
   
    return result;
  }
 
  public static CompositeConstraint dupCompositeConstraint(CompositeConstraint ccSrc , ConstraintModel cmSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , HashMap<String,Constraint> mConstraint , HashMap<String,CFRelation> mRelation
      , ConstraintModelEditor cmeDest , CompositeConstraintEditor cceDest) {
    CompositeConstraint result = cmeDest.addCompositeConstraint();
    cceDest.setPLType(result , ccSrc.getPLType());
    cceDest.setSourceType(result , ccSrc.getSourceType());
    cceDest.setSinkType(result , ccSrc.getSinkType());

    for (Iterator<Feature> itFeature=(Iterator<Feature>)ccSrc.getSourceFeatureSet().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      Feature fDest = mFeature.get(mName.get(fSrc.getID()));
      cceDest.addSourceFeature(result , fDest);
     
      CFRelation cfrSrc = cmSrc.getCFRelation(fSrc , ccSrc , true);
      CFRelation cfrDest = cmeDest.addCFRelation(fDest , result , true , cfrSrc.getModifier());
     
      mName.put(cfrSrc.getID() , cfrDest.getID());
      mRelation.put(cfrDest.getID() , cfrDest);
    }
   
    for (Iterator<Feature> itFeature=(Iterator<Feature>)ccSrc.getSinkFeatureSet().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      Feature fDest = mFeature.get(mName.get(fSrc.getID()));
      cceDest.addSinkFeature(result , fDest);
     
      CFRelation cfrSrc = cmSrc.getCFRelation(fSrc , ccSrc , false);
      CFRelation cfrDest = cmeDest.addCFRelation(fDest , result , false , cfrSrc.getModifier());
     
      mName.put(cfrSrc.getID() , cfrDest.getID());
      mRelation.put(cfrDest.getID() , cfrDest);
    }
   
    mName.put(ccSrc.getID() , result.getID());
    mConstraint.put(result.getID() , result);
   
    return result;
  }
 
  public static VPConstraint dupVPConstraint(VPConstraint ccSrc , ConstraintModel cmSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , HashMap<String,Constraint> mConstraint , HashMap<String,CFRelation> mRelation
      , ConstraintModelEditor cmeDest , VPConstraintEditor vpceDest) {
    VPConstraint result = cmeDest.addVPConstraint();
    vpceDest.setType(result , ccSrc.getType());

    for (Iterator<Feature> itFeature=(Iterator<Feature>)ccSrc.getSourceFeatureSet().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      Feature fDest = mFeature.get(mName.get(fSrc.getID()));
      vpceDest.addSourceFeature(result , fDest);
     
      CFRelation cfrSrc = cmSrc.getCFRelation(fSrc , ccSrc , true);
      CFRelation cfrDest = cmeDest.addCFRelation(fDest , result , true , cfrSrc.getModifier());
     
      mName.put(cfrSrc.getID() , cfrDest.getID());
      mRelation.put(cfrDest.getID() , cfrDest);
    }
   
    for (Iterator<Feature> itFeature=(Iterator<Feature>)ccSrc.getSinkFeatureSet().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      Feature fDest = mFeature.get(mName.get(fSrc.getID()));
      vpceDest.addSinkFeature(result , fDest);
     
      CFRelation cfrSrc = cmSrc.getCFRelation(fSrc , ccSrc , false);
      CFRelation cfrDest = cmeDest.addCFRelation(fDest , result , false , cfrSrc.getModifier());
     
      mName.put(cfrSrc.getID() , cfrDest.getID());
      mRelation.put(cfrDest.getID() , cfrDest);
    }
   
    mName.put(ccSrc.getID() , result.getID());
    mConstraint.put(result.getID() , result);
   
    return result;
  }

  public static void dupFeatureModel(FeatureModel fmSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , HashMap<String,FeatureRelation> mRelation
      , FeatureModel fmDest
      , FeatureEditor feDest , FeatureModelEditor fmeDest
      ) {
    mFeature.putAll(fmDest.getAllFeature());
    mRelation.putAll(fmDest.getAllFeatureRelation());
   
    for (Iterator<Feature> itFeature=fmDest.getAllFeature().values().iterator() ; itFeature.hasNext() ; ) {
      Feature fSrc = itFeature.next();
      dupFeature(fSrc , mName , mFeature , feDest , fmeDest);
    }
   
    for (Iterator<FeatureRelation> itFeatureRelation=fmDest.getAllFeatureRelation().values().iterator() ; itFeatureRelation.hasNext() ; ) {
      FeatureRelation frSrc = itFeatureRelation.next();
      dupFeatureRelation(frSrc , mName , mRelation , fmeDest);
    }
  }
 
  public static void dupConstraintModel(ConstraintModel cmSrc
      , HashMap<String,String> mName , HashMap<String,Feature> mFeature
      , HashMap<String,Constraint> mConstraint , HashMap<String,CFRelation> mRelation
      , ConstraintModel cmDest , ConstraintModelEditor cmeDest
      , GroupConstraintEditor gceDest , CompositeConstraintEditor cceDest
      , VPConstraintEditor vpceDest
      ) {
    mConstraint.putAll(cmDest.getAllConstraint());
    mRelation.putAll(cmDest.getAllCFRelation());
   
    for (Iterator<Constraint> itConstraint=cmDest.getAllConstraint().values().iterator() ; itConstraint.hasNext() ; ) {
      Constraint cSrc = itConstraint.next();
      if (cSrc instanceof GroupConstraint) {
        dupGroupConstraint((GroupConstraint)cSrc , cmSrc , mName , mFeature , mConstraint , mRelation , cmeDest , gceDest);
      } else if (cSrc instanceof CompositeConstraint) {
        dupCompositeConstraint((CompositeConstraint)cSrc , cmSrc , mName , mFeature , mConstraint , mRelation , cmeDest , cceDest);
      } else if (cSrc instanceof VPConstraint) {
        dupVPConstraint((VPConstraint)cSrc , cmSrc , mName , mFeature , mConstraint , mRelation , cmeDest , vpceDest);
      }
    }
  }
}
TOP

Related Classes of de.FeatureModellingTool.DupHelper.ModelDupHelper

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.