Project

General

Profile

« Previous | Next » 

Revision 44514

put the source into the record properties

View differences:

modules/dnet-oai-store-service/branches/nodeRefactoring/src/main/java/eu/dnetlib/data/oai/store/parser/PublisherRecordParser.java
4 4
import java.util.List;
5 5
import java.util.Map.Entry;
6 6

  
7
import com.google.common.base.Function;
8
import com.google.common.collect.ArrayListMultimap;
9
import com.google.common.collect.Iterables;
10
import com.google.common.collect.Multimap;
11
import eu.dnetlib.data.information.oai.publisher.PublisherField;
12
import eu.dnetlib.data.information.oai.publisher.conf.OAIConfigurationExistReader;
13
import org.apache.commons.lang.StringUtils;
7 14
import org.apache.commons.logging.Log;
8 15
import org.apache.commons.logging.LogFactory;
9 16
import org.dom4j.Document;
......
11 18
import org.dom4j.Node;
12 19
import org.dom4j.io.SAXReader;
13 20

  
14
import com.google.common.base.Function;
15
import com.google.common.collect.ArrayListMultimap;
16
import com.google.common.collect.Iterables;
17
import com.google.common.collect.Multimap;
18

  
19
import eu.dnetlib.data.information.oai.publisher.PublisherField;
20

  
21 21
/**
22 22
 * An instance of this class can parse an XML record and extract the information needed to store the record in a publisher store.
23 23
 * 
......
45 45
	 * @return a Multimap describing the values to be indexed for this record.
46 46
	 */
47 47
	@SuppressWarnings({ "unchecked", "rawtypes" })
48
	public Multimap<String, String> parseRecord(final String record) {
48
	public Multimap<String, String> parseRecord(final String record, final String source) {
49 49
		Multimap<String, String> recordProps = ArrayListMultimap.create();
50 50
		try {
51 51
			Document doc = this.saxReader.read(new StringReader(record));
52
			if(StringUtils.isNotBlank(source)) recordProps.put(OAIConfigurationExistReader.SET_FIELD, source);
52 53
			for (PublisherField field : this.storeIndices) {
53 54
				for (Entry<String, String> indexEntry : field.getSources().entries()) {
54 55
					// each xpath can return a list of nodes or strings, depending on the xpath

Also available in: Unified diff