]>
git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.ws.client/src/main/java/org/argeo/slc/ant/spring/OverrideArg.java
1 package org
.argeo
.slc
.ant
.spring
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.apache
.tools
.ant
.BuildException
;
10 /** Ant type allowing to override bean properties. */
11 public class OverrideArg
extends SpringArg
<Object
> {
12 private final static Log log
= LogFactory
.getLog(OverrideArg
.class);
16 private ListArg overrideList
;
17 private MapArg overrideMap
;
19 private Boolean merge
= false;
21 /** The name of the property to override. */
22 public String
getName() {
27 public void setName(String name
) {
31 /** Both value and bean cannot be set. */
32 public void setValue(String value
) {
33 checkValueAlreadySet();
38 public void setBean(String bean
) {
39 checkValueAlreadySet();
43 /** Creates override list sub tag. */
44 public ListArg
createList() {
45 checkValueAlreadySet();
46 overrideList
= new ListArg();
50 public MapArg
createMap() {
51 checkValueAlreadySet();
52 overrideMap
= new MapArg();
57 * The related object: the value if a value had been set or an instance of
60 public Object
getObject() {
62 if (log
.isTraceEnabled())
63 log
.trace(this + "\t: Returns override object as value");
65 } else if (getBean() != null
66 || getAntref() != null
67 // works on original if no collection is defined
68 || (getOriginal() != null && overrideList
== null && overrideMap
== null)) {
69 if (log
.isTraceEnabled())
70 log
.trace(this + "\t: Returns override object as instance");
72 } else if (overrideList
!= null) {
73 if (log
.isTraceEnabled())
74 log
.trace(this + "\t: Returns override object as list");
75 return overrideList
.getAsObjectList((List
<Object
>) getOriginal());
76 } else if (overrideMap
!= null) {
77 if (log
.isTraceEnabled())
78 log
.trace(this + "\t: Returns override object as map");
80 .getAsObjectMap((Map
<String
, Object
>) getOriginal());
82 throw new BuildException("Value or bean not set.");
86 protected void checkValueAlreadySet() {
87 super.checkValueAlreadySet();
88 if (value
!= null || overrideList
!= null || overrideMap
!= null) {
90 throw new BuildException("Value already set.");
95 public Boolean
getMerge() {
99 public void setMerge(Boolean merge
) {