View Javadoc
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   * Base utility to load an encoded tag like resource catalogue in a repository
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  	 * @param resourcesService
26  	 * @param session
27  	 * @param tagId
28  	 * @param codeHeaderName
29  	 * @param valueHeaderName
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  }