public Marking(NuNet net) { this.net = net; this.marking = new HashMap<Place, List<Token>>(net.getPlaces().size()); this.names = null; for (Iterator<Place> it = net.getPlaces().iterator(); it.hasNext(); ) marking.put(it.next(), new ArrayList<Token>()); }
public List<Token> getTokens(Place p) { List<Token> tokens = marking.get(p); if (tokens == null && net.getPlaces().contains(p)) { tokens = new ArrayList<Token>(); marking.put(p, tokens); } return tokens; }
public String toString() { StringBuilder str = new StringBuilder(); for (Iterator<Place> it = net.getPlaces().iterator(); it.hasNext(); ) { Place p = it.next(); List<Token> tokens = getTokens(p); List<String> serializedTokens = new ArrayList<String>(tokens.size()); for (Iterator<Token> it2 = tokens.iterator(); it2.hasNext(); ) { serializedTokens.add(it2.next().toString()); } Collections.sort(serializedTokens); // creating the canonical form str.append("(" + p.getLabel() + ",{"); for (Iterator<String> it2 = serializedTokens.iterator(); it2.hasNext(); ) { str.append(it2.next()); if (it2.hasNext()) str.append(','); } str.append("})"); if (it.hasNext()) str.append(", "); } return str.toString(); }