package cuchaz.enigma.mapping; import java.util.List; import com.beust.jcommander.internal.Lists; import cuchaz.enigma.Util; public class Signature { private List m_argumentTypes; private Type m_returnType; public Signature(String signature) { try { m_argumentTypes = Lists.newArrayList(); int i=0; while (i getArgumentTypes() { return m_argumentTypes; } public Type getReturnType() { return m_returnType; } @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("("); for (Type type : m_argumentTypes) { buf.append(type.toString()); } buf.append(")"); buf.append(m_returnType.toString()); return buf.toString(); } public Iterable types() { List types = Lists.newArrayList(); types.addAll(m_argumentTypes); types.add(m_returnType); return types; } public Iterable classes() { List out = Lists.newArrayList(); for (Type type : types()) { if (type.isClass()) { out.add(type.getClassEntry()); } } return out; } @Override public boolean equals(Object other) { if (other instanceof Signature) { return equals((Signature)other); } return false; } public boolean equals(Signature other) { return m_argumentTypes.equals(other.m_argumentTypes) && m_returnType.equals(other.m_returnType); } @Override public int hashCode() { return Util.combineHashesOrdered(m_argumentTypes.hashCode(), m_returnType.hashCode()); } public boolean hasClass(ClassEntry classEntry) { for (Type type : types()) { if (type.hasClass() && type.getClassEntry().equals(classEntry)) { return true; } } return false; } }