summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
deleted file mode 100644
index 4beab7f..0000000
--- a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
+++ /dev/null
@@ -1,83 +0,0 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 * <p>
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma.analysis;
13
14import cuchaz.enigma.analysis.index.JarIndex;
15import cuchaz.enigma.analysis.index.ReferenceIndex;
16import cuchaz.enigma.translation.Translator;
17import cuchaz.enigma.translation.representation.entry.FieldEntry;
18import cuchaz.enigma.translation.representation.entry.MethodDefEntry;
19import cuchaz.enigma.translation.representation.entry.MethodEntry;
20
21import javax.swing.tree.DefaultMutableTreeNode;
22
23public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements ReferenceTreeNode<FieldEntry, MethodDefEntry> {
24
25 private final Translator translator;
26 private FieldEntry entry;
27 private EntryReference<FieldEntry, MethodDefEntry> reference;
28
29 public FieldReferenceTreeNode(Translator translator, FieldEntry entry) {
30 this.translator = translator;
31 this.entry = entry;
32 this.reference = null;
33 }
34
35 private FieldReferenceTreeNode(Translator translator, EntryReference<FieldEntry, MethodDefEntry> reference) {
36 this.translator = translator;
37 this.entry = reference.entry;
38 this.reference = reference;
39 }
40
41 @Override
42 public FieldEntry getEntry() {
43 return this.entry;
44 }
45
46 @Override
47 public EntryReference<FieldEntry, MethodDefEntry> getReference() {
48 return this.reference;
49 }
50
51 @Override
52 public String toString() {
53 if (this.reference != null) {
54 return String.format("%s", translator.translate(this.reference.context));
55 }
56 return translator.translate(entry).toString();
57 }
58
59 public void load(JarIndex index, boolean recurse) {
60 ReferenceIndex referenceIndex = index.getReferenceIndex();
61
62 // get all the child nodes
63 if (this.reference == null) {
64 for (EntryReference<FieldEntry, MethodDefEntry> reference : referenceIndex.getReferencesToField(this.entry)) {
65 add(new FieldReferenceTreeNode(translator, reference));
66 }
67 } else {
68 for (EntryReference<MethodEntry, MethodDefEntry> reference : referenceIndex.getReferencesToMethod(this.reference.context)) {
69 add(new MethodReferenceTreeNode(translator, reference));
70 }
71 }
72
73 if (recurse && children != null) {
74 for (Object node : children) {
75 if (node instanceof MethodReferenceTreeNode) {
76 ((MethodReferenceTreeNode) node).load(index, true, false);
77 } else if (node instanceof FieldReferenceTreeNode) {
78 ((FieldReferenceTreeNode) node).load(index, true);
79 }
80 }
81 }
82 }
83}