import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
import org.opendaylight.yangtools.yang.parser.util.YangParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class GroupingUtils {
+ private static final Logger LOG = LoggerFactory.getLogger(GroupingUtils.class);
+
+ private static final Splitter COLON_SPLITTER = Splitter.on(':');
private static final Splitter SLASH_SPLITTER = Splitter.on('/');
private GroupingUtils() {
DataSchemaNodeBuilder nodeToRefine = (DataSchemaNodeBuilder) currentNode;
if (nodeToRefine == null) {
- throw new YangParseException(refine.getModuleName(), refine.getLine(), "Refine target node '"
- + refine.getTargetPathString() + "' not found");
+ // FIXME: exception replaced with log to avoid breakage when
+ // user tries to refine instance of extension (unknown node)
+
+ // throw new YangParseException(refine.getModuleName(),
+ // refine.getLine(), "Refine target node '" +
+ // refine.getTargetPathString() + "' not found");
+ LOG.warn("Error in module {} at line {}: Refine target node {} not found.", refine.getModuleName(),
+ refine.getLine(), refine.getTargetPathString());
+ continue;
}
RefineUtils.performRefine(nodeToRefine, refine);
usesNode.addRefineNode(nodeToRefine);
package org.opendaylight.yangtools.yang.parser.builder.impl;
import java.util.List;
-
import org.opendaylight.yangtools.yang.model.api.MustDefinition;
import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
} else if (node instanceof ContainerSchemaNodeBuilder) {
checkRefineDefault(node, defaultStr, moduleName, line);
checkRefineMandatory(node, mandatory, moduleName, line);
- checkRefineMust(node, must, moduleName, line);
checkRefineMinMax(name, min, max, moduleName, line);
} else if (node instanceof LeafSchemaNodeBuilder) {
checkRefinePresence(node, presence, moduleName, line);