Project

General

Profile

1
package eu.dnetlib.grid.process;
2

    
3
import java.util.List;
4
import java.util.Map;
5
import java.util.Objects;
6
import java.util.stream.Collectors;
7

    
8
import org.springframework.boot.CommandLineRunner;
9
import org.springframework.boot.SpringApplication;
10
import org.springframework.boot.autoconfigure.SpringBootApplication;
11

    
12
import eu.dnetlib.grid.process.model.GridOrganization;
13
import eu.dnetlib.grid.process.utils.Datasource;
14
import eu.dnetlib.grid.process.utils.GridCleaner;
15
import eu.dnetlib.grid.process.utils.GridUtils;
16

    
17
@SpringBootApplication
18
public class GridOrganizationsApplication implements CommandLineRunner {
19

    
20
	private static final Datasource gridDs = new Datasource("openaire____::grid", "GRID - Global Research Identifier Database", "grid________");
21

    
22
	public static void main(final String[] args) {
23
		SpringApplication.run(GridOrganizationsApplication.class, args);
24
	}
25

    
26
	@Override
27
	public void run(final String... args) throws Exception {
28
		if (args.length == 1) {
29
			processFile(args[0]);
30
		} else {
31
			System.err.println();
32
			System.err.println("Usage: java -jar <JARFILE> <GridJsonFile>");
33
			System.err.println();
34
		}
35
	}
36

    
37
	protected void processFile(final String jsonFile) throws Exception {
38
		final GridCleaner cleaner = new GridCleaner();
39

    
40
		final Map<String, String> parents = GridUtils.streamOrganizations(jsonFile)
41
				.filter(Objects::nonNull)
42
				.filter(o -> o.getStatus().equals("active"))
43
				.collect(Collectors.toMap(GridOrganization::getId, GridUtils::findShortName));
44

    
45
		GridUtils.streamOrganizations(jsonFile)
46
				.filter(Objects::nonNull)
47
				.filter(o -> o.getStatus().equals("active"))
48
				.map(cleaner)
49
				.map(org -> GridUtils.toProtos(org, parents, gridDs))
50
				.flatMap(List::stream)
51
				.map(s -> s.getEntity().getId()) // TODO OAF -> JSON
52
				.forEach(System.out::println);
53

    
54
	}
55

    
56
}
    (1-1/1)