1 package org.argeo.people.core.imports;
2
3 import java.util.Map;
4
5 import javax.jcr.RepositoryException;
6 import javax.jcr.Session;
7
8 import org.argeo.connect.resources.ResourcesService;
9 import org.argeo.people.PeopleException;
10 import org.argeo.util.CsvParserWithLinesAsMap;
11
12
13
14
15 public class EncodedTagCsvFileParser extends CsvParserWithLinesAsMap {
16
17 private final ResourcesService resourcesService;
18 private final Session session;
19 private final String tagId;
20 private final String codeHeaderName;
21 private final String valueHeaderName;
22
23
24
25
26
27
28
29
30
31 public EncodedTagCsvFileParser(ResourcesService resourcesService, Session session, String tagId,
32 String codeHeaderName, String valueHeaderName) {
33 super();
34 this.session = session;
35 this.resourcesService = resourcesService;
36 this.tagId = tagId;
37 this.codeHeaderName = codeHeaderName;
38 this.valueHeaderName = valueHeaderName;
39 }
40
41 @Override
42 protected void processLine(Integer lineNumber, Map<String, String> line) {
43 try {
44 String tagCode = line.get(codeHeaderName);
45 String tagValue = line.get(valueHeaderName);
46 resourcesService.registerTag(session, tagId, tagCode, tagValue);
47 } catch (RepositoryException e) {
48 throw new PeopleException("Cannot process line " + lineNumber + " " + line, e);
49 }
50 }
51 }