diff options
| author | 2020-05-13 17:41:48 +0100 | |
|---|---|---|
| committer | 2020-05-13 17:41:48 +0100 | |
| commit | a8327b4f79fbfabb27a71b654fb357395ac0190a (patch) | |
| tree | eb555de3984baebfcfa659a226edd58ef085b4c1 /src/main | |
| parent | Multiplayer support (#221) (diff) | |
| download | enigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.tar.gz enigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.tar.xz enigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.zip | |
A quick and dirty workaround for not being able to add javadoc to methods or fields without a mapping (mainly none obf names) (#240)
Diffstat (limited to 'src/main')
3 files changed, 18 insertions, 6 deletions
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java b/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java index 9ed7e8a5..5d39e3d2 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java | |||
| @@ -6,7 +6,7 @@ import javax.annotation.Nullable; | |||
| 6 | 6 | ||
| 7 | public class MappingPair<E extends Entry<?>, M> { | 7 | public class MappingPair<E extends Entry<?>, M> { |
| 8 | private final E entry; | 8 | private final E entry; |
| 9 | private final M mapping; | 9 | private M mapping; |
| 10 | 10 | ||
| 11 | public MappingPair(E entry, @Nullable M mapping) { | 11 | public MappingPair(E entry, @Nullable M mapping) { |
| 12 | this.entry = entry; | 12 | this.entry = entry; |
| @@ -25,4 +25,8 @@ public class MappingPair<E extends Entry<?>, M> { | |||
| 25 | public M getMapping() { | 25 | public M getMapping() { |
| 26 | return mapping; | 26 | return mapping; |
| 27 | } | 27 | } |
| 28 | |||
| 29 | public void setMapping(M mapping) { | ||
| 30 | this.mapping = mapping; | ||
| 31 | } | ||
| 28 | } | 32 | } |
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java index a1d5e01d..53bbaa3b 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java | |||
| @@ -179,8 +179,9 @@ public enum EnigmaMappingsReader implements MappingsReader { | |||
| 179 | throw new IllegalStateException("Javadoc has no parent!"); | 179 | throw new IllegalStateException("Javadoc has no parent!"); |
| 180 | // Empty string to concat | 180 | // Empty string to concat |
| 181 | String jdLine = tokens.length > 1 ? String.join(" ", Arrays.copyOfRange(tokens,1,tokens.length)) : ""; | 181 | String jdLine = tokens.length > 1 ? String.join(" ", Arrays.copyOfRange(tokens,1,tokens.length)) : ""; |
| 182 | if (parent.getMapping() == null) | 182 | if (parent.getMapping() == null) { |
| 183 | throw new IllegalStateException("Javadoc requires a mapping!"); | 183 | parent.setMapping(new RawEntryMapping(parent.getEntry().getName(), AccessModifier.UNCHANGED)); |
| 184 | } | ||
| 184 | parent.getMapping().addJavadocLine(MappingHelper.unescape(jdLine)); | 185 | parent.getMapping().addJavadocLine(MappingHelper.unescape(jdLine)); |
| 185 | } | 186 | } |
| 186 | 187 | ||
| @@ -228,7 +229,10 @@ public enum EnigmaMappingsReader implements MappingsReader { | |||
| 228 | AccessModifier modifier = AccessModifier.UNCHANGED; | 229 | AccessModifier modifier = AccessModifier.UNCHANGED; |
| 229 | TypeDescriptor descriptor; | 230 | TypeDescriptor descriptor; |
| 230 | 231 | ||
| 231 | if (tokens.length == 4) { | 232 | if (tokens.length == 3) { |
| 233 | mapping = tokens[1]; | ||
| 234 | descriptor = new TypeDescriptor(tokens[2]); | ||
| 235 | } else if (tokens.length == 4) { | ||
| 232 | AccessModifier parsedModifier = parseModifier(tokens[3]); | 236 | AccessModifier parsedModifier = parseModifier(tokens[3]); |
| 233 | if (parsedModifier != null) { | 237 | if (parsedModifier != null) { |
| 234 | descriptor = new TypeDescriptor(tokens[2]); | 238 | descriptor = new TypeDescriptor(tokens[2]); |
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java index 2f6c7bc4..be0fceb5 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java | |||
| @@ -271,7 +271,9 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 271 | protected String writeMethod(MethodEntry entry, EntryMapping mapping) { | 271 | protected String writeMethod(MethodEntry entry, EntryMapping mapping) { |
| 272 | StringBuilder builder = new StringBuilder(EnigmaFormat.METHOD + " "); | 272 | StringBuilder builder = new StringBuilder(EnigmaFormat.METHOD + " "); |
| 273 | builder.append(entry.getName()).append(' '); | 273 | builder.append(entry.getName()).append(' '); |
| 274 | writeMapping(builder, mapping); | 274 | if (mapping != null && !mapping.getTargetName().equals(entry.getName())) { |
| 275 | writeMapping(builder, mapping); | ||
| 276 | } | ||
| 275 | 277 | ||
| 276 | builder.append(entry.getDesc().toString()); | 278 | builder.append(entry.getDesc().toString()); |
| 277 | 279 | ||
| @@ -281,7 +283,9 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 281 | protected String writeField(FieldEntry entry, EntryMapping mapping) { | 283 | protected String writeField(FieldEntry entry, EntryMapping mapping) { |
| 282 | StringBuilder builder = new StringBuilder(EnigmaFormat.FIELD + " "); | 284 | StringBuilder builder = new StringBuilder(EnigmaFormat.FIELD + " "); |
| 283 | builder.append(entry.getName()).append(' '); | 285 | builder.append(entry.getName()).append(' '); |
| 284 | writeMapping(builder, mapping); | 286 | if (mapping != null && !mapping.getTargetName().equals(entry.getName())) { |
| 287 | writeMapping(builder, mapping); | ||
| 288 | } | ||
| 285 | 289 | ||
| 286 | builder.append(entry.getDesc().toString()); | 290 | builder.append(entry.getDesc().toString()); |
| 287 | 291 | ||