CompositeNode<R> root = new CompositeNode<>("ROOT", Constants.DEFAULT_MATCH, null,
new HashMap<Object, Node<R>>());
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Building decision tree for ranked attributes: %s", config.getRankedAttributeNames()));
- }
+ logDebugWhenEnabled(String.format("Building decision tree for ranked attributes: %s", config.getRankedAttributeNames()));
for (ConfigurationEntry<R> entry : config.getEntries()) {
process(entry, names, root);
}
private static <R> void process(ConfigurationEntry<R> entry, Object[] names, CompositeNode<R> root) {
- CompositeNode<R> parentNode = null;
+ CompositeNode<R> parentNode = root;
for (int i = 0; i < names.length; i++) {
- if (i == 0) {
- parentNode = root;
- }
-
final String name = (String) names[i];
final Object value = value(entry, name);
} else {
LeafNode<R> currentNode = (LeafNode<R>) parentNode.children().get(value);
if (currentNode == null) {
- currentNode = new LeafNode<R>(name, value, parentNode, entry.getResult());
+ currentNode = new LeafNode<>(name, value, parentNode, entry.getResult());
parentNode.children().put(value, currentNode);
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Branch has been created: %s", currentNode));
- }
+ logDebugWhenEnabled(String.format("Branch has been created: %s", currentNode));
} else {
logger.error(
String.format("Duplicated configuration entry has been detected for attribute '%s' with value '%s' - the node '%s'exists already",
}
}
+ private static void logDebugWhenEnabled(String message) {
+ if(logger.isDebugEnabled()) {
+ logger.debug(message);
+ }
+ }
+
private static <R> Object value(ConfigurationEntry<R> entry, String name) {
Object value = entry.getAttributeValue(name);
return Utils.value(value);