@@ -0,0 +1,1432 @@
+/*%0A * Copyright (C) 2015, C. Ramakrishnan / Illposed Software.%0A * All rights reserved.%0A *%0A * This code is licensed under the BSD 3-Clause license.%0A * See file LICENSE (or LICENSE.html) for more information.%0A */%0A%0Apackage com.illposed.osc.argument;%0A%0Aimport java.io.Serializable;%0A%0A/**%0A * Represents an OSC compliant symbol.%0A * Technically, this is not different from a %7B@code String%7D, but some systems may differentiate%0A * between %22strings%22 and %22symbols%22.%0A */%0Apublic class OSCSymbol implements Cloneable, Serializable, Comparable%3COSCSymbol%3E %7B%0A%0A%09private static final long serialVersionUID = 1L;%0A%0A%09private final String value;%0A%0A%09public OSCSymbol(final String value) %7B%0A%09%09this.value = value;%0A%09%7D%0A%0A%09@Override%0A%09public boolean equals(final Object other) %7B%0A%0A%09%09final boolean equal;%0A%09%09if (other instanceof OSCSymbol) %7B%0A%09%09%09equal = toString().equals(((OSCSymbol) other).toString());%0A%09%09%7D else %7B%0A%09%09%09equal = false;%0A%09%09%7D%0A%0A%09%09return equal;%0A%09%7D%0A%0A%09@Override%0A%09public int hashCode() %7B%0A%09%09int hash = 7;%0A%09%09hash = 37 * hash + (this.value == null ? 0 : this.value.hashCode());%0A%09%09return hash;%0A%09%7D%0A%0A%09@Override%0A%09public int compareTo(final OSCSymbol other) %7B%0A%09%09return toString().compareTo(other.toString());%0A%09%7D%0A%0A%09@Override%0A%09public OSCSymbol clone() throws CloneNotSupportedException %7B%0A%09%09return (OSCSymbol) super.clone();%0A%09%7D%0A%0A%09@Override%0A%09public String toString() %7B%0A%09%09return value;%0A%09%7D%0A%0A%09public static OSCSymbol valueOf(final String str) %7B%0A%09%09return new OSCSymbol(str);%0A%09%7D%0A%7D%0A

introduce OSCSymbol