All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.uni.freiburg.iig.telematik.jagal.ts.MarkingStatePairContainer Maven / Gradle / Ivy

package de.uni.freiburg.iig.telematik.jagal.ts;

import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import de.uni.freiburg.iig.telematik.jagal.ts.abstr.AbstractState;


public class MarkingStatePairContainer, O> extends StatePairContainer {
	private Set> markedPairs = new HashSet>();
	private Set> unmarkedPairs = new HashSet>();
	
	public MarkingStatePairContainer(){
		super();
	}
	
	public MarkingStatePairContainer(StatePair... statePairs){
		super();
		for(StatePair statePair: statePairs){
			addStatePair(statePair);
		}
	}
	
	public MarkingStatePairContainer(Collection> statePairs){
		super();
		for(StatePair statePair: statePairs){
			addStatePair(statePair);
		}
	}
	
	public Set> getMarkedStatePairs(){
		return Collections.unmodifiableSet(markedPairs);
	}
	
	public Set> getUnmarkedStatePairs(){
		return Collections.unmodifiableSet(unmarkedPairs);
	}
	
	
	public void markPair(S state1, S state2){
		StatePair testPair = getStatePair(state1, state2);
		if(testPair != null){
			markedPairs.add(testPair);
			unmarkedPairs.remove(testPair);
		}
	}
	
	public boolean isMarked(S state1, S state2){
		return markedPairs.contains(new StatePair(state1, state2));
	}
	
	public void markPair(StatePair statePair){
		if(statePairs.contains(statePair)){
			markedPairs.add(getEqualStatePair(statePair));
			unmarkedPairs.remove(getEqualStatePair(statePair));
		}
	}

	@Override
	public boolean addStatePair(StatePair statePair){
		boolean isNewElement =  super.addStatePair(statePair);
		if(isNewElement){
			if(unmarkedPairs == null){
				System.out.println("set null");
			} else {
				unmarkedPairs.add(statePair);
			}
		}
		return isNewElement;
	}
	
	public static void main(String[] args){
		MarkingStatePairContainer c = new MarkingStatePairContainer();
		c.addStatePair(new State("s0"), new State("s5"));
		System.out.println(c.getStatePairs());
		StatePair p1 = new StatePair(new State("z4"), new State("z3"));
		StatePair p2 = new StatePair(new State("z4"), new State("z2"));
		System.out.println(p1.hashCode());
		System.out.println(p2.hashCode());
//		c.addStatePair(p1);
//		System.out.println(c.containsStatePair(new State("s0"), new State("s1")));
		System.out.println(c.containsStatePair(new State("s0"), new State("s5")));
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy