// Path: examples/gantttocpm/implementationArtefacts/emoflon/IBeXTGGGantt2CPM/src/org/emoflon/ibex/tgg/operational/csp/constraints/custom/ibextgggantt2cpm/UserDefined_notADependencyViaNamingConvention.java
// public class UserDefined_notADependencyViaNamingConvention extends RuntimeTGGAttributeConstraint {
// 
// 	/**
// 	 * Constraint notADependencyViaNamingConvention(v0)
// 	 * 
// 	 * @see TGGLanguage.csp.impl.ConstraintImpl#solve()
// 	 */
// 	@Override
// 	public void solve() {
// 		if (variables.size() != 1)
// 			throw new RuntimeException("The CSP -NOTADEPENDENCYVIANAMINGCONVENTION- needs exactly 1 variables");
// 
// 		RuntimeTGGAttributeConstraintVariable v0 = variables.get(0);
// 		String bindingStates = getBindingStates(v0);
// 
// 		switch (bindingStates) {
// 		case "B":
// 			String name = (String) v0.getValue();
// 			setSatisfied(!name.contains("->"));
// 			break;
// 		default:
// 			throw new UnsupportedOperationException(
// 					"This case in the constraint has not been implemented yet: " + bindingStates);
// 		}
// 	}
// }
// 
// Path: examples/gantttocpm/implementationArtefacts/emoflon/IBeXTGGGantt2CPM/src/org/emoflon/ibex/tgg/operational/csp/constraints/custom/ibextgggantt2cpm/UserDefined_setCounter.java
// public class UserDefined_setCounter extends RuntimeTGGAttributeConstraint {
// 
// 	private static int nextNumber = 1;
// 	
// 	/**
// 	 * Constraint setCounter(v0)
// 	 * 
// 	 * @see TGGLanguage.csp.impl.ConstraintImpl#solve()
// 	 */
// 	@Override
// 	public void solve() {
// 		if (variables.size() != 1)
// 			throw new RuntimeException("The CSP -SETCOUNTER- needs exactly 1 variables");
// 
// 		RuntimeTGGAttributeConstraintVariable v0 = variables.get(0);
// 		String bindingStates = getBindingStates(v0);
// 
// 		switch (bindingStates) {
// 		case "F": 
// 			v0.bindToValue(nextNumber++);
// 			setSatisfied(true);
// 			break;
// 		case "B":
// 			setSatisfied(true);
// 			break;
// 		default:
// 			throw new UnsupportedOperationException(
// 					"This case in the constraint has not been implemented yet: " + bindingStates);
// 		}
// 	}
// }


import java.util.HashMap;
import java.util.HashSet;			
import org.emoflon.ibex.tgg.operational.csp.constraints.factories.RuntimeTGGAttrConstraintFactory;			
import org.emoflon.ibex.tgg.operational.csp.constraints.custom.ibextgggantt2cpm.UserDefined_notADependencyViaNamingConvention;
import org.emoflon.ibex.tgg.operational.csp.constraints.custom.ibextgggantt2cpm.UserDefined_setCounter;
package org.emoflon.ibex.tgg.operational.csp.constraints.factories.ibextgggantt2cpm;




public class UserDefinedRuntimeTGGAttrConstraintFactory extends RuntimeTGGAttrConstraintFactory {

	public UserDefinedRuntimeTGGAttrConstraintFactory() {
		super();
	}
	
	@Override
	protected void initialize() {
		creators = new HashMap<>();
// Path: examples/gantttocpm/implementationArtefacts/emoflon/IBeXTGGGantt2CPM/src/org/emoflon/ibex/tgg/operational/csp/constraints/custom/ibextgggantt2cpm/UserDefined_notADependencyViaNamingConvention.java
// public class UserDefined_notADependencyViaNamingConvention extends RuntimeTGGAttributeConstraint {
// 
// 	/**
// 	 * Constraint notADependencyViaNamingConvention(v0)
// 	 * 
// 	 * @see TGGLanguage.csp.impl.ConstraintImpl#solve()
// 	 */
// 	@Override
// 	public void solve() {
// 		if (variables.size() != 1)
// 			throw new RuntimeException("The CSP -NOTADEPENDENCYVIANAMINGCONVENTION- needs exactly 1 variables");
// 
// 		RuntimeTGGAttributeConstraintVariable v0 = variables.get(0);
// 		String bindingStates = getBindingStates(v0);
// 
// 		switch (bindingStates) {
// 		case "B":
// 			String name = (String) v0.getValue();
// 			setSatisfied(!name.contains("->"));
// 			break;
// 		default:
// 			throw new UnsupportedOperationException(
// 					"This case in the constraint has not been implemented yet: " + bindingStates);
// 		}
// 	}
// }
// 
// Path: examples/gantttocpm/implementationArtefacts/emoflon/IBeXTGGGantt2CPM/src/org/emoflon/ibex/tgg/operational/csp/constraints/custom/ibextgggantt2cpm/UserDefined_setCounter.java
// public class UserDefined_setCounter extends RuntimeTGGAttributeConstraint {
// 
// 	private static int nextNumber = 1;
// 	
// 	/**
// 	 * Constraint setCounter(v0)
// 	 * 
// 	 * @see TGGLanguage.csp.impl.ConstraintImpl#solve()
// 	 */
// 	@Override
// 	public void solve() {
// 		if (variables.size() != 1)
// 			throw new RuntimeException("The CSP -SETCOUNTER- needs exactly 1 variables");
// 
// 		RuntimeTGGAttributeConstraintVariable v0 = variables.get(0);
// 		String bindingStates = getBindingStates(v0);
// 
// 		switch (bindingStates) {
// 		case "F": 
// 			v0.bindToValue(nextNumber++);
// 			setSatisfied(true);
// 			break;
// 		case "B":
// 			setSatisfied(true);
// 			break;
// 		default:
// 			throw new UnsupportedOperationException(
// 					"This case in the constraint has not been implemented yet: " + bindingStates);
// 		}
// 	}
// }


// Path: examples/gantttocpm/implementationArtefacts/emoflon/IBeXTGGGantt2CPM/src/org/emoflon/ibex/tgg/operational/csp/constraints/factories/ibextgggantt2cpm/UserDefinedRuntimeTGGAttrConstraintFactory.java
import java.util.HashMap;
import java.util.HashSet;			
import org.emoflon.ibex.tgg.operational.csp.constraints.factories.RuntimeTGGAttrConstraintFactory;			
import org.emoflon.ibex.tgg.operational.csp.constraints.custom.ibextgggantt2cpm.UserDefined_notADependencyViaNamingConvention;
import org.emoflon.ibex.tgg.operational.csp.constraints.custom.ibextgggantt2cpm.UserDefined_setCounter;

package org.emoflon.ibex.tgg.operational.csp.constraints.factories.ibextgggantt2cpm;




public class UserDefinedRuntimeTGGAttrConstraintFactory extends RuntimeTGGAttrConstraintFactory {

	public UserDefinedRuntimeTGGAttrConstraintFactory() {
		super();
	}
	
	@Override
	protected void initialize() {
		creators = new HashMap<>();
		creators.put("notADependencyViaNamingConvention", () -> new UserDefined_notADependencyViaNamingConvention());