View Javadoc
1   package org.apache.maven.ant.tasks.support;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.maven.artifact.Artifact;
23  import org.apache.maven.artifact.DefaultArtifact;
24  import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
25  
26  /**
27   * Filter to only retain objects in the given scope(s).
28   *
29   * @author pgier
30   * @version $Id: SpecificScopesArtifactFilter.java 1645339 2014-12-13 17:56:59Z khmarbaise $
31   */
32  public class SpecificScopesArtifactFilter
33      implements ArtifactFilter
34  {
35      private boolean compileScope;
36  
37      private boolean runtimeScope;
38  
39      private boolean testScope;
40  
41      private boolean providedScope;
42  
43      private boolean systemScope;
44  
45      /**
46       * Takes a comma separated list of scopes to include.
47       *
48       * @param scopes A comma separated list of scopes
49       */
50      public SpecificScopesArtifactFilter( String scopes )
51      {
52          String[] scopeList = scopes.split( "," );
53  
54          for ( String aScopeList : scopeList )
55          {
56              if ( aScopeList.trim().equals( DefaultArtifact.SCOPE_COMPILE ) )
57              {
58                  compileScope = true;
59              }
60              else if ( aScopeList.trim().equals( DefaultArtifact.SCOPE_PROVIDED ) )
61              {
62                  providedScope = true;
63              }
64              else if ( aScopeList.trim().equals( DefaultArtifact.SCOPE_RUNTIME ) )
65              {
66                  runtimeScope = true;
67              }
68              else if ( aScopeList.trim().equals( DefaultArtifact.SCOPE_SYSTEM ) )
69              {
70                  systemScope = true;
71              }
72              else if ( aScopeList.trim().equals( DefaultArtifact.SCOPE_TEST ) )
73              {
74                  testScope = true;
75              }
76          }
77      }
78  
79      /** {@inheritDoc} */
80      public boolean include( Artifact artifact )
81      {
82          if ( Artifact.SCOPE_COMPILE.equals( artifact.getScope() ) )
83          {
84              return compileScope;
85          }
86          else if ( Artifact.SCOPE_RUNTIME.equals( artifact.getScope() ) )
87          {
88              return runtimeScope;
89          }
90          else if ( Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
91          {
92              return testScope;
93          }
94          else if ( Artifact.SCOPE_PROVIDED.equals( artifact.getScope() ) )
95          {
96              return providedScope;
97          }
98          else if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
99          {
100             return systemScope;
101         }
102         else
103         {
104             return true;
105         }
106     }
107 }