diff options
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java index cd00ef77..df1af912 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java | |||
| @@ -26,6 +26,7 @@ import java.util.Collection; | |||
| 26 | import java.util.Collections; | 26 | import java.util.Collections; |
| 27 | import java.util.Objects; | 27 | import java.util.Objects; |
| 28 | import java.util.concurrent.atomic.AtomicInteger; | 28 | import java.util.concurrent.atomic.AtomicInteger; |
| 29 | import java.util.stream.Collectors; | ||
| 29 | import java.util.stream.Stream; | 30 | import java.util.stream.Stream; |
| 30 | 31 | ||
| 31 | import javax.annotation.Nonnull; | 32 | import javax.annotation.Nonnull; |
| @@ -78,6 +79,8 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 78 | 79 | ||
| 79 | applyDeletions(path, changedClasses, mappings, delta.getBaseMappings(), saveParameters.getFileNameFormat()); | 80 | applyDeletions(path, changedClasses, mappings, delta.getBaseMappings(), saveParameters.getFileNameFormat()); |
| 80 | 81 | ||
| 82 | changedClasses = changedClasses.stream().filter(entry -> !isClassEmpty(mappings, entry)).collect(Collectors.toList()); | ||
| 83 | |||
| 81 | progress.init(changedClasses.size(), I18n.translate("progress.mappings.enigma_directory.writing")); | 84 | progress.init(changedClasses.size(), I18n.translate("progress.mappings.enigma_directory.writing")); |
| 82 | 85 | ||
| 83 | AtomicInteger steps = new AtomicInteger(); | 86 | AtomicInteger steps = new AtomicInteger(); |
| @@ -313,4 +316,15 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 313 | builder.append(line.trim()); | 316 | builder.append(line.trim()); |
| 314 | return builder.toString(); | 317 | return builder.toString(); |
| 315 | } | 318 | } |
| 319 | |||
| 320 | protected boolean isClassEmpty(EntryTree<EntryMapping> mappings, ClassEntry classEntry) { | ||
| 321 | Collection<Entry<?>> children = groupChildren(mappings.getChildren(classEntry)); | ||
| 322 | |||
| 323 | EntryMapping classEntryMapping = mappings.get(classEntry); | ||
| 324 | return children.isEmpty() && (classEntryMapping == null || isMappingEmpty(classEntryMapping)); | ||
| 325 | } | ||
| 326 | |||
| 327 | private boolean isMappingEmpty(EntryMapping mapping) { | ||
| 328 | return mapping.targetName() == null && mapping.accessModifier() == AccessModifier.UNCHANGED && mapping.javadoc() == null; | ||
| 329 | } | ||
| 316 | } | 330 | } |