1 package com.github.searls.jasmine.io.scripts;
2
3 import com.github.searls.jasmine.io.ScansDirectory;
4 import com.github.searls.jasmine.model.ScriptSearch;
5
6 import java.io.File;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 public class FindsScriptLocationsInDirectory {
11
12 private final ScansDirectory scansDirectory;
13 private final ConvertsFileToUriString convertsFileToUriString;
14
15 public FindsScriptLocationsInDirectory(ScansDirectory scansDirectory,
16 ConvertsFileToUriString convertsFileToUriString) {
17 this.scansDirectory = scansDirectory;
18 this.convertsFileToUriString = convertsFileToUriString;
19 }
20
21 public FindsScriptLocationsInDirectory() {
22 this(new ScansDirectory(), new ConvertsFileToUriString());
23 }
24
25 public List<String> find(ScriptSearch search) {
26 List<String> scriptLocations = new ArrayList<String>();
27 if (search.getDirectory().canRead()) {
28 for (String script : scansDirectory.scan(search.getDirectory(), search.getIncludes(), search.getExcludes())) {
29 scriptLocations.add(convertsFileToUriString.convert(new File(search.getDirectory(), script)));
30 }
31 }
32 return scriptLocations;
33 }
34 }