Coverage Report - org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner
 
Classes in this File Line Coverage Branch Coverage Complexity
SimpleSourceInclusionScanner
92%
12/13
62%
5/8
3,5
 
 1  
 package org.codehaus.plexus.compiler.util.scan;
 2  
 
 3  
 /**
 4  
  * The MIT License
 5  
  *
 6  
  * Copyright (c) 2005, The Codehaus
 7  
  *
 8  
  * Permission is hereby granted, free of charge, to any person obtaining a copy of
 9  
  * this software and associated documentation files (the "Software"), to deal in
 10  
  * the Software without restriction, including without limitation the rights to
 11  
  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 12  
  * of the Software, and to permit persons to whom the Software is furnished to do
 13  
  * so, subject to the following conditions:
 14  
  *
 15  
  * The above copyright notice and this permission notice shall be included in all
 16  
  * copies or substantial portions of the Software.
 17  
  *
 18  
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 19  
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 20  
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 21  
  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 22  
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 23  
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 24  
  * SOFTWARE.
 25  
  */
 26  
 
 27  
 import org.codehaus.plexus.compiler.util.scan.mapping.SourceMapping;
 28  
 
 29  
 import java.io.File;
 30  
 import java.util.Collections;
 31  
 import java.util.HashSet;
 32  
 import java.util.List;
 33  
 import java.util.Set;
 34  
 
 35  
 /**
 36  
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
 37  
  */
 38  
 public class SimpleSourceInclusionScanner
 39  
     extends AbstractSourceInclusionScanner
 40  
 {
 41  
     private Set<String> sourceIncludes;
 42  
 
 43  
     private Set<String> sourceExcludes;
 44  
 
 45  
     public SimpleSourceInclusionScanner( Set<String> sourceIncludes, Set<String> sourceExcludes )
 46  1
     {
 47  1
         this.sourceIncludes = sourceIncludes;
 48  
 
 49  1
         this.sourceExcludes = sourceExcludes;
 50  1
     }
 51  
 
 52  
     public Set<File> getIncludedSources( File sourceDir, File targetDir )
 53  
         throws InclusionScanException
 54  
     {
 55  1
         List<SourceMapping> srcMappings = getSourceMappings();
 56  
 
 57  1
         if ( srcMappings.isEmpty() )
 58  
         {
 59  0
             return Collections.emptySet();
 60  
         }
 61  
 
 62  1
         String[] potentialSources = scanForSources( sourceDir, sourceIncludes, sourceExcludes );
 63  
 
 64  1
         Set<File> matchingSources = new HashSet<>( potentialSources != null ? potentialSources.length : 0 );
 65  
 
 66  1
         if ( potentialSources != null )
 67  
         {
 68  2
             for ( String potentialSource : potentialSources )
 69  
             {
 70  1
                 matchingSources.add( new File( sourceDir, potentialSource ) );
 71  
             }
 72  
         }
 73  
 
 74  1
         return matchingSources;
 75  
     }
 76  
 }