BUG-865: remove pre-Beryllium parser
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / GroupingUtils.java
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/GroupingUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/GroupingUtils.java
deleted file mode 100644 (file)
index 63058a6..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.yangtools.yang.parser.builder.impl;
-
-import com.google.common.base.Splitter;
-import java.net.URI;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.Set;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
-import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
-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;
-
-/**
- * @deprecated Pre-Beryllium implementation, scheduled for removal.
- */
-@Deprecated
-public final class GroupingUtils {
-    private static final Logger LOG = LoggerFactory.getLogger(GroupingUtils.class);
-
-    private static final Splitter SLASH_SPLITTER = Splitter.on('/');
-
-    private GroupingUtils() {
-    }
-
-    /**
-     * Search given modules for grouping by name defined in uses node.
-     *
-     * @param usesBuilder
-     *            builder of uses statement
-     * @param modules
-     *            all loaded modules
-     * @param module
-     *            current module
-     * @return grouping with given name, never null
-     * @throws YangParseException
-     *             if no grouping found
-     */
-    public static GroupingBuilder getTargetGroupingFromModules(final UsesNodeBuilder usesBuilder,
-            final Map<URI, NavigableMap<Date, ModuleBuilder>> modules, final ModuleBuilder module) {
-        final int line = usesBuilder.getLine();
-
-        SchemaPath groupingPath = usesBuilder.getTargetGroupingPath();
-        QName groupingName = groupingPath.getPathFromRoot().iterator().next();
-        ModuleBuilder dependentModule = BuilderUtils.findModule(groupingName, modules);
-
-        Set<GroupingBuilder> groupings = dependentModule.getGroupingBuilders();
-        GroupingBuilder result = findGroupingBuilder(groupings, groupingName.getLocalName());
-        if (result != null) {
-            return result;
-        }
-
-        Builder parent = usesBuilder.getParent();
-        while (parent != null) {
-            if (parent instanceof DataNodeContainerBuilder) {
-                groupings = ((DataNodeContainerBuilder) parent).getGroupingBuilders();
-            } else if (parent instanceof RpcDefinitionBuilder) {
-                groupings = ((RpcDefinitionBuilder) parent).getGroupings();
-            }
-            result = findGroupingBuilder(groupings, groupingName.getLocalName());
-            if (result == null) {
-                parent = parent.getParent();
-            } else {
-                break;
-            }
-        }
-
-        if (result == null) {
-            throw new YangParseException(module.getName(), line, "Grouping '" + groupingName + "' not found.");
-        }
-        return result;
-    }
-
-    /**
-     * Find grouping by name.
-     *
-     * @param groupings
-     *            collection of grouping builders to search
-     * @param name
-     *            name of grouping
-     * @return grouping with given name if present in collection, null otherwise
-     */
-    private static GroupingBuilder findGroupingBuilder(final Set<GroupingBuilder> groupings, final String name) {
-        for (GroupingBuilder grouping : groupings) {
-            if (grouping.getQName().getLocalName().equals(name)) {
-                return grouping;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Perform refinement of uses target grouping nodes. Uses process has to be
-     * already performed.
-     *
-     * @param usesNode
-     *            uses node containing refine statements
-     */
-    public static void performRefine(final UsesNodeBuilder usesNode) {
-        for (RefineBuilder refine : usesNode.getRefines()) {
-            String refineTargetPath = refine.getTargetPathString();
-
-            Builder currentNode = usesNode.getParent();
-            for (String pathElement : SLASH_SPLITTER.split(refineTargetPath)) {
-                if (currentNode instanceof DataNodeContainerBuilder) {
-                    currentNode = ((DataNodeContainerBuilder) currentNode).getDataChildByName(pathElement);
-                } else if (currentNode instanceof ChoiceBuilder) {
-                    currentNode = ((ChoiceBuilder) currentNode).getCaseNodeByName(pathElement);
-                }
-            }
-
-            DataSchemaNodeBuilder nodeToRefine = (DataSchemaNodeBuilder) currentNode;
-            if (nodeToRefine == null) {
-                // 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);
-        }
-    }
-
-    public static class UsesComparator implements Comparator<UsesNodeBuilder> {
-        @Override
-        public int compare(final UsesNodeBuilder o1, final UsesNodeBuilder o2) {
-            return getElementPosition(o2) - getElementPosition(o1);
-        }
-    }
-
-    private static int getElementPosition(final UsesNodeBuilder usesNode) {
-        int i = 0;
-        Builder parent = usesNode.getParent();
-        while (!(parent instanceof ModuleBuilder)) {
-            parent = parent.getParent();
-            i++;
-        }
-        return i;
-    }
-
-}