package org.onap.policy.components;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.file.Path;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.controller.PolicyController;
import org.onap.policy.rest.jpa.FunctionDefinition;
-import org.onap.policy.utils.XACMLPolicyWriterWithPapNotify;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.policy.xacml.util.XACMLPolicyScanner;
return null;
}
- private static String processPolicy() throws IllegalArgumentException {
- if (LOGGER.isTraceEnabled())
+ private static String processPolicy() {
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("ENTER");
-
- FileInputStream pIS = null;
- try {
- pIS = new FileInputStream(policyFile);
+ }
+ try (FileInputStream pIS = new FileInputStream(policyFile)){
Object policy = XACMLPolicyScanner.readPolicy(pIS);
if (policy == null)
throw new IllegalArgumentException("Policy File " + policyFile.getName() +
": " + e.getMessage();
LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + msg, e);
throw new IllegalArgumentException(msg);
- } finally {
- if (pIS != null) {
- try {
- pIS.close();
- } catch (IOException e) {
- LOGGER.warn(e.getMessage(), e);
- }
- }
}
}
private final String policyName;
private final Object rootPolicyObject;
- public HtmlProcessor(File policyFile, Object policyObject)
- throws IllegalArgumentException {
+ public HtmlProcessor(File policyFile, Object policyObject) {
if (LOGGER.isTraceEnabled())
LOGGER.trace("ENTER");
super.onFinishScan(root);
}
- @SuppressWarnings("unused")
- private void writeRawXACML() {
- if (LOGGER.isTraceEnabled())
- LOGGER.trace("ENTER");
-
- htmlOut.println("<hr>");
- htmlOut.println("<h3>Raw XACML:</h3>");
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- if (rootPolicyObject instanceof PolicySetType) {
- XACMLPolicyWriterWithPapNotify.writePolicyFile(bos, (PolicySetType) rootPolicyObject);
- } else if (rootPolicyObject instanceof PolicyType) {
- XACMLPolicyWriterWithPapNotify.writePolicyFile(bos, (PolicyType) rootPolicyObject);
- }
-
- String xacml = bos.toString();
- xacml = xacml.replaceAll("<", "<");
- xacml = xacml.replaceAll(">", ">");
- htmlOut.println("<pre>");
- htmlOut.println(xacml);
- htmlOut.println("</pre>");
- }
-
@Override
public CallbackResult onPreVisitPolicySet(PolicySetType parent, PolicySetType policySet) {
if (LOGGER.isTraceEnabled())
if (policySet.getTarget() == null ||
policySet.getTarget().getAnyOf() == null ||
- policySet.getTarget().getAnyOf().size() <= 0) {
+ policySet.getTarget().getAnyOf().isEmpty()) {
htmlOut.println("<p>This policy set applies to all requests.</p>");
} else {
htmlOut.print("<p>");
if (policy.getTarget() == null ||
policy.getTarget().getAnyOf() == null ||
- policy.getTarget().getAnyOf().size() <= 0) {
+ policy.getTarget().getAnyOf().isEmpty()) {
htmlOut.println("<p>This policy applies to all requests.</p>");
} else {
htmlOut.print("<p>");
if (rule.getTarget() == null ||
rule.getTarget().getAnyOf() == null ||
- rule.getTarget().getAnyOf().size() <= 0) {
+ rule.getTarget().getAnyOf().isEmpty()) {
htmlOut.print(" for all requests");
} else {
List<AnyOfType> anyOf_s = rule.getTarget().getAnyOf();
if (anyOfList != null) {
Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- String targetInHuman = "";
+ StringBuilder targetInHuman = new StringBuilder();
while (iterAnyOf.hasNext()) {
AnyOfType anyOf = iterAnyOf.next();
List<AllOfType> allOfList = anyOf.getAllOf();
if (matchList != null) {
Iterator<MatchType> iterMatch = matchList.iterator();
if (matchList.size() > 1)
- targetInHuman += "(";
+ targetInHuman.append("(");
while (iterMatch.hasNext()) {
MatchType match = iterMatch.next();
//
attribute.getAttributeId().stringValue());
this.attributeIdentifiersMap.put(succintIdentifier,ai);
- targetInHuman += "<i><a href=\"#" + succintIdentifier + "\">" + succintIdentifier + "</a></i> " + functionName + " ";
+ targetInHuman.append("<i><a href=\"#" + succintIdentifier + "\">" + succintIdentifier + "</a></i> " + functionName + " ");
int numAttributes = attribute.getValues().size();
int count = 0;
int countValues = 0;
for (Object o : value_s) {
countValues++;
- targetInHuman += " <I>" + o + "</I>";
+ targetInHuman.append(" <I>" + o + "</I>");
if (countValues < numValues) {
- targetInHuman += ", or";
+ targetInHuman.append(", or");
}
}
} else {
- targetInHuman += " <I>" + v.getValue() + "</I>";
+ targetInHuman.append(" <I>" + v.getValue() + "</I>");
if (count < numAttributes) {
- targetInHuman += ", or ";
+ targetInHuman.append(", or ");
}
}
}
}
if (iterMatch.hasNext()) {
- targetInHuman += " and ";
+ targetInHuman.append(" and ");
}
} // end iterMatch
if (matchList.size() > 1) {
- targetInHuman += ")";
+ targetInHuman.append(")");
}
}
if (iterAllOf.hasNext()) {
- targetInHuman += " or ";
+ targetInHuman.append(" or ");
}
} // end iterAllOf
}
if (iterAnyOf.hasNext()) {
- targetInHuman = "(" + targetInHuman + ")" + " or ";
+ targetInHuman = new StringBuilder();
+ targetInHuman.append("(" + targetInHuman + ")" + " or ");
} else {
if (anyOfList.size() > 1) {
- targetInHuman += ")";
+ targetInHuman.append(")");
}
}
} // end iterAnyOf
}
List<JAXBElement<?>> exps = apply.getExpression();
- if (exps == null || exps.size() == 0)
+ if (exps == null || exps.isEmpty())
return "";
else {
- String forResult = "";
+ StringBuilder forResult = new StringBuilder();
for (JAXBElement<?> e : exps) {
Object v = e.getValue();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("one-and-only children: " + v);
}
if (v != null) {
- // C: return stringifyExpression(v, result);
- forResult += stringifyExpression(v);
+ forResult.append(stringifyExpression(v));
}
}
- return forResult;
+ return forResult.toString();
}
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(functionName + " 1 expression: " + numExpr);
}
- String applySubresult = "";
+ StringBuilder applySubresult = new StringBuilder();
for (JAXBElement<?> e : apply.getExpression()) {
Object v = e.getValue();
if (v != null) {
- applySubresult += this.stringifyExpression(e.getValue());
+ applySubresult.append(this.stringifyExpression(e.getValue()));
}
}
- return " " + removePrimitives(functionName) + " (" + applySubresult + ")";
+ return " " + removePrimitives(functionName) + " (" + applySubresult.toString() + ")";
} else {
// > 1 arguments
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(functionName + " > 1 expressions: " + numExpr);
}
- String applySubresult = "";
+ StringBuilder applySubresult = new StringBuilder();
int exprCount = 0;
for (JAXBElement<?> e : apply.getExpression()) {
exprCount++;
if (ev != null) {
if (ev instanceof ApplyType) {
if (((ApplyType) ev).getFunctionId().contains("one-and-only")) {
- applySubresult += this.stringifyExpression(e.getValue());
+ applySubresult.append(this.stringifyExpression(e.getValue()));
} else {
- applySubresult += "(" + this.stringifyExpression(e.getValue()) + ")";
+ applySubresult.append("(" + this.stringifyExpression(e.getValue()) + ")");
}
} else {
- applySubresult += this.stringifyExpression(e.getValue());
+ applySubresult.append(this.stringifyExpression(e.getValue()));
}
if (exprCount < numExpr) {
- applySubresult += " " + removePrimitives(functionName) + " ";
+ applySubresult.append(" " + removePrimitives(functionName) + " ");
}
}
}
- return applySubresult;
+ return applySubresult.toString();
}
}
if (expression instanceof AttributeDesignatorType) {
if (expression instanceof AttributeValueType) {
AttributeValueType avt = (AttributeValueType) expression;
List<Object> content = avt.getContent();
- String value_s = "";
+ StringBuilder value_s = new StringBuilder();
for (Object o: content) {
- value_s += " " + o.toString();
+ value_s.append(" " + o.toString());
}
- return " " + value_s;
+ return " " + value_s.toString();
}
if (expression instanceof VariableReferenceType) {
//