From c5c575c095248791d95b604efc439a8a8212d5a8 Mon Sep 17 00:00:00 2001 From: Purodha Date: Wed, 20 Feb 2013 16:37:14 +0000 Subject: [PATCH] SelectableValues can now be annotated with kind of data (e.g. SINGLEVALUE, DOMAINOPTIONS, et al), and these annotations are passed to remote via moduleprop.search --- .../core/model/DefaultSelectableValues.java | 9 ++-- .../core/model/KindOfSelectableValue.java | 5 +++ .../hsadmin/mods/dom/DomainOptionValues.java | 6 +++ .../remote/ModulePropertiesRemote.java | 42 +++++++++++++------ 4 files changed, 47 insertions(+), 15 deletions(-) create mode 100644 hsarback/src/de/hsadmin/core/model/KindOfSelectableValue.java diff --git a/hsarback/src/de/hsadmin/core/model/DefaultSelectableValues.java b/hsarback/src/de/hsadmin/core/model/DefaultSelectableValues.java index 5cdda0e..7d4110a 100644 --- a/hsarback/src/de/hsadmin/core/model/DefaultSelectableValues.java +++ b/hsarback/src/de/hsadmin/core/model/DefaultSelectableValues.java @@ -5,7 +5,10 @@ import java.util.List; public class DefaultSelectableValues { - public List get() { - return new ArrayList(); - } + public KindOfSelectableValue getkind() { + return KindOfSelectableValue.UNSPECIFIED; + } + public List get() { + return new ArrayList(); + } } diff --git a/hsarback/src/de/hsadmin/core/model/KindOfSelectableValue.java b/hsarback/src/de/hsadmin/core/model/KindOfSelectableValue.java new file mode 100644 index 0000000..2ed20b2 --- /dev/null +++ b/hsarback/src/de/hsadmin/core/model/KindOfSelectableValue.java @@ -0,0 +1,5 @@ +package de.hsadmin.core.model; + +public enum KindOfSelectableValue { + UNSPECIFIED , DOMAINOPTIONS, SINGLESTRING +} diff --git a/hsarback/src/de/hsadmin/mods/dom/DomainOptionValues.java b/hsarback/src/de/hsadmin/mods/dom/DomainOptionValues.java index 0deef16..8854de5 100644 --- a/hsarback/src/de/hsadmin/mods/dom/DomainOptionValues.java +++ b/hsarback/src/de/hsadmin/mods/dom/DomainOptionValues.java @@ -5,10 +5,16 @@ import java.util.List; import de.hsadmin.core.model.BooleanListValue; import de.hsadmin.core.model.DefaultSelectableValues; +import de.hsadmin.core.model.KindOfSelectableValue; import de.hsadmin.core.model.SelectableValue; public class DomainOptionValues extends DefaultSelectableValues { + @Override + public KindOfSelectableValue getkind() { + return KindOfSelectableValue.DOMAINOPTIONS; + } + @Override public List get() { ArrayList list = new ArrayList(); diff --git a/hsarback/src/de/hsadmin/remote/ModulePropertiesRemote.java b/hsarback/src/de/hsadmin/remote/ModulePropertiesRemote.java index dc304d9..ab206ac 100644 --- a/hsarback/src/de/hsadmin/remote/ModulePropertiesRemote.java +++ b/hsarback/src/de/hsadmin/remote/ModulePropertiesRemote.java @@ -11,10 +11,12 @@ import java.util.Properties; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.AnnFieldIO; import de.hsadmin.core.model.AuthenticationException; +import de.hsadmin.core.model.DefaultSelectableValues; import de.hsadmin.core.model.HSAdminException; import de.hsadmin.core.model.ReadWriteAccess; import de.hsadmin.core.model.SelectableValue; import de.hsadmin.core.model.Transaction; +import de.hsadmin.core.model.KindOfSelectableValue; public class ModulePropertiesRemote implements IRemote { @@ -51,22 +53,38 @@ public class ModulePropertiesRemote implements IRemote { ReadWriteAccess rw = fieldIO.rw(); propertyProperties.put("rw", rw.name()); String[] referredProps = fieldIO.referredProps(); - propertyProperties.put("referredProps", referredProps); - // Class declaringClass = f.getDeclaringClass(); - // declaringClass = f.getDeclaringClass(); + propertyProperties.put("referredProps", referredProps); for(String s : referredProps) { String fullPropertyName = fieldName+"."+s; propertiesList.add(createReferredPropertyInfo(fullPropertyName, f, s)); } - ArrayList> selectableValueslist = new ArrayList>(); - List selectableValues = fieldIO.selectableValues().newInstance().get(); - propertyProperties.put("selectableValues", selectableValueslist); - for( SelectableValue s : selectableValues) { - String SelectableValueName = s.getName(); - Object SelectableValues = s.getValues(); - Map m = new HashMap(); - m.put(SelectableValueName, SelectableValues); - selectableValueslist.add(m); + DefaultSelectableValues selectableValuesInstance = fieldIO.selectableValues().newInstance() ; + KindOfSelectableValue kind = selectableValuesInstance.getkind(); + HashMap kindMap = new HashMap(); + kindMap.put("kind", kind.name()); + switch (kind) { + case UNSPECIFIED : + break; + case SINGLESTRING : + propertyProperties.put("selectableValues", kindMap); + // ArrayList> selectableValueslist = new ArrayList>(); + // kindMap.put("values", selectableValueslist); + // List selectableValues = selectableValuesInstance.get(); + // TODO: Hier fehlt noch was! + break; + case DOMAINOPTIONS : + propertyProperties.put("selectableValues", kindMap); + ArrayList> selectableValueslist = new ArrayList>(); + kindMap.put("values", selectableValueslist); + List selectableValues = selectableValuesInstance.get(); + for( SelectableValue s : selectableValues) { + String SelectableValueName = s.getName(); + Object SelectableValues = s.getValues(); + Map m = new HashMap(); + m.put(SelectableValueName, SelectableValues); + selectableValueslist.add(m); + } + break; } addCommonPropertyInfo(propertyProperties, f); propertiesList.add(propertyProperties);