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/Matches.java | |
| 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/Matches.java')
| -rw-r--r-- | src/cuchaz/enigma/convert/Matches.java | 38 |
1 files changed, 38 insertions, 0 deletions
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 | } |