From 00fcd0550fcdda621c2e4662f6ddd55ce673b931 Mon Sep 17 00:00:00 2001 From: Gegy Date: Thu, 24 Jan 2019 14:48:32 +0200 Subject: [WIP] Mapping rework (#91) * Move packages * Mapping & entry refactor: first pass * Fix deobf -> obf tree remapping * Resolve various issues * Give all entries the potential for parents and treat inner classes as children * Deobf UI tree elements * Tests pass * Sort mapping output * Fix delta tracking * Index separation and first pass for #97 * Keep track of remapped jar index * Fix child entries not being remapped * Drop non-root entries * Track dropped mappings * Fix enigma mapping ordering * EntryTreeNode interface * Small tweaks * Naive full index remap on rename * Entries can resolve to more than one root entry * Support alternative resolution strategies * Bridge method resolution * Tests pass * Fix mappings being used where there are none * Fix methods with different descriptors being considered unique. closes #89 --- .../cuchaz/enigma/mapping/entry/ClassDefEntry.java | 38 ----- .../cuchaz/enigma/mapping/entry/ClassEntry.java | 175 --------------------- .../java/cuchaz/enigma/mapping/entry/DefEntry.java | 7 - .../java/cuchaz/enigma/mapping/entry/Entry.java | 22 --- .../cuchaz/enigma/mapping/entry/EntryFactory.java | 49 ------ .../cuchaz/enigma/mapping/entry/FieldDefEntry.java | 44 ------ .../cuchaz/enigma/mapping/entry/FieldEntry.java | 77 --------- .../mapping/entry/LocalVariableDefEntry.java | 61 ------- .../enigma/mapping/entry/LocalVariableEntry.java | 93 ----------- .../enigma/mapping/entry/MethodDefEntry.java | 61 ------- .../cuchaz/enigma/mapping/entry/MethodEntry.java | 80 ---------- .../enigma/mapping/entry/ProcyonEntryFactory.java | 48 ------ .../enigma/mapping/entry/ReferencedEntryPool.java | 59 ------- 13 files changed, 814 deletions(-) delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/DefEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/Entry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/ProcyonEntryFactory.java delete mode 100644 src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java (limited to 'src/main/java/cuchaz/enigma/mapping/entry') diff --git a/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java deleted file mode 100644 index df72e7e..0000000 --- a/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *
- * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ - -package cuchaz.enigma.mapping.entry; - -import com.google.common.base.Preconditions; -import cuchaz.enigma.bytecode.AccessFlags; -import cuchaz.enigma.mapping.Signature; - -public class ClassDefEntry extends ClassEntry implements DefEntry { - private final AccessFlags access; - private final Signature signature; - - public ClassDefEntry(String className, Signature signature, AccessFlags access) { - super(className); - Preconditions.checkNotNull(signature, "Class signature cannot be null"); - Preconditions.checkNotNull(access, "Class access cannot be null"); - this.signature = signature; - this.access = access; - } - - public Signature getSignature() { - return signature; - } - - @Override - public AccessFlags getAccess() { - return access; - } -} diff --git a/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java deleted file mode 100644 index c795825..0000000 --- a/src/main/java/cuchaz/enigma/mapping/entry/ClassEntry.java +++ /dev/null @@ -1,175 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-
-import java.util.List;
-
-public class ClassEntry implements Entry {
-
- private final String name;
-
- public ClassEntry(String className) {
- Preconditions.checkNotNull(className, "Class name cannot be null");
-
- if (className.indexOf('.') >= 0) {
- throw new IllegalArgumentException("Class name must be in JVM format. ie, path/to/package/class$inner : " + className);
- }
-
- this.name = className;
-
- if (isInnerClass() && getInnermostClassName().indexOf('/') >= 0) {
- throw new IllegalArgumentException("Inner class must not have a package: " + className);
- }
- }
-
- public ClassEntry(ClassEntry other) {
- this.name = other.name;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- @Override
- public String getClassName() {
- return this.name;
- }
-
- @Override
- public ClassEntry getOwnerClassEntry() {
- return this;
- }
-
- @Override
- public ClassEntry updateOwnership(ClassEntry classEntry) {
- return classEntry;
- }
-
- @Override
- public int hashCode() {
- return this.name.hashCode();
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof ClassEntry && equals((ClassEntry) other);
- }
-
- public boolean equals(ClassEntry other) {
- return other != null && this.name.equals(other.name);
- }
-
- @Override
- public String toString() {
- return this.name;
- }
-
- public boolean isArray() {
- return this.name.lastIndexOf('[') >= 0;
- }
-
- public boolean isInnerClass() {
- return this.name.lastIndexOf('$') >= 0;
- }
-
- public List
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-public interface Entry {
- String getName();
-
- String getClassName();
-
- ClassEntry getOwnerClassEntry();
-
- Entry updateOwnership(ClassEntry classEntry);
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java b/src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java
deleted file mode 100644
index 5bd159f..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/EntryFactory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import cuchaz.enigma.analysis.JarIndex;
-import cuchaz.enigma.mapping.ClassMapping;
-import cuchaz.enigma.mapping.FieldMapping;
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.mapping.MethodMapping;
-
-public class EntryFactory {
- public static ClassEntry getObfClassEntry(JarIndex jarIndex, ClassMapping classMapping) {
- ClassEntry obfClassEntry = new ClassEntry(classMapping.getObfFullName());
- return obfClassEntry.buildClassEntry(jarIndex.getObfClassChain(obfClassEntry));
- }
-
- private static ClassEntry getObfClassEntry(ClassMapping classMapping) {
- return new ClassEntry(classMapping.getObfFullName());
- }
-
- public static ClassEntry getDeobfClassEntry(ClassMapping classMapping) {
- return new ClassEntry(classMapping.getDeobfName());
- }
-
- public static FieldEntry getObfFieldEntry(ClassMapping classMapping, FieldMapping fieldMapping) {
- return new FieldEntry(getObfClassEntry(classMapping), fieldMapping.getObfName(), fieldMapping.getObfDesc());
- }
-
- public static MethodEntry getMethodEntry(ClassEntry classEntry, String name, MethodDescriptor desc) {
- return new MethodEntry(classEntry, name, desc);
- }
-
- public static MethodEntry getObfMethodEntry(ClassEntry classEntry, MethodMapping methodMapping) {
- return getMethodEntry(classEntry, methodMapping.getObfName(), methodMapping.getObfDesc());
- }
-
- public static MethodEntry getObfMethodEntry(ClassMapping classMapping, MethodMapping methodMapping) {
- return getObfMethodEntry(getObfClassEntry(classMapping), methodMapping);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
deleted file mode 100644
index 223410f..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.bytecode.AccessFlags;
-import cuchaz.enigma.mapping.Signature;
-import cuchaz.enigma.mapping.TypeDescriptor;
-
-public class FieldDefEntry extends FieldEntry implements DefEntry {
- private final AccessFlags access;
- private final Signature signature;
-
- public FieldDefEntry(ClassEntry ownerEntry, String name, TypeDescriptor desc, Signature signature, AccessFlags access) {
- super(ownerEntry, name, desc);
- Preconditions.checkNotNull(access, "Field access cannot be null");
- Preconditions.checkNotNull(signature, "Field signature cannot be null");
- this.access = access;
- this.signature = signature;
- }
-
- @Override
- public AccessFlags getAccess() {
- return access;
- }
-
- public Signature getSignature() {
- return signature;
- }
-
- @Override
- public FieldDefEntry updateOwnership(ClassEntry owner) {
- return new FieldDefEntry(owner, this.name, this.desc, signature, access);
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java
deleted file mode 100644
index b6e1554..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/FieldEntry.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.mapping.TypeDescriptor;
-import cuchaz.enigma.utils.Utils;
-
-public class FieldEntry implements Entry {
-
- protected final ClassEntry ownerEntry;
- protected final String name;
- protected final TypeDescriptor desc;
-
- // NOTE: this argument order is important for the MethodReader/MethodWriter
- public FieldEntry(ClassEntry ownerEntry, String name, TypeDescriptor desc) {
- Preconditions.checkNotNull(ownerEntry, "Owner cannot be null");
- Preconditions.checkNotNull(name, "Field name cannot be null");
- Preconditions.checkNotNull(desc, "Field descriptor cannot be null");
-
- this.ownerEntry = ownerEntry;
- this.name = name;
- this.desc = desc;
- }
-
- @Override
- public ClassEntry getOwnerClassEntry() {
- return this.ownerEntry;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- @Override
- public String getClassName() {
- return this.ownerEntry.getName();
- }
-
- public TypeDescriptor getDesc() {
- return this.desc;
- }
-
- @Override
- public FieldEntry updateOwnership(ClassEntry owner) {
- return new FieldEntry(owner, this.name, this.desc);
- }
-
- @Override
- public int hashCode() {
- return Utils.combineHashesOrdered(this.ownerEntry, this.name, this.desc);
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof FieldEntry && equals((FieldEntry) other);
- }
-
- public boolean equals(FieldEntry other) {
- return this.ownerEntry.equals(other.ownerEntry) && this.name.equals(other.name) && this.desc.equals(other.desc);
- }
-
- @Override
- public String toString() {
- return this.ownerEntry.getName() + "." + this.name + ":" + this.desc;
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java
deleted file mode 100644
index d186664..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableDefEntry.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.mapping.TypeDescriptor;
-import cuchaz.enigma.utils.Utils;
-
-/**
- * TypeDescriptor...
- * Created by Thog
- * 19/10/2016
- */
-public class LocalVariableDefEntry extends LocalVariableEntry {
-
- protected final MethodDefEntry ownerEntry;
- protected final TypeDescriptor desc;
-
- public LocalVariableDefEntry(MethodDefEntry ownerEntry, int index, String name, TypeDescriptor desc) {
- this(ownerEntry, index, name, true, desc);
- }
-
- public LocalVariableDefEntry(MethodDefEntry ownerEntry, int index, String name, boolean parameter, TypeDescriptor desc) {
- super(ownerEntry, index, name, parameter);
- Preconditions.checkNotNull(desc, "Variable desc cannot be null");
-
- this.ownerEntry = ownerEntry;
- this.desc = desc;
- }
-
- @Override
- public MethodDefEntry getOwnerEntry() {
- return this.ownerEntry;
- }
-
- public TypeDescriptor getDesc() {
- return desc;
- }
-
- @Override
- public LocalVariableDefEntry updateOwnership(ClassEntry classEntry) {
- return new LocalVariableDefEntry(ownerEntry.updateOwnership(classEntry), index, name, parameter, desc);
- }
-
- @Override
- public int hashCode() {
- return Utils.combineHashesOrdered(this.ownerEntry, this.desc.hashCode(), this.name.hashCode(), Integer.hashCode(this.index));
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof LocalVariableDefEntry && equals((LocalVariableDefEntry) other);
- }
-
- public boolean equals(LocalVariableDefEntry other) {
- return this.ownerEntry.equals(other.ownerEntry) && this.desc.equals(other.desc) && this.name.equals(other.name) && this.index == other.index;
- }
-
- @Override
- public String toString() {
- return this.ownerEntry + "(" + this.index + ":" + this.name + ":" + this.desc + ")";
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java
deleted file mode 100644
index 3507b25..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/LocalVariableEntry.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.utils.Utils;
-
-/**
- * TypeDescriptor...
- * Created by Thog
- * 19/10/2016
- */
-public class LocalVariableEntry implements Entry {
-
- protected final MethodEntry ownerEntry;
- protected final String name;
- protected final int index;
- protected final boolean parameter;
-
- @Deprecated
- public LocalVariableEntry(MethodEntry ownerEntry, int index, String name) {
- this(ownerEntry, index, name, true);
- }
-
- public LocalVariableEntry(MethodEntry ownerEntry, int index, String name, boolean parameter) {
- Preconditions.checkNotNull(ownerEntry, "Variable owner cannot be null");
- Preconditions.checkNotNull(name, "Variable name cannot be null");
- Preconditions.checkArgument(index >= 0, "Index must be positive");
-
- this.ownerEntry = ownerEntry;
- this.name = name;
- this.index = index;
- this.parameter = parameter;
- }
-
- public boolean isParameter() {
- return this.parameter;
- }
-
- public MethodEntry getOwnerEntry() {
- return this.ownerEntry;
- }
-
- public int getIndex() {
- return index;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- @Override
- public ClassEntry getOwnerClassEntry() {
- return this.ownerEntry.getOwnerClassEntry();
- }
-
- @Override
- public String getClassName() {
- return this.ownerEntry.getClassName();
- }
-
- @Override
- public LocalVariableEntry updateOwnership(ClassEntry classEntry) {
- return new LocalVariableEntry(ownerEntry.updateOwnership(classEntry), index, name, parameter);
- }
-
- public String getMethodName() {
- return this.ownerEntry.getName();
- }
-
- public MethodDescriptor getMethodDesc() {
- return this.ownerEntry.getDesc();
- }
-
- @Override
- public int hashCode() {
- return Utils.combineHashesOrdered(this.ownerEntry, this.name.hashCode(), Integer.hashCode(this.index));
- }
-
- @Override
- public boolean equals(Object other) {
- return other instanceof LocalVariableEntry && equals((LocalVariableEntry) other);
- }
-
- public boolean equals(LocalVariableEntry other) {
- return this.ownerEntry.equals(other.ownerEntry) && this.name.equals(other.name) && this.index == other.index;
- }
-
- @Override
- public String toString() {
- return this.ownerEntry + "(" + this.index + ":" + this.name + ")";
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
deleted file mode 100644
index fa9e668..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.bytecode.AccessFlags;
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.mapping.Signature;
-
-public class MethodDefEntry extends MethodEntry implements DefEntry {
-
- private final AccessFlags access;
- private final Signature signature;
-
- public MethodDefEntry(ClassEntry classEntry, String name, MethodDescriptor descriptor, Signature signature, AccessFlags access) {
- super(classEntry, name, descriptor);
- Preconditions.checkNotNull(access, "Method access cannot be null");
- Preconditions.checkNotNull(signature, "Method signature cannot be null");
- this.access = access;
- this.signature = signature;
- }
-
- @Override
- public AccessFlags getAccess() {
- return access;
- }
-
- public Signature getSignature() {
- return signature;
- }
-
- @Override
- public MethodDefEntry updateOwnership(ClassEntry classEntry) {
- return new MethodDefEntry(new ClassEntry(classEntry.getName()), name, descriptor, signature, access);
- }
-
- public int getArgumentIndex(ClassDefEntry ownerEntry, int localVariableIndex) {
- int argumentIndex = localVariableIndex;
-
- // Enum constructors have an implicit "name" and "ordinal" parameter as well as "this"
- if (ownerEntry.getAccess().isEnum() && getName().startsWith("<")) {
- argumentIndex -= 2;
- }
-
- // If we're not static, "this" is bound to index 0
- if (!getAccess().isStatic()) {
- argumentIndex -= 1;
- }
-
- return argumentIndex;
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java
deleted file mode 100644
index 1abc5b1..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/MethodEntry.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.google.common.base.Preconditions;
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.utils.Utils;
-
-public class MethodEntry implements Entry {
-
- protected final ClassEntry classEntry;
- protected final String name;
- protected final MethodDescriptor descriptor;
-
- public MethodEntry(ClassEntry classEntry, String name, MethodDescriptor descriptor) {
- Preconditions.checkNotNull(classEntry, "Class cannot be null");
- Preconditions.checkNotNull(name, "Method name cannot be null");
- Preconditions.checkNotNull(descriptor, "Method descriptor cannot be null");
-
- this.classEntry = classEntry;
- this.name = name;
- this.descriptor = descriptor;
- }
-
- @Override
- public ClassEntry getOwnerClassEntry() {
- return this.classEntry;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- public MethodDescriptor getDesc() {
- return this.descriptor;
- }
-
- public boolean isConstructor() {
- return name.equals("
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import com.strobel.assembler.metadata.FieldDefinition;
-import com.strobel.assembler.metadata.MemberReference;
-import com.strobel.assembler.metadata.MethodDefinition;
-import cuchaz.enigma.bytecode.AccessFlags;
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.mapping.Signature;
-import cuchaz.enigma.mapping.TypeDescriptor;
-
-public class ProcyonEntryFactory {
- private final ReferencedEntryPool entryPool;
-
- public ProcyonEntryFactory(ReferencedEntryPool entryPool) {
- this.entryPool = entryPool;
- }
-
- public FieldEntry getFieldEntry(MemberReference def) {
- ClassEntry classEntry = entryPool.getClass(def.getDeclaringType().getInternalName());
- return entryPool.getField(classEntry, def.getName(), def.getErasedSignature());
- }
-
- public FieldDefEntry getFieldDefEntry(FieldDefinition def) {
- ClassEntry classEntry = entryPool.getClass(def.getDeclaringType().getInternalName());
- return new FieldDefEntry(classEntry, def.getName(), new TypeDescriptor(def.getErasedSignature()), Signature.createTypedSignature(def.getSignature()), new AccessFlags(def.getModifiers()));
- }
-
- public MethodEntry getMethodEntry(MemberReference def) {
- ClassEntry classEntry = entryPool.getClass(def.getDeclaringType().getInternalName());
- return entryPool.getMethod(classEntry, def.getName(), def.getErasedSignature());
- }
-
- public MethodDefEntry getMethodDefEntry(MethodDefinition def) {
- ClassEntry classEntry = entryPool.getClass(def.getDeclaringType().getInternalName());
- return new MethodDefEntry(classEntry, def.getName(), new MethodDescriptor(def.getErasedSignature()), Signature.createSignature(def.getSignature()), new AccessFlags(def.getModifiers()));
- }
-}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java b/src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java
deleted file mode 100644
index 12b3955..0000000
--- a/src/main/java/cuchaz/enigma/mapping/entry/ReferencedEntryPool.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Jeff Martin.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the GNU Lesser General Public
- * License v3.0 which accompanies this distribution, and is available at
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Contributors:
- * Jeff Martin - initial API and implementation
- ******************************************************************************/
-
-package cuchaz.enigma.mapping.entry;
-
-import cuchaz.enigma.mapping.MethodDescriptor;
-import cuchaz.enigma.mapping.TypeDescriptor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ReferencedEntryPool {
- private final Map