From 4ceb8d490058e48df666bf7227ce020e60928be5 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 8 Mar 2015 20:48:30 -0400 Subject: more tweaks, improvements, and bug fixes --- src/cuchaz/enigma/mapping/FieldMapping.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/cuchaz/enigma/mapping/FieldMapping.java') diff --git a/src/cuchaz/enigma/mapping/FieldMapping.java b/src/cuchaz/enigma/mapping/FieldMapping.java index 14b20dd..55b0a19 100644 --- a/src/cuchaz/enigma/mapping/FieldMapping.java +++ b/src/cuchaz/enigma/mapping/FieldMapping.java @@ -26,6 +26,12 @@ public class FieldMapping implements Serializable, Comparable { m_obfType = obfType; } + public FieldMapping(FieldMapping other, ClassNameReplacer obfClassNameReplacer) { + m_obfName = other.m_obfName; + m_deobfName = other.m_deobfName; + m_obfType = new Type(other.m_obfType, obfClassNameReplacer); + } + public String getObfName() { return m_obfName; } @@ -46,4 +52,24 @@ public class FieldMapping implements Serializable, Comparable { public int compareTo(FieldMapping other) { return (m_obfName + m_obfType).compareTo(other.m_obfName + other.m_obfType); } + + public boolean renameObfClass(final String oldObfClassName, final String newObfClassName) { + + // rename obf classes in the type + Type newType = new Type(m_obfType, new ClassNameReplacer() { + @Override + public String replace(String className) { + if (className.equals(oldObfClassName)) { + return newObfClassName; + } + return null; + } + }); + + if (!newType.equals(m_obfType)) { + m_obfType = newType; + return true; + } + return false; + } } -- cgit v1.2.3