summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/ArgumentEntry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/mapping/ArgumentEntry.java')
-rw-r--r--src/cuchaz/enigma/mapping/ArgumentEntry.java85
1 files changed, 35 insertions, 50 deletions
diff --git a/src/cuchaz/enigma/mapping/ArgumentEntry.java b/src/cuchaz/enigma/mapping/ArgumentEntry.java
index 7ed3d32..2c15f4e 100644
--- a/src/cuchaz/enigma/mapping/ArgumentEntry.java
+++ b/src/cuchaz/enigma/mapping/ArgumentEntry.java
@@ -14,27 +14,23 @@ import java.io.Serializable;
14 14
15import cuchaz.enigma.Util; 15import cuchaz.enigma.Util;
16 16
17public class ArgumentEntry implements Entry, Serializable 17public class ArgumentEntry implements Entry, Serializable {
18{ 18
19 private static final long serialVersionUID = 4472172468162696006L; 19 private static final long serialVersionUID = 4472172468162696006L;
20 20
21 private BehaviorEntry m_behaviorEntry; 21 private BehaviorEntry m_behaviorEntry;
22 private int m_index; 22 private int m_index;
23 private String m_name; 23 private String m_name;
24 24
25 public ArgumentEntry( BehaviorEntry behaviorEntry, int index, String name ) 25 public ArgumentEntry(BehaviorEntry behaviorEntry, int index, String name) {
26 { 26 if (behaviorEntry == null) {
27 if( behaviorEntry == null ) 27 throw new IllegalArgumentException("Behavior cannot be null!");
28 {
29 throw new IllegalArgumentException( "Behavior cannot be null!" );
30 } 28 }
31 if( index < 0 ) 29 if (index < 0) {
32 { 30 throw new IllegalArgumentException("Index must be non-negative!");
33 throw new IllegalArgumentException( "Index must be non-negative!" );
34 } 31 }
35 if( name == null ) 32 if (name == null) {
36 { 33 throw new IllegalArgumentException("Argument name cannot be null!");
37 throw new IllegalArgumentException( "Argument name cannot be null!" );
38 } 34 }
39 35
40 m_behaviorEntry = behaviorEntry; 36 m_behaviorEntry = behaviorEntry;
@@ -42,90 +38,79 @@ public class ArgumentEntry implements Entry, Serializable
42 m_name = name; 38 m_name = name;
43 } 39 }
44 40
45 public ArgumentEntry( ArgumentEntry other ) 41 public ArgumentEntry(ArgumentEntry other) {
46 { 42 m_behaviorEntry = (BehaviorEntry)m_behaviorEntry.cloneToNewClass(getClassEntry());
47 m_behaviorEntry = (BehaviorEntry)m_behaviorEntry.cloneToNewClass( getClassEntry() );
48 m_index = other.m_index; 43 m_index = other.m_index;
49 m_name = other.m_name; 44 m_name = other.m_name;
50 } 45 }
51 46
52 public ArgumentEntry( ArgumentEntry other, String newClassName ) 47 public ArgumentEntry(ArgumentEntry other, String newClassName) {
53 { 48 m_behaviorEntry = (BehaviorEntry)other.m_behaviorEntry.cloneToNewClass(new ClassEntry(newClassName));
54 m_behaviorEntry = (BehaviorEntry)other.m_behaviorEntry.cloneToNewClass( new ClassEntry( newClassName ) );
55 m_index = other.m_index; 49 m_index = other.m_index;
56 m_name = other.m_name; 50 m_name = other.m_name;
57 } 51 }
58 52
59 public BehaviorEntry getBehaviorEntry( ) 53 public BehaviorEntry getBehaviorEntry() {
60 {
61 return m_behaviorEntry; 54 return m_behaviorEntry;
62 } 55 }
63 56
64 public int getIndex( ) 57 public int getIndex() {
65 {
66 return m_index; 58 return m_index;
67 } 59 }
68 60
69 @Override 61 @Override
70 public String getName( ) 62 public String getName() {
71 {
72 return m_name; 63 return m_name;
73 } 64 }
74 65
75 @Override 66 @Override
76 public ClassEntry getClassEntry( ) 67 public ClassEntry getClassEntry() {
77 {
78 return m_behaviorEntry.getClassEntry(); 68 return m_behaviorEntry.getClassEntry();
79 } 69 }
80 70
81 @Override 71 @Override
82 public String getClassName( ) 72 public String getClassName() {
83 {
84 return m_behaviorEntry.getClassName(); 73 return m_behaviorEntry.getClassName();
85 } 74 }
86 75
87 @Override 76 @Override
88 public ArgumentEntry cloneToNewClass( ClassEntry classEntry ) 77 public ArgumentEntry cloneToNewClass(ClassEntry classEntry) {
89 { 78 return new ArgumentEntry(this, classEntry.getName());
90 return new ArgumentEntry( this, classEntry.getName() );
91 } 79 }
92 80
93 public String getMethodName( ) 81 public String getMethodName() {
94 {
95 return m_behaviorEntry.getName(); 82 return m_behaviorEntry.getName();
96 } 83 }
97 84
98 public String getMethodSignature( ) 85 public String getMethodSignature() {
99 {
100 return m_behaviorEntry.getSignature(); 86 return m_behaviorEntry.getSignature();
101 } 87 }
102 88
103 @Override 89 @Override
104 public int hashCode( ) 90 public int hashCode() {
105 { 91 return Util.combineHashesOrdered(
106 return Util.combineHashesOrdered( m_behaviorEntry, Integer.valueOf( m_index ).hashCode(), m_name.hashCode() ); 92 m_behaviorEntry,
93 Integer.valueOf(m_index).hashCode(),
94 m_name.hashCode()
95 );
107 } 96 }
108 97
109 @Override 98 @Override
110 public boolean equals( Object other ) 99 public boolean equals(Object other) {
111 { 100 if (other instanceof ArgumentEntry) {
112 if( other instanceof ArgumentEntry ) 101 return equals((ArgumentEntry)other);
113 {
114 return equals( (ArgumentEntry)other );
115 } 102 }
116 return false; 103 return false;
117 } 104 }
118 105
119 public boolean equals( ArgumentEntry other ) 106 public boolean equals(ArgumentEntry other) {
120 { 107 return m_behaviorEntry.equals(other.m_behaviorEntry)
121 return m_behaviorEntry.equals( other.m_behaviorEntry )
122 && m_index == other.m_index 108 && m_index == other.m_index
123 && m_name.equals( other.m_name ); 109 && m_name.equals(other.m_name);
124 } 110 }
125 111
126 @Override 112 @Override
127 public String toString( ) 113 public String toString() {
128 {
129 return m_behaviorEntry.toString() + "(" + m_index + ":" + m_name + ")"; 114 return m_behaviorEntry.toString() + "(" + m_index + ":" + m_name + ")";
130 } 115 }
131} 116}