View Javadoc
1   /*
2    * (C) Copyright 2006-2014 Nuxeo SA (http://nuxeo.com/) and contributors.
3    *
4    * All rights reserved. This program and the accompanying materials
5    * are made available under the terms of the GNU Lesser General Public License
6    * (LGPL) version 2.1 which accompanies this distribution, and is available at
7    * http://www.gnu.org/licenses/lgpl-2.1.html
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   * Lesser General Public License for more details.
13   *
14   * Contributors:
15   *     bstefanescu, slacoin, jcarsique
16   */
17  package org.nuxeo.build.maven.filter;
18  
19  import java.util.List;
20  
21  import org.apache.maven.artifact.Artifact;
22  import org.eclipse.aether.graph.DependencyNode;
23  
24  /**
25   * TODO NXBT-258
26   */
27  public class ArtifactIdFilter extends AbstractFilter {
28  
29      protected SegmentMatch matcher;
30  
31      public ArtifactIdFilter(String pattern) {
32          this(SegmentMatch.parse(pattern));
33      }
34  
35      public ArtifactIdFilter(SegmentMatch matcher) {
36          this.matcher = matcher;
37      }
38  
39      @Override
40      public boolean accept(Artifact artifact) {
41          return result(matcher.match(artifact.getArtifactId()),
42                  artifact.toString());
43      }
44  
45      @Override
46      public String toString() {
47          return super.toString() + " [" + matcher + "]";
48      }
49  
50      @Override
51      public boolean accept(DependencyNode node, List<DependencyNode> parents) {
52          org.eclipse.aether.artifact.Artifact artifact = node.getArtifact();
53          if (artifact == null) {
54              return result(matcher == SegmentMatch.ANY, node.toString());
55          }
56          return result(matcher.match(artifact.getArtifactId()), node.toString());
57      }
58  
59  }