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 SpringArg
<Object
> {
14 private OverrideList overrideList
;
15 private MapArg overrideMap
;
17 /** The name of the property to override. */
18 public String
getName() {
23 public void setName(String name
) {
27 /** Both value and bean cannot be set. */
28 public void setValue(String value
) {
29 checkValueAlreadySet();
34 public void setBean(String bean
) {
35 checkValueAlreadySet();
39 /** Creates override list sub tag. */
40 public OverrideList
createList() {
41 checkValueAlreadySet();
42 overrideList
= new OverrideList();
46 public MapArg
createMap() {
47 checkValueAlreadySet();
48 overrideMap
= new MapArg();
53 * The related object: the value if a value had been set or an instance of
56 public Object
getObject() {
59 } else if (getBean() != null || getAntref() != null) {
60 return getBeanInstance();
61 } else if (overrideList
!= null) {
62 return overrideList
.getAsObjectList();
63 } else if (overrideMap
!= null) {
64 return overrideMap
.getMap();
66 throw new BuildException("Value or bean not set.");
70 protected void checkValueAlreadySet() {
71 super.checkValueAlreadySet();
72 if (value
!= null || overrideList
!= null || overrideMap
!= null) {
73 throw new BuildException("Value already set.");
77 /** List of overrides */
78 protected class OverrideList
{
79 private List
<OverrideArg
> list
= new Vector
<OverrideArg
>();
81 /** Creates override sub tag. */
82 public OverrideArg
createOverride() {
83 OverrideArg overrideArg
= new OverrideArg();
84 list
.add(overrideArg
);
88 /** Gets as list of objects. */
89 public List
<Object
> getAsObjectList() {
90 List
<Object
> objectList
= new Vector
<Object
>();
91 for (OverrideArg arg
: list
) {
92 objectList
.add(arg
.getObject());