Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib.msro.workflows.nodes.index;
2
3
import java.util.Map;
4
5
import org.apache.commons.logging.Log;
6
import org.apache.commons.logging.LogFactory;
7 29694 sandro.lab
import org.springframework.beans.factory.annotation.Required;
8 26600 sandro.lab
9
import com.googlecode.sarasvati.Engine;
10
import com.googlecode.sarasvati.NodeToken;
11
import com.googlecode.sarasvati.env.Env;
12
13
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob;
14
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode;
15
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener;
16
17 30082 sandro.lab
// TODO: Auto-generated Javadoc
18
/**
19
 * The Class CreateIndexJobNode.
20
 */
21 26600 sandro.lab
public class CreateIndexJobNode extends BlackboardJobNode {
22
23 30082 sandro.lab
	/** The Constant log. */
24 26600 sandro.lab
	private static final Log log = LogFactory.getLog(CreateIndexJobNode.class);
25
26 30082 sandro.lab
	/** The output prefix. */
27 26600 sandro.lab
	private String outputPrefix = "index_";
28 30082 sandro.lab
29
	/** The default backend id. */
30
	private String defaultBackendId;
31
32
	/** The format. */
33
	private String format;
34
35 26600 sandro.lab
36 30082 sandro.lab
	/** The layout. */
37
	private String layout;
38
39
	/** The interpretation. */
40
	private String interpretation;
41
42
43
44
45
	/* (non-Javadoc)
46
	 * @see eu.dnetlib.msro.workflows.nodes.BlackboardJobNode#getXqueryForServiceId(com.googlecode.sarasvati.NodeToken)
47
	 */
48 26600 sandro.lab
	@Override
49
	protected String getXqueryForServiceId(final NodeToken token) {
50
		return "collection('/db/DRIVER/ServiceResources/IndexServiceResourceType')//RESOURCE_IDENTIFIER/@value/string()";
51
	}
52
53 30082 sandro.lab
	/* (non-Javadoc)
54
	 * @see eu.dnetlib.msro.workflows.nodes.BlackboardJobNode#prepareJob(eu.dnetlib.enabling.tools.blackboard.BlackboardJob, com.googlecode.sarasvati.NodeToken)
55
	 */
56 26600 sandro.lab
	@Override
57
	protected void prepareJob(final BlackboardJob job, final NodeToken token) {
58 30082 sandro.lab
		final String env_format = token.getFullEnv().getAttribute("format");
59
		final String env_layout = token.getFullEnv().getAttribute("layout");
60
		final String env_interp = token.getFullEnv().getAttribute("interpretation");
61
62
		if ((env_format != null)&& (!env_format.isEmpty())){
63
			this.format = env_format;
64
		}
65
		if ((env_layout != null)&& (!env_layout.isEmpty())) {
66
			this.layout = env_layout;
67
		}
68
		if ((env_interp != null)&& (!env_interp.isEmpty())) {
69
			this.interpretation = env_interp;
70
		}
71
72 26600 sandro.lab
73 30082 sandro.lab
		log.info("preparing CREATE blackboard job: " + format + "-" + layout + "-" + interpretation);
74 26600 sandro.lab
75
		job.setAction("CREATE");
76
		job.getParameters().put("format", format);
77
		job.getParameters().put("layout", layout);
78 30082 sandro.lab
		job.getParameters().put("interpretation", interpretation);
79
		job.getParameters().put("backend_Id", defaultBackendId);
80 26600 sandro.lab
	}
81
82 30082 sandro.lab
	/**
83
	 * Gets the output prefix.
84
	 *
85
	 * @return the output prefix
86
	 */
87 26600 sandro.lab
	public String getOutputPrefix() {
88
		return outputPrefix;
89
	}
90
91 30082 sandro.lab
	/**
92
	 * Sets the output prefix.
93
	 *
94
	 * @param outputPrefix the output prefix
95
	 */
96 26600 sandro.lab
	public void setOutputPrefix(final String outputPrefix) {
97
		this.outputPrefix = outputPrefix;
98
	}
99
100 30082 sandro.lab
	/* (non-Javadoc)
101
	 * @see eu.dnetlib.msro.workflows.nodes.BlackboardJobNode#generateBlackboardListener(com.googlecode.sarasvati.Engine, com.googlecode.sarasvati.NodeToken)
102
	 */
103 26600 sandro.lab
	@Override
104
	protected BlackboardWorkflowJobListener generateBlackboardListener(final Engine engine, final NodeToken token) {
105
		return new BlackboardWorkflowJobListener(engine, token) {
106
107
			@Override
108
			protected void populateEnv(final Env env, final Map<String, String> responseParams) {
109 30082 sandro.lab
				env.setAttribute(getOutputPrefix() + "format", getFormat());
110
				env.setAttribute(getOutputPrefix() + "layout", getLayout());
111
				env.setAttribute(getOutputPrefix() + "interpretation", getInterpretation());
112 26600 sandro.lab
				env.setAttribute(getOutputPrefix() + "id", responseParams.get("id"));
113
			}
114
		};
115
	}
116
117 29694 sandro.lab
	/**
118 30082 sandro.lab
	 * Gets the default backend id.
119
	 *
120
	 * @return the default backend id
121 29694 sandro.lab
	 */
122 30082 sandro.lab
	public String getDefaultBackendId() {
123
		return defaultBackendId;
124 29694 sandro.lab
	}
125
126
	/**
127 30082 sandro.lab
	 * Sets the default backend id.
128
	 *
129
	 * @param defaultBackendId the default backend id
130 29694 sandro.lab
	 */
131
	@Required
132 30082 sandro.lab
	public void setDefaultBackendId(String defaultBackendId) {
133
		this.defaultBackendId = defaultBackendId;
134 29694 sandro.lab
	}
135 30082 sandro.lab
136
	/**
137
	 * Gets the format.
138
	 *
139
	 * @return the format
140
	 */
141
	public String getFormat() {
142
		return format;
143
	}
144 29694 sandro.lab
145 30082 sandro.lab
	/**
146
	 * Sets the format.
147
	 *
148
	 * @param format the format
149
	 */
150
	public void setFormat(String format) {
151
		this.format = format;
152
	}
153
154
	/**
155
	 * Gets the layout.
156
	 *
157
	 * @return the layout
158
	 */
159
	public String getLayout() {
160
		return layout;
161
	}
162
163
	/**
164
	 * Sets the layout.
165
	 *
166
	 * @param layout the layout
167
	 */
168
	public void setLayout(String layout) {
169
		this.layout = layout;
170
	}
171
172
	/**
173
	 * Gets the interpretation.
174
	 *
175
	 * @return the interpretation
176
	 */
177
	public String getInterpretation() {
178
		return interpretation;
179
	}
180
181
	/**
182
	 * Sets the interpretation.
183
	 *
184
	 * @param interpretation the interpretation
185
	 */
186
	public void setInterpretation(String interpretation) {
187
		this.interpretation = interpretation;
188
	}
189
190
191
192 26600 sandro.lab
}