Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib.functionality.modular.ui.workflows.values;
2
3
import java.io.File;
4
import java.util.List;
5
import java.util.Map;
6
7
import org.springframework.core.io.Resource;
8
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
9
import org.springframework.core.io.support.ResourcePatternResolver;
10
11
import com.google.common.collect.Lists;
12
13
import eu.dnetlib.msro.workflows.util.ValidNodeValuesFetcher;
14
15
public class ListFilesValues extends ValidNodeValuesFetcher {
16
17
	private final ResourcePatternResolver pathResolver = new PathMatchingResourcePatternResolver();
18
19
	@Override
20
	protected List<DnetParamValue> obtainValues(final Map<String, String> params) throws Exception {
21
		verifyParams(params, "path", "ext");
22
23
		final String pathTmp = params.get("path");
24
25
		final String path = pathTmp.startsWith("/") ? pathTmp : "/" + pathTmp;
26
27
		final List<DnetParamValue> values = Lists.newArrayList();
28 33720 alessia.ba
		for (Resource r : pathResolver.getResources("classpath*:" + path + "/*." + params.get("ext"))) {
29 26600 sandro.lab
			values.add(new DnetParamValue(path + File.separator + r.getFilename(), r.getFilename()));
30
		}
31
32
		return values;
33
	}
34
35
}