001    /*
002     *  Licensed under the Apache License, Version 2.0 (the "License");
003     *  you may not use this file except in compliance with the License.
004     *  You may obtain a copy of the License at
005     *
006     *      http://www.apache.org/licenses/LICENSE-2.0
007     *
008     *  Unless required by applicable law or agreed to in writing, software
009     *  distributed under the License is distributed on an "AS IS" BASIS,
010     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011     *  See the License for the specific language governing permissions and
012     *  limitations under the License.
013     */
014    /*
015     * This file has been modified by Chris Pheby in accordance with Section 4.2
016     * of the Apache Software License
017     */
018    package org.jadira.dependencynavigator.model;
019    
020    import java.util.ArrayList;
021    import java.util.List;
022    
023    public class ExclusionList {
024        private List<String> exclusions;
025    
026        public void addExclusion(String groupId, String artifactId) {
027            if (exclusions == null) {
028                // lazy load the list as most artifacts will have no exclusions
029                exclusions = new ArrayList<String>();
030            }
031            String exclusion = groupId + ":" + artifactId;
032            if (!exclusions.contains(exclusion)) {
033                exclusions.add(exclusion);
034            }
035        }
036    
037        public boolean isExcluded(String groupId, String artifactId) {
038            String identifier = groupId + ":" + artifactId;
039            if (exclusions != null) {
040                for (String exclusion : exclusions) {
041                    if (exclusion.equalsIgnoreCase(identifier)) {
042                        return true;
043                    }
044                }
045            }
046            return false;
047        }
048    }