]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ParameterRef.java
FlowNamespace extended (flows in flows, param in arg)
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / execution / ParameterRef.java
1 package org.argeo.slc.core.execution;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.springframework.beans.factory.FactoryBean;
6
7 public class ParameterRef implements FactoryBean {
8 private final static Log log = LogFactory.getLog(ParameterRef.class);
9
10 private InstantiationManager instantiationManager;
11 private String name;
12
13 /** Cached object. */
14 private Object object;
15
16 public ParameterRef() {
17 }
18
19 public ParameterRef(String name) {
20 this.name = name;
21 }
22
23 public Object getObject() throws Exception {
24 if (log.isTraceEnabled())
25 log.debug("Parameter ref called for " + name);
26
27 if (object == null)
28 object = instantiationManager.getInitializingFlowParameter(name);
29 return object;
30 }
31
32 public Class<?> getObjectType() {
33 if (object == null)
34 return instantiationManager.getInitializingFlowParameterClass(name);
35 else
36 return object.getClass();
37 }
38
39 public boolean isSingleton() {
40 return true;
41 }
42
43 public void setInstantiationManager(
44 InstantiationManager instantiationManager) {
45 this.instantiationManager = instantiationManager;
46 }
47
48 public void setName(String name) {
49 this.name = name;
50 }
51
52 }