]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ParameterRef.java
Introduce JMX agent
[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 /** @deprecated for backward compatibility with pre v0.11.4 approach. */
20 public ParameterRef(String name) {
21 this.name = name;
22 log
23 .warn("Using constructor in parameter ref is deprecated"
24 + " and will be removed in a later version. Set with property 'name'.");
25 }
26
27 public Object getObject() throws Exception {
28 if (log.isTraceEnabled())
29 log.debug("Parameter ref called for " + name);
30
31 if (object == null)
32 object = instantiationManager.getInitializingFlowParameter(name);
33 return object;
34 }
35
36 public Class<?> getObjectType() {
37 if (object == null)
38 return instantiationManager.getInitializingFlowParameterClass(name);
39 else
40 return object.getClass();
41 }
42
43 public boolean isSingleton() {
44 return true;
45 }
46
47 public void setInstantiationManager(
48 InstantiationManager instantiationManager) {
49 this.instantiationManager = instantiationManager;
50 }
51
52 public void setName(String name) {
53 this.name = name;
54 }
55
56 }