Revision 50489
Added by Michele Artini about 6 years ago
PatchHostedByJobNode.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.io.StringReader; |
4 | 4 |
import java.util.Map; |
5 |
|
|
5 | 6 |
import javax.annotation.Resource; |
6 | 7 |
import javax.xml.ws.wsaddressing.W3CEndpointReference; |
7 | 8 |
|
9 |
import org.apache.commons.lang.StringUtils; |
|
10 |
import org.apache.commons.logging.Log; |
|
11 |
import org.apache.commons.logging.LogFactory; |
|
12 |
import org.dom4j.Document; |
|
13 |
import org.dom4j.DocumentException; |
|
14 |
import org.dom4j.io.SAXReader; |
|
15 |
import org.springframework.beans.factory.annotation.Required; |
|
16 |
import org.springframework.beans.factory.annotation.Value; |
|
17 |
|
|
8 | 18 |
import com.google.common.collect.Maps; |
9 | 19 |
import com.googlecode.sarasvati.Arc; |
10 | 20 |
import com.googlecode.sarasvati.NodeToken; |
21 |
|
|
11 | 22 |
import eu.dnetlib.enabling.database.rmi.DatabaseException; |
12 | 23 |
import eu.dnetlib.enabling.database.rmi.DatabaseService; |
13 | 24 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
... | ... | |
15 | 26 |
import eu.dnetlib.enabling.resultset.client.ResultSetClientFactory; |
16 | 27 |
import eu.dnetlib.enabling.resultset.client.utils.EPRUtils; |
17 | 28 |
import eu.dnetlib.msro.workflows.nodes.SimpleJobNode; |
18 |
import org.apache.commons.lang.StringUtils; |
|
19 |
import org.apache.commons.logging.Log; |
|
20 |
import org.apache.commons.logging.LogFactory; |
|
21 |
import org.dom4j.Document; |
|
22 |
import org.dom4j.DocumentException; |
|
23 |
import org.dom4j.io.SAXReader; |
|
24 |
import org.springframework.beans.factory.annotation.Required; |
|
25 |
import org.springframework.beans.factory.annotation.Value; |
|
26 | 29 |
|
27 | 30 |
public class PatchHostedByJobNode extends SimpleJobNode { |
28 | 31 |
|
... | ... | |
57 | 60 |
|
58 | 61 |
Map<String, HostedByEntry> hostedByEntryMap; |
59 | 62 |
|
60 |
if (!StringUtils.isBlank(keyTypeFilter)) |
|
63 |
if (!StringUtils.isBlank(keyTypeFilter)) {
|
|
61 | 64 |
hostedByEntryMap = loadHostedByMapFromType(keyTypeFilter); |
62 |
else
|
|
65 |
} else {
|
|
63 | 66 |
hostedByEntryMap = loadHostedByMap(datasourceId); |
67 |
} |
|
64 | 68 |
|
65 | 69 |
final W3CEndpointReference epr = mappedResultSetFactory.createMappedResultSet(inputEpr, new PatchHostedBy(hostedByEntryMap, |
66 | 70 |
getXpathEntry(), counters)); |
... | ... | |
72 | 76 |
} |
73 | 77 |
|
74 | 78 |
private Map<String, HostedByEntry> loadHostedByMap(final String datasourceId) throws DocumentException, DatabaseException { |
75 |
final String sql = "SELECT d.id, d.officialname, p.entry from %s p JOIN datasources d ON (p.datasourceid = d.id) WHERE p.oa_source_id= '%s'"; |
|
79 |
final String sql = "SELECT d.id, d.officialname, p.entry from %s p JOIN dsm_datasources d ON (p.datasourceid = d.id) WHERE p.oa_source_id= '%s'";
|
|
76 | 80 |
return getHostedByEntryMapByQuery(datasourceId, sql); |
77 | 81 |
} |
78 | 82 |
|
79 | 83 |
private Map<String, HostedByEntry> loadHostedByMapFromType(final String keyType) throws DocumentException, DatabaseException { |
80 |
final String sql = "SELECT d.id, d.officialname, p.entry from %s p JOIN datasources d ON (p.datasourceid = d.id) WHERE p.key_type= '%s'"; |
|
84 |
final String sql = "SELECT d.id, d.officialname, p.entry from %s p JOIN dsm_datasources d ON (p.datasourceid = d.id) WHERE p.key_type= '%s'";
|
|
81 | 85 |
return getHostedByEntryMapByQuery(keyType, sql); |
82 | 86 |
} |
83 | 87 |
|
... | ... | |
87 | 91 |
final W3CEndpointReference epr = serviceLocator.getService(DatabaseService.class).searchSQL(getDbName(), |
88 | 92 |
String.format(sql, getHostedbyMapTable(), datasourceId)); |
89 | 93 |
final SAXReader reader = new SAXReader(); |
90 |
for (String s : resultSetClientFactory.getClient(epr)) { |
|
94 |
for (final String s : resultSetClientFactory.getClient(epr)) {
|
|
91 | 95 |
final Document doc = reader.read(new StringReader(s)); |
92 | 96 |
final String entry = doc.valueOf("//FIELD[@name='entry']"); |
93 | 97 |
final String dsId = doc.valueOf("//FIELD[@name='id']"); |
... | ... | |
110 | 114 |
/** |
111 | 115 |
* Setter for property 'inputEprParam'. |
112 | 116 |
* |
113 |
* @param inputEprParam Value to set for property 'inputEprParam'. |
|
117 |
* @param inputEprParam |
|
118 |
* Value to set for property 'inputEprParam'. |
|
114 | 119 |
*/ |
115 | 120 |
public void setInputEprParam(final String inputEprParam) { |
116 | 121 |
this.inputEprParam = inputEprParam; |
... | ... | |
128 | 133 |
/** |
129 | 134 |
* Setter for property 'outputEprParam'. |
130 | 135 |
* |
131 |
* @param outputEprParam Value to set for property 'outputEprParam'. |
|
136 |
* @param outputEprParam |
|
137 |
* Value to set for property 'outputEprParam'. |
|
132 | 138 |
*/ |
133 | 139 |
public void setOutputEprParam(final String outputEprParam) { |
134 | 140 |
this.outputEprParam = outputEprParam; |
... | ... | |
146 | 152 |
/** |
147 | 153 |
* Setter for property 'dbName'. |
148 | 154 |
* |
149 |
* @param dbName Value to set for property 'dbName'. |
|
155 |
* @param dbName |
|
156 |
* Value to set for property 'dbName'. |
|
150 | 157 |
*/ |
151 | 158 |
public void setDbName(final String dbName) { |
152 | 159 |
this.dbName = dbName; |
... | ... | |
172 | 179 |
/** |
173 | 180 |
* Setter for property 'mappedResultSetFactory'. |
174 | 181 |
* |
175 |
* @param mappedResultSetFactory Value to set for property 'mappedResultSetFactory'. |
|
182 |
* @param mappedResultSetFactory |
|
183 |
* Value to set for property 'mappedResultSetFactory'. |
|
176 | 184 |
*/ |
177 | 185 |
@Required |
178 | 186 |
public void setMappedResultSetFactory(final MappedResultSetFactory mappedResultSetFactory) { |
... | ... | |
191 | 199 |
/** |
192 | 200 |
* Setter for property 'resultSetClientFactory'. |
193 | 201 |
* |
194 |
* @param resultSetClientFactory Value to set for property 'resultSetClientFactory'. |
|
202 |
* @param resultSetClientFactory |
|
203 |
* Value to set for property 'resultSetClientFactory'. |
|
195 | 204 |
*/ |
196 | 205 |
@Required |
197 | 206 |
public void setResultSetClientFactory(final ResultSetClientFactory resultSetClientFactory) { |
... | ... | |
210 | 219 |
/** |
211 | 220 |
* Setter for property 'countersParam'. |
212 | 221 |
* |
213 |
* @param countersParam Value to set for property 'countersParam'. |
|
222 |
* @param countersParam |
|
223 |
* Value to set for property 'countersParam'. |
|
214 | 224 |
*/ |
215 | 225 |
public void setCountersParam(final String countersParam) { |
216 | 226 |
this.countersParam = countersParam; |
... | ... | |
224 | 234 |
} |
225 | 235 |
|
226 | 236 |
/** |
227 |
* @param hostedbyMapTable the hostedbyMapTable to set |
|
237 |
* @param hostedbyMapTable |
|
238 |
* the hostedbyMapTable to set |
|
228 | 239 |
*/ |
229 | 240 |
public void setHostedbyMapTable(final String hostedbyMapTable) { |
230 | 241 |
this.hostedbyMapTable = hostedbyMapTable; |
... | ... | |
246 | 257 |
} |
247 | 258 |
|
248 | 259 |
/** |
249 |
* @param overrideDataSourceId the overrideDataSourceId to set |
|
260 |
* @param overrideDataSourceId |
|
261 |
* the overrideDataSourceId to set |
|
250 | 262 |
*/ |
251 | 263 |
public void setOverrideDataSourceId(final String overrideDataSourceId) { |
252 | 264 |
this.overrideDataSourceId = overrideDataSourceId; |
Also available in: Unified diff
merged branch dsm into trunk