From ecfda21f3db9e62e3acf074e9842e92ace4cb3ab Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 17 Mar 2015 20:01:55 -0400 Subject: parsing generic signatures is tricky. don't write custom code to do it. switching to library instead --- src/cuchaz/enigma/mapping/ParameterizedType.java | 54 --------------------- src/cuchaz/enigma/mapping/Type.java | 61 +++--------------------- 2 files changed, 7 insertions(+), 108 deletions(-) delete mode 100644 src/cuchaz/enigma/mapping/ParameterizedType.java (limited to 'src/cuchaz/enigma/mapping') diff --git a/src/cuchaz/enigma/mapping/ParameterizedType.java b/src/cuchaz/enigma/mapping/ParameterizedType.java deleted file mode 100644 index af24ef4..0000000 --- a/src/cuchaz/enigma/mapping/ParameterizedType.java +++ /dev/null @@ -1,54 +0,0 @@ -package cuchaz.enigma.mapping; - -import cuchaz.enigma.Util; - - - -public class ParameterizedType extends Type { - - private static final long serialVersionUID = 1758975507937309011L; - - public ParameterizedType(Type other) { - super(other); - for (int i=0; i;"); - return buf.toString(); - } else { - return m_name; - } - } - - @Override - public boolean equals(Object other) { - if (other instanceof ParameterizedType) { - return equals((ParameterizedType)other); - } - return false; - } - - public boolean equals(ParameterizedType other) { - return m_name.equals(other.m_name) && m_parameters.equals(other.m_parameters); - } - - public int hashCode() { - return Util.combineHashesOrdered(m_name.hashCode(), m_parameters.hashCode()); - } - -} diff --git a/src/cuchaz/enigma/mapping/Type.java b/src/cuchaz/enigma/mapping/Type.java index d530083..3f441e2 100644 --- a/src/cuchaz/enigma/mapping/Type.java +++ b/src/cuchaz/enigma/mapping/Type.java @@ -1,10 +1,8 @@ package cuchaz.enigma.mapping; import java.io.Serializable; -import java.util.List; import java.util.Map; -import com.beust.jcommander.internal.Lists; import com.google.common.collect.Maps; public class Type implements Serializable { @@ -85,43 +83,22 @@ public class Type implements Serializable { throw new IllegalArgumentException("don't know how to parse: " + in); } - + protected String m_name; - protected List m_parameters; public Type(String name) { - m_name = null; - m_parameters = Lists.newArrayList(); - int start = name.indexOf('<'); - int stop = name.lastIndexOf('>'); - if (start > 0 && stop > start) { - - // deal with generic parameters - m_name = name.substring(0, start) + name.substring(stop + 1); - - String parameters = name.substring(start + 1, stop); - int i=0; - while (i= 0 || name.indexOf('>') >= 0) { + throw new IllegalArgumentException("don't use with generic types or templates: " + name); } + + m_name = name; } public Type(Type other) { m_name = other.m_name; - m_parameters = Lists.newArrayList(); - for (Type parameter : other.m_parameters) { - m_parameters.add(new Type(parameter)); - } } public Type(ClassEntry classEntry) { @@ -141,11 +118,6 @@ public class Type implements Serializable { m_name = Type.getArrayPrefix(other.getArrayDimension()) + "L" + replacedName + ";"; } } - - m_parameters = Lists.newArrayList(); - for (Type parameter : other.m_parameters) { - m_parameters.add(new Type(parameter, replacer)); - } } @Override @@ -191,17 +163,6 @@ public class Type implements Serializable { } } - public boolean isTemplate() { - return m_name.charAt(0) == 'T' && m_name.charAt(m_name.length() - 1) == ';'; - } - - public String getTemplate() { - if (!isTemplate()) { - throw new IllegalStateException("not an template"); - } - return m_name.substring(1, m_name.length() - 1); - } - public boolean isArray() { return m_name.charAt(0) == '['; } @@ -232,14 +193,6 @@ public class Type implements Serializable { return isClass() || (isArray() && getArrayType().hasClass()); } - public boolean hasParameters() { - return !m_parameters.isEmpty(); - } - - public Iterable parameters() { - return m_parameters; - } - @Override public boolean equals(Object other) { if (other instanceof Type) { -- cgit v1.2.3