summaryrefslogtreecommitdiffstats
path: root/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src
diff options
context:
space:
mode:
Diffstat (limited to 'appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src')
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/AbstractRankedAttributesResolverFactory.java8
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/BacktraceStrategy.java81
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Constants.java3
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/DefaultRankedAttributesTreeFactory.java6
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/LeafNode.java2
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/NodeBase.java4
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Strategy.java1
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Utils.java4
-rw-r--r--appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/test/java/org/onap/appc/rankingframework/TestRankingFramework.java6
9 files changed, 62 insertions, 53 deletions
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/AbstractRankedAttributesResolverFactory.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/AbstractRankedAttributesResolverFactory.java
index 99ac8a74e..2b296e204 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/AbstractRankedAttributesResolverFactory.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/AbstractRankedAttributesResolverFactory.java
@@ -26,13 +26,15 @@ package org.onap.appc.rankingframework;
import org.onap.appc.rankingframework.impl.DefaultRankedAttributesTreeFactory;
-public abstract class AbstractRankedAttributesResolverFactory implements RankedAttributesResolverFactory {
+public interface AbstractRankedAttributesResolverFactory {
- private static class ReferenceHolder {
+ class ReferenceHolder {
private static final RankedAttributesResolverFactory INSTANCE = new DefaultRankedAttributesTreeFactory();
+
+ private ReferenceHolder() {}
}
- public static RankedAttributesResolverFactory getInstance() {
+ static RankedAttributesResolverFactory getInstance() {
return ReferenceHolder.INSTANCE;
}
}
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/BacktraceStrategy.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/BacktraceStrategy.java
index 5da4a8e2b..ca62020d5 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/BacktraceStrategy.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/BacktraceStrategy.java
@@ -9,15 +9,15 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
+ *
* ECOMP is a trademark and service mark of AT&T Intellectual Property.
* ============LICENSE_END=========================================================
*/
@@ -39,13 +39,7 @@ class BacktraceStrategy implements Strategy {
@Override
public <R> R resolve(CompositeNode<R> rootNode, List<String> rankedNames, RankedAttributesContext context) {
- if (logger.isDebugEnabled()) {
- StringBuilder buff = new StringBuilder(128);
- for (String name : rankedNames) {
- buff.append("/{").append(name).append(" = ").append(Utils.value(context.getAttributeValue(name))).append('}');
- }
- logger.debug(String.format("Trying to resolve path: %s", buff));
- }
+ logEntryPath(rankedNames, context);
Set<String> visited = new HashSet<>();
@@ -63,24 +57,7 @@ class BacktraceStrategy implements Strategy {
value = Utils.value(context.getAttributeValue(attribute));
}
- Node<R> childNode = parentNode.children().get(value);
-
- if (childNode != null) {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Found matching node '%s' - checking it out", childNode));
- }
-
- if (!visited.add(childNode.id())) {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("The matching node '%s' was checked before - ignoring it", childNode));
- }
- childNode = null;
- }
- } else {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Node '%s/{%s = %s}' not found - falling back", parentNode, attribute, value != null ? value : "NULL"));
- }
- }
+ Node<R> childNode = getChildNode(parentNode, visited, attribute, value);
if (childNode != null) {
switch (childNode.type()) {
@@ -90,9 +67,7 @@ class BacktraceStrategy implements Strategy {
parentNode = (CompositeNode<R>) childNode;
break;
case LEAF:
- if (logger.isDebugEnabled()) {
- logger.debug( String.format("Result node has been resolved succesfully - '%s'", childNode));
- }
+ log("Result node has been resolved succesfully - '%s'", childNode);
result = ((LeafNode<R>) childNode).result();
stop = true;
break;
@@ -100,13 +75,12 @@ class BacktraceStrategy implements Strategy {
throw new IllegalStateException(childNode.type().name());
}
} else {
- if (!value.equals(Constants.DEFAULT_MATCH)) {
+ if (!(Constants.DEFAULT_MATCH).equals(value)) {
logger.debug("Exact match didn't work, trying the default option, if any");
value = Constants.DEFAULT_MATCH;
} else if (depth > 0) {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Exact match didn't work and no default option available beneath '%s' - moving out", parentNode));
- }
+ log("Exact match didn't work and no default option available beneath '%s' - moving out",
+ parentNode);
depth--;
value = null;
parentNode = parentNode.parent();
@@ -119,4 +93,41 @@ class BacktraceStrategy implements Strategy {
return result;
}
+
+ private <R> Node<R> getChildNode(CompositeNode<R> parentNode, Set<String> visited, String attribute, Object value) {
+
+ Node<R> childNode = parentNode.children().get(value);
+ if (childNode != null) {
+ log("Found matching node '%s' - checking it out", childNode);
+
+ if (!visited.add(childNode.id())) {
+ log("The matching node '%s' was checked before - ignoring it", childNode);
+ childNode = null;
+ }
+ } else {
+ log("Node '%s/{%s = %s}' not found - falling back",
+ parentNode, attribute, value != null ? value : "NULL");
+ }
+ return childNode;
+ }
+
+ private void logEntryPath(List<String> rankedNames, RankedAttributesContext context){
+ if (logger.isDebugEnabled()) {
+ StringBuilder buff = new StringBuilder(128);
+ for (String name : rankedNames) {
+ buff.append("/{")
+ .append(name)
+ .append(" = ")
+ .append(Utils.value(context.getAttributeValue(name)))
+ .append('}');
+ }
+ logger.debug(String.format("Trying to resolve path: %s", buff));
+ }
+ }
+
+ private void log(String log, Object... args) {
+ if (logger.isDebugEnabled()) {
+ logger.debug(String.format(log, args));
+ }
+ }
}
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Constants.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Constants.java
index 2e4ffd8e1..177ae65f5 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Constants.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Constants.java
@@ -26,8 +26,9 @@ package org.onap.appc.rankingframework.impl;
class Constants {
+ static final String DEFAULT_MATCH = "*";
+
private Constants() {
}
- static final String DEFAULT_MATCH = "*";
}
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/DefaultRankedAttributesTreeFactory.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/DefaultRankedAttributesTreeFactory.java
index 4d59735b5..cf3353334 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/DefaultRankedAttributesTreeFactory.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/DefaultRankedAttributesTreeFactory.java
@@ -35,15 +35,13 @@ import org.onap.appc.rankingframework.RankedAttributesResolverFactory;
public final class DefaultRankedAttributesTreeFactory implements RankedAttributesResolverFactory {
- private final Strategy DEFAULT_STRATEGY = new BacktraceStrategy();
+ private final Strategy defaultStrategy = new BacktraceStrategy();
@Override
public <R> RankedAttributesResolver<R> create(ConfigurationSet<R> config) {
CompositeNode<R> root = RankedAttributesTreeBuilder.build(config);
- RankedAttributesResolver<R> tree = new RankedAttributesTree<R>(root, toList(config.getRankedAttributeNames()),
- DEFAULT_STRATEGY);
- return tree;
+ return new RankedAttributesTree<>(root, toList(config.getRankedAttributeNames()), defaultStrategy);
}
private static List<String> toList(Collection<String> col) {
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/LeafNode.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/LeafNode.java
index c6bb97378..4e20e48c7 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/LeafNode.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/LeafNode.java
@@ -39,7 +39,7 @@ class LeafNode<R> extends NodeBase<R> {
@Override
public String toString() {
- StringBuffer buff = new StringBuffer(128);
+ StringBuilder buff = new StringBuilder(128);
buff.append(super.toString());
buff.append(" --> ");
buff.append(result.toString());
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/NodeBase.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/NodeBase.java
index 1075cca50..59d5e7a93 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/NodeBase.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/NodeBase.java
@@ -73,8 +73,8 @@ abstract class NodeBase<R> implements Node<R> {
@Override
public String toString() {
- if (!name.equals("ROOT")) {
- StringBuffer buff = new StringBuffer(128);
+ if (!("ROOT").equals(name)) {
+ StringBuilder buff = new StringBuilder(128);
if (parent != null) {
buff.append(parent.toString());
}
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Strategy.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Strategy.java
index 36f898163..64765b588 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Strategy.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Strategy.java
@@ -28,6 +28,7 @@ import java.util.List;
import org.onap.appc.rankingframework.RankedAttributesContext;
+@FunctionalInterface
interface Strategy {
<R> R resolve(CompositeNode<R> root, List<String> rankedNames, RankedAttributesContext context);
}
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Utils.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Utils.java
index fb18377f9..63fe2db62 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Utils.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/main/java/org/onap/appc/rankingframework/impl/Utils.java
@@ -29,9 +29,9 @@ class Utils {
private Utils() {
}
- static <R> Object value(Object value) {
+ static Object value(Object value) {
if (value == null || (value instanceof String && isEmpty((String) value))) {
- value = Constants.DEFAULT_MATCH;
+ return Constants.DEFAULT_MATCH;
}
return value;
diff --git a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/test/java/org/onap/appc/rankingframework/TestRankingFramework.java b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/test/java/org/onap/appc/rankingframework/TestRankingFramework.java
index 99376923f..beba506da 100644
--- a/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/test/java/org/onap/appc/rankingframework/TestRankingFramework.java
+++ b/appc-dispatcher/appc-dispatcher-common/ranking-framework-lib/src/test/java/org/onap/appc/rankingframework/TestRankingFramework.java
@@ -32,11 +32,6 @@ import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
-import org.onap.appc.rankingframework.AbstractRankedAttributesResolverFactory;
-import org.onap.appc.rankingframework.ConfigurationEntry;
-import org.onap.appc.rankingframework.ConfigurationSet;
-import org.onap.appc.rankingframework.RankedAttributesContext;
-import org.onap.appc.rankingframework.RankedAttributesResolver;
public class TestRankingFramework {
@@ -64,6 +59,7 @@ public class TestRankingFramework {
return new ConfigurationEntryImpl(map, result);
}
+ @SafeVarargs
private static ConfigurationSet<String> config(ConfigurationEntry<String> ... entries) {
return new ConfigurationSetImpl(Arrays.asList(entries), NAMES);
}