]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/ParentContextType.java
Create separate agent project
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / ant / test / ParentContextType.java
index b6b541d784d3b0dda6e67ab42f681b7878ae0fd8..7915b1a42684a859160674e0a2a4d9ef5d0307b0 100644 (file)
@@ -10,12 +10,18 @@ import org.apache.tools.ant.types.DataType;
 import org.argeo.slc.ant.spring.MapArg;\r
 import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.test.context.ContextAware;\r
+import org.argeo.slc.core.test.context.ContextUtils;\r
 import org.argeo.slc.core.test.context.ParentContextAware;\r
 \r
 public class ParentContextType extends DataType implements ParentContextAware {\r
        private MapArg values = null;\r
        private MapArg expectedValues = null;\r
 \r
+       private String contextAnyFlag = DEFAULT_ANY_FLAG;\r
+       private String contextSkipFlag = DEFAULT_SKIP_FLAG;\r
+\r
+       private String basedon = null;\r
+\r
        private List<ContextAware> children = new Vector<ContextAware>();\r
 \r
        public MapArg createValues() {\r
@@ -37,25 +43,45 @@ public class ParentContextType extends DataType implements ParentContextAware {
        }\r
 \r
        public String getContextAnyFlag() {\r
-               return DEFAULT_ANY_FLAG;\r
+               return contextAnyFlag;\r
+       }\r
+\r
+       public void setContextAnyFlag(String contextAnyFlag) {\r
+               this.contextAnyFlag = contextAnyFlag;\r
        }\r
 \r
        public String getContextSkipFlag() {\r
-               return DEFAULT_SKIP_FLAG;\r
+               return contextSkipFlag;\r
+       }\r
+\r
+       public void setContextSkipFlag(String contextSkipFlag) {\r
+               this.contextSkipFlag = contextSkipFlag;\r
        }\r
 \r
        public Map<String, Object> getExpectedValues() {\r
                if (expectedValues == null)\r
                        expectedValues = new MapArg();\r
+               if (basedon != null) {\r
+                       Map<String, Object> map = getBaseContext().getExpectedValues();\r
+                       ContextUtils.putNotContained(expectedValues.getMap(), map);\r
+               }\r
                return expectedValues.getMap();\r
        }\r
 \r
        public Map<String, Object> getValues() {\r
                if (values == null)\r
                        values = new MapArg();\r
+               if (basedon != null) {\r
+                       Map<String, Object> map = getBaseContext().getValues();\r
+                       ContextUtils.putNotContained(values.getMap(), map);\r
+               }\r
                return values.getMap();\r
        }\r
 \r
+       private ParentContextType getBaseContext() {\r
+               return (ParentContextType) getProject().getReference(basedon);\r
+       }\r
+\r
        public void setValues(Map<String, Object> values) {\r
                throw new SlcException("Cannot override values map.");\r
        }\r
@@ -68,4 +94,9 @@ public class ParentContextType extends DataType implements ParentContextAware {
                        Map<String, Object> overrideExpectedValues) {\r
                getExpectedValues().putAll(overrideExpectedValues);\r
        }\r
+\r
+       public void setBasedon(String basedon) {\r
+               this.basedon = basedon;\r
+       }\r
+\r
 }\r