1 package org
.argeo
.slc
.ant
.spring
;
4 import java
.util
.Vector
;
6 import org
.apache
.tools
.ant
.BuildException
;
8 /** Ant type allowing to override bean properties. */
9 public class OverrideArg
extends AbstractSpringArg
{
12 private OverrideList overrideList
;
14 /** The name of the property to override. */
15 public String
getName() {
20 public void setName(String name
) {
24 /** Both value and bean cannot be set. */
25 public void setValue(String value
) {
26 if (getBean() != null || overrideList
!= null) {
27 throw new BuildException("Value already set.");
33 public void setBean(String bean
) {
34 if (value
!= null || overrideList
!= null) {
35 throw new BuildException("Value already set.");
40 /** Creates override list sub tag. */
41 public OverrideList
createList() {
42 if (value
!= null || getBean() != null) {
43 throw new BuildException("Value already set.");
45 if (overrideList
== null) {
46 overrideList
= new OverrideList();
48 throw new BuildException("Only one list can be declared");
54 * The related object: the value if a value had been set or an instance of
57 public Object
getObject() {
60 } else if (getBean() != null) {
61 return getBeanInstance();
62 } else if (overrideList
!= null) {
63 return overrideList
.getAsObjectList();
65 throw new BuildException("Value or bean not set.");
69 /** List of overrides */
70 protected class OverrideList
{
71 private List
<OverrideArg
> list
= new Vector
<OverrideArg
>();
73 /** Creates override sub tag. */
74 public OverrideArg
createOverride() {
75 OverrideArg overrideArg
= new OverrideArg();
76 list
.add(overrideArg
);
80 /** Gets as list of objects. */
81 public List
<Object
> getAsObjectList() {
82 List
<Object
> objectList
= new Vector
<Object
>();
83 for (OverrideArg arg
: list
) {
84 objectList
.add(arg
.getObject());