Пример #1
0
  public AnySignature(Configuration config, OtpErlangList attributes) {
    super();
    if (attributes.arity() != 0)
      throw new IllegalArgumentException("AnySignature does not accept attributes");

    List<OtpErlangObject> result = new ArrayList<OtpErlangObject>();
    switch (config.getErlangAlphabetAnyElements()) {
      case ANY_INT:
        result.add(new OtpErlangInt(10));
        result.add(new OtpErlangInt(11));
        result.add(new OtpErlangInt(12));
        break;
      case ANY_WIBBLE:
        result.add(new OtpErlangAtom("AnyWibble"));
        break;
      case ANY_WITHLIST:
        // We are allowed anything so lets try a few things...
        if (config.getUseANumberOfValues()) {
          result.add(new OtpErlangAtom("JustAnythingA"));
          result.add(new OtpErlangList(new OtpErlangObject[] {}));
          result.add(new OtpErlangList(new OtpErlangObject[] {new OtpErlangAtom("WibbleA")}));
          result.add(
              new OtpErlangList(
                  new OtpErlangObject[] {
                    new OtpErlangAtom("WibbleA"), new OtpErlangAtom("WobbleA")
                  }));
        } else
          result.add(
              new OtpErlangAtom(
                  "A")); // the motivation for a shorter label is that longer ones would look really
                         // long on large graphs.
        break;
    }
    values = Collections.unmodifiableList(result);
    erlangTermForThisType = erlangTypeToString(attributes, null);
  }