Esempio n. 1
0
  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>());
  }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
  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();
  }