From e33b4003a5c423894e7aef575faff359dd1d33b1 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 11 Mar 2015 11:03:16 -0400 Subject: generalized field matching added method matching --- src/cuchaz/enigma/convert/MatchesWriter.java | 50 ++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 14 deletions(-) (limited to 'src/cuchaz/enigma/convert/MatchesWriter.java') diff --git a/src/cuchaz/enigma/convert/MatchesWriter.java b/src/cuchaz/enigma/convert/MatchesWriter.java index 2118dd0..9e9ead0 100644 --- a/src/cuchaz/enigma/convert/MatchesWriter.java +++ b/src/cuchaz/enigma/convert/MatchesWriter.java @@ -5,7 +5,9 @@ import java.io.FileWriter; import java.io.IOException; import java.util.Map; +import cuchaz.enigma.mapping.BehaviorEntry; import cuchaz.enigma.mapping.ClassEntry; +import cuchaz.enigma.mapping.Entry; import cuchaz.enigma.mapping.FieldEntry; @@ -41,43 +43,52 @@ public class MatchesWriter { } } - public static void writeFields(FieldMatches fieldMatches, File file) + public static void writeMembers(MemberMatches matches, File file) throws IOException { try (FileWriter out = new FileWriter(file)) { - for (Map.Entry match : fieldMatches.matches().entrySet()) { - writeFieldMatch(out, match.getKey(), match.getValue()); + for (Map.Entry match : matches.matches().entrySet()) { + writeMemberMatch(out, match.getKey(), match.getValue()); } - for (FieldEntry fieldEntry : fieldMatches.getUnmatchedSourceFields()) { - writeFieldMatch(out, fieldEntry, null); + for (T entry : matches.getUnmatchedSourceEntries()) { + writeMemberMatch(out, entry, null); } - for (FieldEntry fieldEntry : fieldMatches.getUnmatchedDestFields()) { - writeFieldMatch(out, null, fieldEntry); + for (T entry : matches.getUnmatchedDestEntries()) { + writeMemberMatch(out, null, entry); } - for (FieldEntry fieldEntry : fieldMatches.getUnmatchableSourceFields()) { - writeUnmatchableField(out, fieldEntry); + for (T entry : matches.getUnmatchableSourceEntries()) { + writeUnmatchableEntry(out, entry); } } } - private static void writeFieldMatch(FileWriter out, FieldEntry source, FieldEntry dest) + private static void writeMemberMatch(FileWriter out, T source, T dest) throws IOException { if (source != null) { - writeField(out, source); + writeEntry(out, source); } out.write(":"); if (dest != null) { - writeField(out, dest); + writeEntry(out, dest); } out.write("\n"); } - private static void writeUnmatchableField(FileWriter out, FieldEntry fieldEntry) + private static void writeUnmatchableEntry(FileWriter out, T entry) throws IOException { out.write("!"); - writeField(out, fieldEntry); + writeEntry(out, entry); out.write("\n"); } + private static void writeEntry(FileWriter out, T entry) + throws IOException { + if (entry instanceof FieldEntry) { + writeField(out, (FieldEntry)entry); + } else if (entry instanceof BehaviorEntry) { + writeBehavior(out, (BehaviorEntry)entry); + } + } + private static void writeField(FileWriter out, FieldEntry fieldEntry) throws IOException { out.write(fieldEntry.getClassName()); @@ -86,4 +97,15 @@ public class MatchesWriter { out.write(" "); out.write(fieldEntry.getType().toString()); } + + private static void writeBehavior(FileWriter out, BehaviorEntry behaviorEntry) + throws IOException { + out.write(behaviorEntry.getClassName()); + out.write(" "); + out.write(behaviorEntry.getName()); + out.write(" "); + if (behaviorEntry.getSignature() != null) { + out.write(behaviorEntry.getSignature().toString()); + } + } } -- cgit v1.2.3