This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit 2e4b0d67233a1547d038edce374fdb3a2bb513e8 Author: Gary Gregory <[email protected]> AuthorDate: Thu Dec 2 19:11:50 2021 -0500 Sort members. --- .../compress/harmony/pack200/PackingOptions.java | 318 ++++++++++----------- 1 file changed, 159 insertions(+), 159 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java index fdb9df8..19b33f4 100644 --- a/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java +++ b/src/main/java/org/apache/commons/compress/harmony/pack200/PackingOptions.java @@ -53,89 +53,144 @@ public class PackingOptions { private Attribute[] unknownAttributeTypes; - public boolean isGzip() { - return gzip; + public void addClassAttributeAction(final String attributeName, final String action) { + classAttributeActions.put(attributeName, action); } - public void setGzip(final boolean gzip) { - this.gzip = gzip; + public void addCodeAttributeAction(final String attributeName, final String action) { + codeAttributeActions.put(attributeName, action); } - public boolean isStripDebug() { - return stripDebug; + public void addFieldAttributeAction(final String attributeName, final String action) { + fieldAttributeActions.put(attributeName, action); + } + + public void addMethodAttributeAction(final String attributeName, final String action) { + methodAttributeActions.put(attributeName, action); + } + + private void addOrUpdateAttributeActions(final List<Attribute> prototypes, final Map<String, String> attributeActions, final int tag) { + if ((attributeActions != null) && (attributeActions.size() > 0)) { + NewAttribute newAttribute; + for (String name : attributeActions.keySet()) { + String action = attributeActions.get(name); + boolean prototypeExists = false; + for (Object prototype : prototypes) { + newAttribute = (NewAttribute) prototype; + if (newAttribute.type.equals(name)) { + // if the attribute exists, update its context + newAttribute.addContext(tag); + prototypeExists = true; + break; + } + } + // if no attribute is found, add a new attribute + if (!prototypeExists) { + if (ERROR.equals(action)) { + newAttribute = new NewAttribute.ErrorAttribute(name, tag); + } else if (STRIP.equals(action)) { + newAttribute = new NewAttribute.StripAttribute(name, tag); + } else if (PASS.equals(action)) { + newAttribute = new NewAttribute.PassAttribute(name, tag); + } else { + newAttribute = new NewAttribute(name, action, tag); + } + prototypes.add(newAttribute); + } + } + } } /** - * Set strip debug attributes. If true, all debug attributes (i.e. LineNumberTable, SourceFile, LocalVariableTable - * and LocalVariableTypeTable attributes) are stripped when reading the input class files and not included in the - * output archive. + * Tell the compressor to pass the file with the given name, or if the name is a directory name all files under that + * directory will be passed. * - * @param stripDebug If true, all debug attributes. + * @param passFileName the file name */ - public void setStripDebug(final boolean stripDebug) { - this.stripDebug = stripDebug; + public void addPassFile(String passFileName) { + String fileSeparator = System.getProperty("file.separator"); + if (fileSeparator.equals("\\")) { + // Need to escape backslashes for replaceAll(), which uses regex + fileSeparator += "\\"; + } + passFileName = passFileName.replaceAll(fileSeparator, "/"); + passFiles.add(passFileName); } - public boolean isKeepFileOrder() { - return keepFileOrder; + public String getDeflateHint() { + return deflateHint; } - public void setKeepFileOrder(final boolean keepFileOrder) { - this.keepFileOrder = keepFileOrder; + public int getEffort() { + return effort; + } + + public String getLogFile() { + return logFile; + } + + public String getModificationTime() { + return modificationTime; } public long getSegmentLimit() { return segmentLimit; } - /** - * Set the segment limit (equivalent to -S command line option) - * - * @param segmentLimit - the limit in bytes - */ - public void setSegmentLimit(final long segmentLimit) { - this.segmentLimit = segmentLimit; + public String getUnknownAttributeAction() { + return unknownAttributeAction; } - public int getEffort() { - return effort; + public Attribute[] getUnknownAttributePrototypes() { + if (unknownAttributeTypes == null) { + final List<Attribute> prototypes = new ArrayList<>(); + addOrUpdateAttributeActions(prototypes, classAttributeActions, AttributeDefinitionBands.CONTEXT_CLASS); + addOrUpdateAttributeActions(prototypes, methodAttributeActions, AttributeDefinitionBands.CONTEXT_METHOD); + addOrUpdateAttributeActions(prototypes, fieldAttributeActions, AttributeDefinitionBands.CONTEXT_FIELD); + addOrUpdateAttributeActions(prototypes, codeAttributeActions, AttributeDefinitionBands.CONTEXT_CODE); + unknownAttributeTypes = prototypes.toArray(new Attribute[0]); + } + return unknownAttributeTypes; } - /** - * Sets the compression effort level (0-9, equivalent to -E command line option) - * - * @param effort the compression effort level, 0-9. - */ - public void setEffort(final int effort) { - this.effort = effort; + public String getUnknownClassAttributeAction(final String type) { + if (classAttributeActions == null) { + return unknownAttributeAction; + } + return classAttributeActions.getOrDefault(type, unknownAttributeAction); } - public String getDeflateHint() { - return deflateHint; + public String getUnknownCodeAttributeAction(final String type) { + if (codeAttributeActions == null) { + return unknownAttributeAction; + } + return codeAttributeActions.getOrDefault(type, unknownAttributeAction); } - public boolean isKeepDeflateHint() { - return KEEP.equals(deflateHint); + public String getUnknownFieldAttributeAction(final String type) { + if (fieldAttributeActions == null) { + return unknownAttributeAction; + } + return fieldAttributeActions.getOrDefault(type, unknownAttributeAction); } - public void setDeflateHint(final String deflateHint) { - if (!KEEP.equals(deflateHint) && !"true".equals(deflateHint) && !"false".equals(deflateHint)) { - throw new IllegalArgumentException( - "Bad argument: -H " + deflateHint + " ? deflate hint should be either true, false or keep (default)"); + public String getUnknownMethodAttributeAction(final String type) { + if (methodAttributeActions == null) { + return unknownAttributeAction; } - this.deflateHint = deflateHint; + return methodAttributeActions.getOrDefault(type, unknownAttributeAction); } - public String getModificationTime() { - return modificationTime; + public boolean isGzip() { + return gzip; } - public void setModificationTime(final String modificationTime) { - if (!KEEP.equals(modificationTime) && !"latest".equals(modificationTime)) { - throw new IllegalArgumentException("Bad argument: -m " + modificationTime - + " ? transmit modtimes should be either latest or keep (default)"); - } - this.modificationTime = modificationTime; + public boolean isKeepDeflateHint() { + return KEEP.equals(deflateHint); + } + + public boolean isKeepFileOrder() { + return keepFileOrder; } public boolean isPassFile(final String passFileName) { @@ -157,149 +212,94 @@ public class PackingOptions { return false; } - /** - * Tell the compressor to pass the file with the given name, or if the name is a directory name all files under that - * directory will be passed. - * - * @param passFileName the file name - */ - public void addPassFile(String passFileName) { - String fileSeparator = System.getProperty("file.separator"); - if (fileSeparator.equals("\\")) { - // Need to escape backslashes for replaceAll(), which uses regex - fileSeparator += "\\"; - } - passFileName = passFileName.replaceAll(fileSeparator, "/"); - passFiles.add(passFileName); + public boolean isStripDebug() { + return stripDebug; + } + + public boolean isVerbose() { + return verbose; } public void removePassFile(final String passFileName) { passFiles.remove(passFileName); } - public String getUnknownAttributeAction() { - return unknownAttributeAction; + public void setDeflateHint(final String deflateHint) { + if (!KEEP.equals(deflateHint) && !"true".equals(deflateHint) && !"false".equals(deflateHint)) { + throw new IllegalArgumentException( + "Bad argument: -H " + deflateHint + " ? deflate hint should be either true, false or keep (default)"); + } + this.deflateHint = deflateHint; } /** - * Tell the compressor what to do if an unknown attribute is encountered + * Sets the compression effort level (0-9, equivalent to -E command line option) * - * @param unknownAttributeAction - the action to perform + * @param effort the compression effort level, 0-9. */ - public void setUnknownAttributeAction(final String unknownAttributeAction) { - this.unknownAttributeAction = unknownAttributeAction; - if (!PASS.equals(unknownAttributeAction) && !ERROR.equals(unknownAttributeAction) - && !STRIP.equals(unknownAttributeAction)) { - throw new RuntimeException("Incorrect option for -U, " + unknownAttributeAction); - } - } - - public void addClassAttributeAction(final String attributeName, final String action) { - classAttributeActions.put(attributeName, action); - } - - public void addFieldAttributeAction(final String attributeName, final String action) { - fieldAttributeActions.put(attributeName, action); - } - - public void addMethodAttributeAction(final String attributeName, final String action) { - methodAttributeActions.put(attributeName, action); - } - - public void addCodeAttributeAction(final String attributeName, final String action) { - codeAttributeActions.put(attributeName, action); - } - - public boolean isVerbose() { - return verbose; - } - - public void setVerbose(final boolean verbose) { - this.verbose = verbose; + public void setEffort(final int effort) { + this.effort = effort; } - public void setQuiet(final boolean quiet) { - this.verbose = !quiet; + public void setGzip(final boolean gzip) { + this.gzip = gzip; } - public String getLogFile() { - return logFile; + public void setKeepFileOrder(final boolean keepFileOrder) { + this.keepFileOrder = keepFileOrder; } public void setLogFile(final String logFile) { this.logFile = logFile; } - private void addOrUpdateAttributeActions(final List<Attribute> prototypes, final Map<String, String> attributeActions, final int tag) { - if ((attributeActions != null) && (attributeActions.size() > 0)) { - NewAttribute newAttribute; - for (String name : attributeActions.keySet()) { - String action = attributeActions.get(name); - boolean prototypeExists = false; - for (Object prototype : prototypes) { - newAttribute = (NewAttribute) prototype; - if (newAttribute.type.equals(name)) { - // if the attribute exists, update its context - newAttribute.addContext(tag); - prototypeExists = true; - break; - } - } - // if no attribute is found, add a new attribute - if (!prototypeExists) { - if (ERROR.equals(action)) { - newAttribute = new NewAttribute.ErrorAttribute(name, tag); - } else if (STRIP.equals(action)) { - newAttribute = new NewAttribute.StripAttribute(name, tag); - } else if (PASS.equals(action)) { - newAttribute = new NewAttribute.PassAttribute(name, tag); - } else { - newAttribute = new NewAttribute(name, action, tag); - } - prototypes.add(newAttribute); - } - } + public void setModificationTime(final String modificationTime) { + if (!KEEP.equals(modificationTime) && !"latest".equals(modificationTime)) { + throw new IllegalArgumentException("Bad argument: -m " + modificationTime + + " ? transmit modtimes should be either latest or keep (default)"); } + this.modificationTime = modificationTime; } - public Attribute[] getUnknownAttributePrototypes() { - if (unknownAttributeTypes == null) { - final List<Attribute> prototypes = new ArrayList<>(); - addOrUpdateAttributeActions(prototypes, classAttributeActions, AttributeDefinitionBands.CONTEXT_CLASS); - addOrUpdateAttributeActions(prototypes, methodAttributeActions, AttributeDefinitionBands.CONTEXT_METHOD); - addOrUpdateAttributeActions(prototypes, fieldAttributeActions, AttributeDefinitionBands.CONTEXT_FIELD); - addOrUpdateAttributeActions(prototypes, codeAttributeActions, AttributeDefinitionBands.CONTEXT_CODE); - unknownAttributeTypes = prototypes.toArray(new Attribute[0]); - } - return unknownAttributeTypes; + public void setQuiet(final boolean quiet) { + this.verbose = !quiet; } - public String getUnknownClassAttributeAction(final String type) { - if (classAttributeActions == null) { - return unknownAttributeAction; - } - return classAttributeActions.getOrDefault(type, unknownAttributeAction); + /** + * Set the segment limit (equivalent to -S command line option) + * + * @param segmentLimit - the limit in bytes + */ + public void setSegmentLimit(final long segmentLimit) { + this.segmentLimit = segmentLimit; } - public String getUnknownMethodAttributeAction(final String type) { - if (methodAttributeActions == null) { - return unknownAttributeAction; - } - return methodAttributeActions.getOrDefault(type, unknownAttributeAction); + /** + * Set strip debug attributes. If true, all debug attributes (i.e. LineNumberTable, SourceFile, LocalVariableTable + * and LocalVariableTypeTable attributes) are stripped when reading the input class files and not included in the + * output archive. + * + * @param stripDebug If true, all debug attributes. + */ + public void setStripDebug(final boolean stripDebug) { + this.stripDebug = stripDebug; } - public String getUnknownFieldAttributeAction(final String type) { - if (fieldAttributeActions == null) { - return unknownAttributeAction; + /** + * Tell the compressor what to do if an unknown attribute is encountered + * + * @param unknownAttributeAction - the action to perform + */ + public void setUnknownAttributeAction(final String unknownAttributeAction) { + this.unknownAttributeAction = unknownAttributeAction; + if (!PASS.equals(unknownAttributeAction) && !ERROR.equals(unknownAttributeAction) + && !STRIP.equals(unknownAttributeAction)) { + throw new RuntimeException("Incorrect option for -U, " + unknownAttributeAction); } - return fieldAttributeActions.getOrDefault(type, unknownAttributeAction); } - public String getUnknownCodeAttributeAction(final String type) { - if (codeAttributeActions == null) { - return unknownAttributeAction; - } - return codeAttributeActions.getOrDefault(type, unknownAttributeAction); + public void setVerbose(final boolean verbose) { + this.verbose = verbose; } }
