1 package org
.argeo
.slc
.ant
.spring
;
4 import java
.util
.Vector
;
6 import org
.apache
.tools
.ant
.BuildException
;
8 import org
.argeo
.slc
.core
.SlcException
;
10 /** Ant type allowing to override bean properties. */
11 public class OverrideArg
extends AbstractSpringArg
{
14 private OverrideList overrideList
;
15 private String antref
;
17 /** The name of the property to override. */
18 public String
getName() {
23 public void setName(String name
) {
27 /** Sets a reference to an ant data type. */
28 public void setAntref(String antref
) {
29 if (value
!= null || overrideList
!= null || getBean() != null) {
30 throw new BuildException("Value already set.");
35 /** Both value and bean cannot be set. */
36 public void setValue(String value
) {
37 if (getBean() != null || overrideList
!= null || antref
!= null) {
38 throw new BuildException("Value already set.");
44 public void setBean(String bean
) {
45 if (value
!= null || overrideList
!= null || antref
!= null) {
46 throw new BuildException("Value already set.");
51 /** Creates override list sub tag. */
52 public OverrideList
createList() {
53 if (value
!= null || getBean() != null) {
54 throw new BuildException("Value already set.");
56 if (overrideList
== null) {
57 overrideList
= new OverrideList();
59 throw new BuildException("Only one list can be declared");
65 * The related object: the value if a value had been set or an instance of
68 public Object
getObject() {
71 } else if (getBean() != null) {
72 return getBeanInstance();
73 } else if (overrideList
!= null) {
74 return overrideList
.getAsObjectList();
75 } else if (antref
!= null) {
76 Object obj
= getProject().getReference(antref
);
78 throw new SlcException("No object found for reference "
83 throw new BuildException("Value or bean not set.");
87 /** List of overrides */
88 protected class OverrideList
{
89 private List
<OverrideArg
> list
= new Vector
<OverrideArg
>();
91 /** Creates override sub tag. */
92 public OverrideArg
createOverride() {
93 OverrideArg overrideArg
= new OverrideArg();
94 list
.add(overrideArg
);
98 /** Gets as list of objects. */
99 public List
<Object
> getAsObjectList() {
100 List
<Object
> objectList
= new Vector
<Object
>();
101 for (OverrideArg arg
: list
) {
102 objectList
.add(arg
.getObject());