X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fmodel-loader.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fmodel%2FModelSorter.java;h=4c39975dd4edbb8d1035690512355cb2b0be9ae4;hp=e8fcf3f0bff8928b15e3ba9080ee2bcba015d82e;hb=6e4f04afea4c2d07fdd9c15eda38438c7baeb308;hpb=3a1f764b762a91e917e9e14a00c4a7ff3c4e0745 diff --git a/src/main/java/org/onap/aai/modelloader/entity/model/ModelSorter.java b/src/main/java/org/onap/aai/modelloader/entity/model/ModelSorter.java index e8fcf3f..4c39975 100644 --- a/src/main/java/org/onap/aai/modelloader/entity/model/ModelSorter.java +++ b/src/main/java/org/onap/aai/modelloader/entity/model/ModelSorter.java @@ -1,22 +1,22 @@ /** - * ============LICENSE_START========================================== + * ============LICENSE_START======================================================= * org.onap.aai - * =================================================================== + * ================================================================================ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * =================================================================== + * Copyright © 2017-2018 European Software Marketing Ltd. + * ================================================================================ * 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 + * 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. - * ============LICENSE_END============================================ + * ============LICENSE_END========================================================= */ package org.onap.aai.modelloader.entity.model; @@ -30,7 +30,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import jline.internal.Log; - import org.onap.aai.modelloader.entity.Artifact; /** @@ -115,15 +114,14 @@ public class ModelSorter { * * @param originalList the list that needs to be sorted * @return a list of sorted models + * @throws BabelArtifactParsingException */ - public List sort(List originalList) { - - if (originalList.size() <= 1) { + public List sort(List originalList) throws BabelArtifactParsingException { + if (originalList == null || originalList.size() <= 1) { return originalList; } - Collection nodes = createNodes(originalList); - Collection sortedNodes = sortNodes(nodes); + Collection sortedNodes = sortNodes(createNodes(originalList)); List sortedModelsList = new ArrayList<>(sortedNodes.size()); for (Node node : sortedNodes) { @@ -188,8 +186,9 @@ public class ModelSorter { * * @param unsortedNodes the collection of nodes to be sorted * @return a sorted collection of the given nodes + * @throws BabelArtifactParsingException */ - private Collection sortNodes(Collection unsortedNodes) { + private Collection sortNodes(Collection unsortedNodes) throws BabelArtifactParsingException { // L <- Empty list that will contain the sorted elements List nodeList = new ArrayList<>(); @@ -233,7 +232,8 @@ public class ModelSorter { } } if (cycle) { - throw new RuntimeException("Circular dependency present between models, topological sort not possible"); + throw new BabelArtifactParsingException( + "Circular dependency present between models, topological sort not possible"); } return nodeList;