Package de.FeatureModellingTool.DupHelper.ConstraintTransform

Source Code of de.FeatureModellingTool.DupHelper.ConstraintTransform.PredicateHelper

package de.FeatureModellingTool.DupHelper.ConstraintTransform;

import java.util.Collection;
import java.util.Iterator;

import de.FeatureModellingTool.Customize.Customization;
import de.FeatureModellingTool.Customize.CustomizationVersion;
import de.FeatureModellingTool.FeatureModel.CFRModifier;
import de.FeatureModellingTool.FeatureModel.CFRelation;
import de.FeatureModellingTool.FeatureModel.CompositeConstraintPortType;
import de.FeatureModellingTool.FeatureModel.Constraint;
import de.FeatureModellingTool.FeatureModel.ConstraintModel;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.FeatureModel.GroupConstraintType;

public class PredicateHelper {
  public static int getCustomizationCount(Collection<Customization> values , Customization cDest) {
    int result = 0;
    for (Iterator<Customization> it=values.iterator() ; it.hasNext() ; ) {
      if (cDest.equals(it.next())) {
        result ++;
      }
    }
   
    return result;
  }
 
  public static Customization getCFCustomization(Feature feature , Customization featureValue , Constraint cons , ConstraintModel cm) {
    if (Customization.Undecided.equals(featureValue)) {
      return featureValue;
    }
   
    CFRelation cfr = cm.getCFRelation(feature , cons , true);
    if (cfr==null) {
      cfr = cm.getCFRelation(feature , cons , false);
    }
    if (cfr==null) {
      return featureValue;
    } else {
      if (cfr.getModifier().getName().equals(CFRModifier.Affirmation.getName())) {
        return featureValue;
      } else {
        if (Customization.Selected.equals(featureValue)) {
          return Customization.Unselected;
        } else {
          return Customization.Selected;
        }
      }
    }
  }
 
  public static Predicate getPredicateByGroupConstraintType(GroupConstraintType gct) {
    if (gct.equals(GroupConstraintType.SingleGroup)) {
      return new SinglePredicate();     
    } else if (gct.equals(GroupConstraintType.AllGroup)) {
      return new AllPredicate();     
    } else {
      return new MultiPredicate();
    }
  }
 
  public static Predicate getPredicateByCompositeConstraintPortType(CompositeConstraintPortType ccpt) {
    if (ccpt.equals(CompositeConstraintPortType.Single)) {
      return new SinglePredicate();     
    } else if (ccpt.equals(CompositeConstraintPortType.All)) {
      return new AllPredicate();     
    } else {
      return new MultiPredicate();
    }
  }
 
  public static void fillPredicate(Collection<Feature> features , Constraint cons , ConstraintModel cm , CustomizationVersion cv , Predicate pDest) {
    for (Iterator<Feature> itFeature = features.iterator() ; itFeature.hasNext() ; ) {
      Feature f = itFeature.next();
      Customization cus = getCFCustomization(f , cv.getFinalCustomizationById(f.getID()) , cons , cm);
      pDest.addValue(cus);
    }
  }
}
TOP

Related Classes of de.FeatureModellingTool.DupHelper.ConstraintTransform.PredicateHelper

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.