]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/ant/spring/AbstractSpringArg.java
1 package org
.argeo
.slc
.ant
.spring
;
4 import java
.util
.Vector
;
6 import org
.springframework
.beans
.BeanWrapper
;
7 import org
.springframework
.beans
.BeanWrapperImpl
;
8 import org
.springframework
.context
.ApplicationContext
;
10 import org
.apache
.tools
.ant
.types
.DataType
;
12 import org
.argeo
.slc
.ant
.SlcProjectHelper
;
14 /** Abstract Ant type wrapping a Spring bean. */
15 public abstract class AbstractSpringArg
extends DataType
{
16 private List
<OverrideArg
> overrides
= new Vector
<OverrideArg
>();
20 /** The <u>name</u> of the underlying bean, as set throught the attribute. */
21 public String
getBean() {
25 /** Setter for the bean name. */
26 public void setBean(String bean
) {
31 * Retrieve the instance of the bean. <b>If teh underlying Spring bean is a
32 * prototype, it will instanciated each time.</b>
34 protected Object
getBeanInstance() {
35 Object obj
= getContext().getBean(bean
);
37 BeanWrapper wrapper
= new BeanWrapperImpl(obj
);
38 for (OverrideArg override
: overrides
) {
39 wrapper
.setPropertyValue(override
.getName(), override
.getObject());
45 /** Creates an override subtag.*/
46 public OverrideArg
createOverride() {
47 OverrideArg propertyArg
= new OverrideArg();
48 overrides
.add(propertyArg
);
52 /** The related Spring application context.*/
53 protected ApplicationContext
getContext() {
54 return (ApplicationContext
) getProject().getReference(
55 SlcProjectHelper
.REF_ROOT_CONTEXT
);