diff options
| author | 2015-03-07 16:00:44 -0500 | |
|---|---|---|
| committer | 2015-03-07 16:00:44 -0500 | |
| commit | 59ba32f0285aa6d6b367e6283cae9268e8947fed (patch) | |
| tree | 10bc21f028a2ddd80a761c0e666be20b6e7e45bc /src/cuchaz/enigma/convert | |
| parent | added simple renamer for local variable table (diff) | |
| download | enigma-fork-59ba32f0285aa6d6b367e6283cae9268e8947fed.tar.gz enigma-fork-59ba32f0285aa6d6b367e6283cae9268e8947fed.tar.xz enigma-fork-59ba32f0285aa6d6b367e6283cae9268e8947fed.zip | |
match/unmatch button works
Diffstat (limited to 'src/cuchaz/enigma/convert')
| -rw-r--r-- | src/cuchaz/enigma/convert/ClassMatch.java | 12 | ||||
| -rw-r--r-- | src/cuchaz/enigma/convert/Matches.java | 38 |
2 files changed, 47 insertions, 3 deletions
diff --git a/src/cuchaz/enigma/convert/ClassMatch.java b/src/cuchaz/enigma/convert/ClassMatch.java index 9cecf70..eaaaa41 100644 --- a/src/cuchaz/enigma/convert/ClassMatch.java +++ b/src/cuchaz/enigma/convert/ClassMatch.java | |||
| @@ -20,10 +20,16 @@ public class ClassMatch { | |||
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | public ClassMatch(ClassEntry sourceClass, ClassEntry destClass) { | 22 | public ClassMatch(ClassEntry sourceClass, ClassEntry destClass) { |
| 23 | this.sourceClasses = Sets.newHashSet(sourceClass); | 23 | sourceClasses = Sets.newHashSet(); |
| 24 | this.destClasses = Sets.newHashSet(destClass); | 24 | if (sourceClass != null) { |
| 25 | sourceClasses.add(sourceClass); | ||
| 26 | } | ||
| 27 | destClasses = Sets.newHashSet(); | ||
| 28 | if (destClass != null) { | ||
| 29 | destClasses.add(destClass); | ||
| 30 | } | ||
| 25 | } | 31 | } |
| 26 | 32 | ||
| 27 | public boolean isMatched() { | 33 | public boolean isMatched() { |
| 28 | return sourceClasses.size() > 0 && destClasses.size() > 0; | 34 | return sourceClasses.size() > 0 && destClasses.size() > 0; |
| 29 | } | 35 | } |
diff --git a/src/cuchaz/enigma/convert/Matches.java b/src/cuchaz/enigma/convert/Matches.java index 5faa923..0b00b29 100644 --- a/src/cuchaz/enigma/convert/Matches.java +++ b/src/cuchaz/enigma/convert/Matches.java | |||
| @@ -48,6 +48,22 @@ public class Matches implements Iterable<ClassMatch> { | |||
| 48 | m_matches.add(match); | 48 | m_matches.add(match); |
| 49 | indexMatch(match); | 49 | indexMatch(match); |
| 50 | } | 50 | } |
| 51 | |||
| 52 | public void remove(ClassMatch match) { | ||
| 53 | for (ClassEntry sourceClass : match.sourceClasses) { | ||
| 54 | m_matchesBySource.remove(sourceClass); | ||
| 55 | m_uniqueMatches.remove(sourceClass); | ||
| 56 | m_ambiguousMatchesBySource.remove(sourceClass); | ||
| 57 | m_unmatchedSourceClasses.remove(sourceClass); | ||
| 58 | } | ||
| 59 | for (ClassEntry destClass : match.sourceClasses) { | ||
| 60 | m_matchesByDest.remove(destClass); | ||
| 61 | m_uniqueMatches.inverse().remove(destClass); | ||
| 62 | m_ambiguousMatchesByDest.remove(destClass); | ||
| 63 | m_unmatchedDestClasses.remove(destClass); | ||
| 64 | } | ||
| 65 | m_matches.remove(match); | ||
| 66 | } | ||
| 51 | 67 | ||
| 52 | public int size() { | 68 | public int size() { |
| 53 | return m_matches.size(); | 69 | return m_matches.size(); |
| @@ -112,4 +128,26 @@ public class Matches implements Iterable<ClassMatch> { | |||
| 112 | public ClassMatch getMatchByDest(ClassEntry destClass) { | 128 | public ClassMatch getMatchByDest(ClassEntry destClass) { |
| 113 | return m_matchesByDest.get(destClass); | 129 | return m_matchesByDest.get(destClass); |
| 114 | } | 130 | } |
| 131 | |||
| 132 | public void removeSource(ClassEntry sourceClass) { | ||
| 133 | ClassMatch match = m_matchesBySource.get(sourceClass); | ||
| 134 | if (match != null) { | ||
| 135 | remove(match); | ||
| 136 | match.sourceClasses.remove(sourceClass); | ||
| 137 | if (!match.sourceClasses.isEmpty() || !match.destClasses.isEmpty()) { | ||
| 138 | add(match); | ||
| 139 | } | ||
| 140 | } | ||
| 141 | } | ||
| 142 | |||
| 143 | public void removeDest(ClassEntry destClass) { | ||
| 144 | ClassMatch match = m_matchesByDest.get(destClass); | ||
| 145 | if (match != null) { | ||
| 146 | remove(match); | ||
| 147 | match.destClasses.remove(destClass); | ||
| 148 | if (!match.sourceClasses.isEmpty() || !match.destClasses.isEmpty()) { | ||
| 149 | add(match); | ||
| 150 | } | ||
| 151 | } | ||
| 152 | } | ||
| 115 | } | 153 | } |