From 73313b0f1c1660986afc1449960889cac242eee0 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 5 Feb 2015 23:51:40 -0500 Subject: add new type/signature system --- src/cuchaz/enigma/mapping/BehaviorSignature.java | 96 ++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/cuchaz/enigma/mapping/BehaviorSignature.java (limited to 'src/cuchaz/enigma/mapping/BehaviorSignature.java') diff --git a/src/cuchaz/enigma/mapping/BehaviorSignature.java b/src/cuchaz/enigma/mapping/BehaviorSignature.java new file mode 100644 index 0000000..a6371f8 --- /dev/null +++ b/src/cuchaz/enigma/mapping/BehaviorSignature.java @@ -0,0 +1,96 @@ +package cuchaz.enigma.mapping; + +import java.util.List; + +import com.beust.jcommander.internal.Lists; + +public class BehaviorSignature { + + public static interface ClassReplacer { + ClassEntry replace(ClassEntry entry); + } + + private List m_argumentTypes; + private Type m_returnType; + + public BehaviorSignature(String signature) { + 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 (int i=0; i 0) { + buf.append(","); + } + buf.append(m_argumentTypes.get(i).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; + } +} -- cgit v1.2.3