From c5c575c095248791d95b604efc439a8a8212d5a8 Mon Sep 17 00:00:00 2001 From: Purodha <bli00@hostsharing.net> Date: Wed, 20 Feb 2013 17:37:14 +0100 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 --- hsarback/src/de/hsadmin/core/model/DefaultSelectableValues.java | 9 +++- hsarback/src/de/hsadmin/remote/ModulePropertiesRemote.java | 42 +++++++++++++++------ hsarback/src/de/hsadmin/core/model/KindOfSelectableValue.java | 5 ++ hsarback/src/de/hsadmin/mods/dom/DomainOptionValues.java | 6 +++ 4 files changed, 47 insertions(+), 15 deletions(-) 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 @@ public class DefaultSelectableValues { - public List<SelectableValue> get() { - return new ArrayList<SelectableValue>(); - } + public KindOfSelectableValue getkind() { + return KindOfSelectableValue.UNSPECIFIED; + } + public List<SelectableValue> get() { + return new ArrayList<SelectableValue>(); + } } 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,11 +5,17 @@ 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<SelectableValue> get() { ArrayList<SelectableValue> list = new ArrayList<SelectableValue>(); list.add(new BooleanListValue("backupmxforexternalmx")); 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 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 @@ 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<Map<String,Object>> selectableValueslist = new ArrayList<Map<String,Object>>(); - List<SelectableValue> selectableValues = fieldIO.selectableValues().newInstance().get(); - propertyProperties.put("selectableValues", selectableValueslist); - for( SelectableValue s : selectableValues) { - String SelectableValueName = s.getName(); - Object SelectableValues = s.getValues(); - Map<String, Object> m = new HashMap<String, Object>(); - m.put(SelectableValueName, SelectableValues); - selectableValueslist.add(m); + DefaultSelectableValues selectableValuesInstance = fieldIO.selectableValues().newInstance() ; + KindOfSelectableValue kind = selectableValuesInstance.getkind(); + HashMap<String,Object> kindMap = new HashMap<String,Object>(); + kindMap.put("kind", kind.name()); + switch (kind) { + case UNSPECIFIED : + break; + case SINGLESTRING : + propertyProperties.put("selectableValues", kindMap); + // ArrayList<Map<String,String>> selectableValueslist = new ArrayList<Map<String,String>>(); + // kindMap.put("values", selectableValueslist); + // List<SelectableValue> selectableValues = selectableValuesInstance.get(); + // TODO: Hier fehlt noch was! + break; + case DOMAINOPTIONS : + propertyProperties.put("selectableValues", kindMap); + ArrayList<Map<String,Object>> selectableValueslist = new ArrayList<Map<String,Object>>(); + kindMap.put("values", selectableValueslist); + List<SelectableValue> selectableValues = selectableValuesInstance.get(); + for( SelectableValue s : selectableValues) { + String SelectableValueName = s.getName(); + Object SelectableValues = s.getValues(); + Map<String, Object> m = new HashMap<String, Object>(); + m.put(SelectableValueName, SelectableValues); + selectableValueslist.add(m); + } + break; } addCommonPropertyInfo(propertyProperties, f); propertiesList.add(propertyProperties); -- Gitblit v1.9.0-SNAPSHOT