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 SpringArg
<Object
> {
12 private OverrideList overrideList
;
13 private MapArg overrideMap
;
15 /** The name of the property to override. */
16 public String
getName() {
21 public void setName(String name
) {
25 /** Both value and bean cannot be set. */
26 public void setValue(String value
) {
27 checkValueAlreadySet();
32 public void setBean(String bean
) {
33 checkValueAlreadySet();
37 /** Creates override list sub tag. */
38 public OverrideList
createList() {
39 checkValueAlreadySet();
40 overrideList
= new OverrideList();
44 public MapArg
createMap() {
45 checkValueAlreadySet();
46 overrideMap
= new MapArg();
51 * The related object: the value if a value had been set or an instance of
54 public Object
getObject() {
57 } else if (getBean() != null || getAntref() != null) {
58 return getBeanInstance();
59 } else if (overrideList
!= null) {
60 return overrideList
.getAsObjectList();
61 } else if (overrideMap
!= null) {
62 return overrideMap
.getMap();
64 throw new BuildException("Value or bean not set.");
68 protected void checkValueAlreadySet() {
69 super.checkValueAlreadySet();
70 if (value
!= null || overrideList
!= null || overrideMap
!= null) {
71 throw new BuildException("Value already set.");
75 /** List of overrides */
76 protected class OverrideList
{
77 private List
<OverrideArg
> list
= new Vector
<OverrideArg
>();
79 /** Creates override sub tag. */
80 public OverrideArg
createOverride() {
81 OverrideArg overrideArg
= new OverrideArg();
82 list
.add(overrideArg
);
86 /** Gets as list of objects. */
87 public List
<Object
> getAsObjectList() {
88 List
<Object
> objectList
= new Vector
<Object
>();
89 for (OverrideArg arg
: list
) {
90 objectList
.add(arg
.getObject());