diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-09-16 08:49:21 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-09-16 08:49:21 +0200 |
| commit | 5e294dbd586034b23484adb3c0c4de0f6acd901c (patch) | |
| tree | e5fac95eff998d6a9096383a97527b8dd0ef56cf /src/main/java/com/c2kernel/utils | |
| parent | 30a7e7b62147afe44fceaf3b52b75b04622ad19c (diff) | |
Abstract properties. Activities cannot be instantiated unless the slot
overrides them. Fixes #190
Diffstat (limited to 'src/main/java/com/c2kernel/utils')
| -rw-r--r-- | src/main/java/com/c2kernel/utils/CastorHashMap.java | 33 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/utils/KeyValuePair.java | 16 |
2 files changed, 43 insertions, 6 deletions
diff --git a/src/main/java/com/c2kernel/utils/CastorHashMap.java b/src/main/java/com/c2kernel/utils/CastorHashMap.java index 25e5ab4..2ec64fe 100644 --- a/src/main/java/com/c2kernel/utils/CastorHashMap.java +++ b/src/main/java/com/c2kernel/utils/CastorHashMap.java @@ -1,5 +1,6 @@ package com.c2kernel.utils;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -12,6 +13,8 @@ public class CastorHashMap extends HashMap<String,Object> {
clear();
}
+
+ ArrayList<String> abstractPropNames = new ArrayList<String>();
public KeyValuePair[] getKeyValuePairs()
{
@@ -24,8 +27,8 @@ public class CastorHashMap extends HashMap<String,Object> for(i=0; i<numKeys; i++)
if (keyIter.hasNext())
{
- String tmp = keyIter.next();
- keyValuePairs[i] = new KeyValuePair(tmp,get(tmp));
+ String name = keyIter.next();
+ keyValuePairs[i] = new KeyValuePair(name ,get(name), abstractPropNames.contains(name));
}
return keyValuePairs;
@@ -46,9 +49,33 @@ public class CastorHashMap extends HashMap<String,Object> }
}
- public void setKeyValuePair(KeyValuePair keyValuePair)
+ @Override
+ public void clear() {
+ super.clear();
+ abstractPropNames = new ArrayList<String>();
+ }
+
+
+ public void setKeyValuePair(KeyValuePair keyValuePair)
{
put(keyValuePair.getKey(), keyValuePair.getValue());
+ if (keyValuePair.isAbstract())
+ abstractPropNames.add(keyValuePair.getKey());
+ else
+ abstractPropNames.remove(keyValuePair.getKey());
}
+ public ArrayList<String> getAbstract() {
+ return abstractPropNames;
+ }
+
+
+ public void put(String key, Object value, boolean isAbstract) {
+ super.put(key, value);
+ if (isAbstract)
+ abstractPropNames.add(key);
+ else
+ abstractPropNames.remove(key);
+
+ }
}
diff --git a/src/main/java/com/c2kernel/utils/KeyValuePair.java b/src/main/java/com/c2kernel/utils/KeyValuePair.java index 5e5a147..92777f6 100644 --- a/src/main/java/com/c2kernel/utils/KeyValuePair.java +++ b/src/main/java/com/c2kernel/utils/KeyValuePair.java @@ -5,13 +5,15 @@ public class KeyValuePair {
private String mKey = null;
private Object mValue = null;
+ private boolean mAbstract = false;
- public KeyValuePair() {}
+ public KeyValuePair() {}
- public KeyValuePair(String key, Object value)
+ public KeyValuePair(String key, Object value, boolean isAbstract)
{
mKey = key;
mValue = value;
+ mAbstract = isAbstract;
}
public String getKey() {
@@ -30,7 +32,15 @@ public class KeyValuePair mValue = value;
}
- public String getStringValue() {
+ public void setAbstract(boolean isAbstract) {
+ mAbstract = isAbstract;
+ }
+
+ public boolean isAbstract() {
+ return mAbstract;
+ }
+
+ public String getStringValue() {
if (mValue instanceof String)
return (String)mValue;
else
|
