View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.artifact.resolver.filter;
20  
21  import java.util.Collection;
22  import java.util.LinkedHashSet;
23  import java.util.Set;
24  
25  import org.apache.maven.artifact.Artifact;
26  
27  /**
28   * Apply multiple filters, accepting an artifact if at least one of the filters accepts it.
29   *
30   */
31  @Deprecated
32  public class OrArtifactFilter implements ArtifactFilter {
33  
34      private Set<ArtifactFilter> filters;
35  
36      public OrArtifactFilter() {
37          this.filters = new LinkedHashSet<>();
38      }
39  
40      public OrArtifactFilter(Collection<ArtifactFilter> filters) {
41          this.filters = new LinkedHashSet<>(filters);
42      }
43  
44      public boolean include(Artifact artifact) {
45          for (ArtifactFilter filter : filters) {
46              if (filter.include(artifact)) {
47                  return true;
48              }
49          }
50  
51          return false;
52      }
53  
54      public void add(ArtifactFilter artifactFilter) {
55          filters.add(artifactFilter);
56      }
57  
58      @Override
59      public int hashCode() {
60          int hash = 17;
61          hash = hash * 31 + filters.hashCode();
62          return hash;
63      }
64  
65      @Override
66      public boolean equals(Object obj) {
67          if (this == obj) {
68              return true;
69          }
70  
71          if (!(obj instanceof OrArtifactFilter)) {
72              return false;
73          }
74  
75          OrArtifactFilter other = (OrArtifactFilter) obj;
76  
77          return filters.equals(other.filters);
78      }
79  }