diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java index 269d6d168..c834abf60 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintHandler.java @@ -115,7 +115,7 @@ public class HintHandler extends DefaultHandler { /** * The list of hint rules. */ - private final List hintRules = new ArrayList(); + private final List hintRules = new ArrayList<>(); /** * Returns the list of hint rules. @@ -129,7 +129,7 @@ public class HintHandler extends DefaultHandler { /** * The list of vendor duplicating hint rules. */ - private final List vendorDuplicatingHintRules = new ArrayList(); + private final List vendorDuplicatingHintRules = new ArrayList<>(); /** * Returns the list of vendor duplicating hint rules. @@ -170,102 +170,99 @@ public class HintHandler extends DefaultHandler { */ @Override public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException { - if (HINT.equals(qName)) { - rule = new HintRule(); - } else if (ADD.equals(qName)) { - nodeType = ParentType.ADD; - } else if (GIVEN.equals(qName)) { - nodeType = ParentType.GIVEN; - } else if (REMOVE.equals(qName)) { - nodeType = ParentType.REMOVE; - } else if (EVIDENCE.equals(qName)) { - final String hintType = attr.getValue(TYPE); - if (VENDOR.equals(hintType)) { - if (null != nodeType) switch (nodeType) { - case ADD: - rule.addAddVendor(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case REMOVE: - rule.addRemoveVendor(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case GIVEN: - rule.addGivenVendor(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - default: - break; - } - } else if (PRODUCT.equals(hintType)) { - if (null != nodeType) switch (nodeType) { - case ADD: - rule.addAddProduct(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case REMOVE: - rule.addRemoveProduct(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case GIVEN: - rule.addGivenProduct(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - default: - break; - } - } else if (VERSION.equals(hintType)) { - if (null != nodeType) switch (nodeType) { - case ADD: - rule.addAddVersion(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case REMOVE: - rule.addRemoveVersion(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - case GIVEN: - rule.addGivenVersion(attr.getValue(SOURCE), - attr.getValue(NAME), - attr.getValue(VALUE), - Confidence.valueOf(attr.getValue(CONFIDENCE))); - break; - default: - break; - } + if (null != qName) { + switch (qName) { + case HINT: + rule = new HintRule(); + break; + case ADD: + nodeType = ParentType.ADD; + break; + case GIVEN: + nodeType = ParentType.GIVEN; + break; + case REMOVE: + nodeType = ParentType.REMOVE; + break; + case EVIDENCE: + final String hintType = attr.getValue(TYPE); + if (null != hintType && null != nodeType) { + final String source = attr.getValue(SOURCE); + final String name = attr.getValue(NAME); + final String value = attr.getValue(VALUE); + final Confidence confidence = Confidence.valueOf(attr.getValue(CONFIDENCE)); + switch (hintType) { + case VENDOR: + switch (nodeType) { + case ADD: + rule.addAddVendor(source, name, value, confidence); + break; + case REMOVE: + rule.addRemoveVendor(source, name, value, confidence); + break; + case GIVEN: + rule.addGivenVendor(source, name, value, confidence); + break; + default: + break; + } + break; + case PRODUCT: + switch (nodeType) { + case ADD: + rule.addAddProduct(source, name, value, confidence); + break; + case REMOVE: + rule.addRemoveProduct(source, name, value, confidence); + break; + case GIVEN: + rule.addGivenProduct(source, name, value, confidence); + break; + default: + break; + } + break; + case VERSION: + switch (nodeType) { + case ADD: + rule.addAddVersion(source, name, value, confidence); + break; + case REMOVE: + rule.addRemoveVersion(source, name, value, confidence); + break; + case GIVEN: + rule.addGivenVersion(source, name, value, confidence); + break; + default: + break; + } + break; + default: + break; + } + } + break; + case FILE_NAME: + final PropertyType pt = new PropertyType(); + pt.setValue(attr.getValue(CONTAINS)); + if (attr.getLength() > 0) { + final String regex = attr.getValue(REGEX); + if (regex != null) { + pt.setRegex(Boolean.parseBoolean(regex)); + } + final String caseSensitive = attr.getValue(CASE_SENSITIVE); + if (caseSensitive != null) { + pt.setCaseSensitive(Boolean.parseBoolean(caseSensitive)); + } + } + rule.addFilename(pt); + break; + case VENDOR_DUPLICATING_RULE: + vendorDuplicatingHintRules.add(new VendorDuplicatingHintRule(attr.getValue(VALUE), attr.getValue(DUPLICATE))); + break; + default: + break; } - } else if (FILE_NAME.equals(qName)) { - final PropertyType pt = new PropertyType(); - pt.setValue(attr.getValue(CONTAINS)); - if (attr.getLength() > 0) { - final String regex = attr.getValue(REGEX); - if (regex != null) { - pt.setRegex(Boolean.parseBoolean(regex)); - } - final String caseSensitive = attr.getValue(CASE_SENSITIVE); - if (caseSensitive != null) { - pt.setCaseSensitive(Boolean.parseBoolean(caseSensitive)); - } - } - rule.addFilename(pt); - } else if (VENDOR_DUPLICATING_RULE.equals(qName)) { - vendorDuplicatingHintRules.add(new VendorDuplicatingHintRule(attr.getValue(VALUE), attr.getValue(DUPLICATE))); } } diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java index dc9d5f38e..ab59344f4 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/xml/hints/HintRule.java @@ -35,44 +35,44 @@ public class HintRule { /** * The list of file names to match. */ - private final List filenames = new ArrayList(); + private final List filenames = new ArrayList<>(); /** * The list of vendor evidence that is being matched. */ - private final List givenVendor = new ArrayList(); + private final List givenVendor = new ArrayList<>(); /** * The list of product evidence that is being matched. */ - private final List givenProduct = new ArrayList(); + private final List givenProduct = new ArrayList<>(); /** * The list of product evidence that is being matched. */ - private final List givenVersion = new ArrayList(); + private final List givenVersion = new ArrayList<>(); /** * The list of vendor hints to add. */ - private final List addVendor = new ArrayList(); + private final List addVendor = new ArrayList<>(); /** * The list of product evidence to add. */ - private final List addProduct = new ArrayList(); + private final List addProduct = new ArrayList<>(); /** * The list of version evidence to add. */ - private final List addVersion = new ArrayList(); + private final List addVersion = new ArrayList<>(); /** * The list of vendor hints to add. */ - private final List removeVendor = new ArrayList(); + private final List removeVendor = new ArrayList<>(); /** * The list of product evidence to add. */ - private final List removeProduct = new ArrayList(); + private final List removeProduct = new ArrayList<>(); /** * The list of version evidence to add. */ - private final List removeVersion = new ArrayList(); + private final List removeVersion = new ArrayList<>(); /** * Adds the filename evidence to the collection.