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() {
19 public void setName(String name
) {
23 /** Both value and bean cannot be set. */
24 public void setValue(String value
) {
25 if (getBean() != null || overrideList
!= null) {
26 throw new BuildException("Value already set.");
32 public void setBean(String bean
) {
33 if (value
!= null || overrideList
!= null) {
34 throw new BuildException("Value already set.");
39 public OverrideList
createList() {
40 if (value
!= null || getBean() != null) {
41 throw new BuildException("Value already set.");
43 if (overrideList
== null) {
44 overrideList
= new OverrideList();
46 throw new BuildException("Only one list can be declared");
52 * The related object: the value if a value had been set or an instance of
55 public Object
getObject() {
58 } else if (getBean() != null) {
59 return getBeanInstance();
60 } else if (overrideList
!= null) {
61 return overrideList
.getAsObjectList();
63 throw new BuildException("Value or bean not set.");
67 /** List of overrides */
68 protected class OverrideList
{
69 private List
<OverrideArg
> list
= new Vector
<OverrideArg
>();
71 public OverrideArg
createOverride() {
72 OverrideArg overrideArg
= new OverrideArg();
73 list
.add(overrideArg
);
77 public List
<Object
> getAsObjectList() {
78 List
<Object
> objectList
= new Vector
<Object
>();
79 for (OverrideArg arg
: list
) {
80 objectList
.add(arg
.getObject());