summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Julian Burner2022-12-07 20:03:10 +0100
committerGravatar GitHub2022-12-07 19:03:10 +0000
commit23d7b2277aa3d82e3f2c7a9aa3fa385caddba54b (patch)
treed51fcace19732369ec5d214a2489d184064e209b
parentClear Javadoc when text is empty (#473) (diff)
downloadenigma-23d7b2277aa3d82e3f2c7a9aa3fa385caddba54b.tar.gz
enigma-23d7b2277aa3d82e3f2c7a9aa3fa385caddba54b.tar.xz
enigma-23d7b2277aa3d82e3f2c7a9aa3fa385caddba54b.zip
Don't save empty classes (#474)
Co-authored-by: ByMartrixx <bymartrixx@gmail.com>
-rw-r--r--enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java14
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;
26import java.util.Collections; 26import java.util.Collections;
27import java.util.Objects; 27import java.util.Objects;
28import java.util.concurrent.atomic.AtomicInteger; 28import java.util.concurrent.atomic.AtomicInteger;
29import java.util.stream.Collectors;
29import java.util.stream.Stream; 30import java.util.stream.Stream;
30 31
31import javax.annotation.Nonnull; 32import 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}