Another step of handling the annotation of selectableValues.
This commit is contained in:
parent
5eb2e851a8
commit
24223ea0b7
@ -11,5 +11,6 @@ public @interface AnnFieldIO {
|
||||
String validation() default "[A-Za-z0-9\\_\\-]*";
|
||||
ReadWriteAccess rw() default ReadWriteAccess.WRITEONCE;
|
||||
Class<?> referTo() default Void.class;
|
||||
Class<? extends DefaultSelectableValues> selectableValues() default DefaultSelectableValues.class;
|
||||
String[] referredProps() default { };
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public class Domain extends AbstractEntity {
|
||||
@Column(name = "domain_dns_master", columnDefinition = "character varying(64)")
|
||||
private String dnsMaster;
|
||||
|
||||
@AnnFieldIO(validation="[a-zA-Z0-9\\-\\.]*", rw=ReadWriteAccess.READWRITE, referTo=DomainOption.class)
|
||||
@AnnFieldIO(validation="[a-zA-Z0-9\\-\\.]*", rw=ReadWriteAccess.READWRITE, referTo=DomainOption.class, selectableValues=DomainOptionValues.class)
|
||||
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.PERSIST)
|
||||
@JoinTable(name="domain__domain_option",
|
||||
joinColumns={@JoinColumn(name="domain_id", referencedColumnName="domain_id")},
|
||||
|
@ -13,6 +13,7 @@ import de.hsadmin.core.model.AnnFieldIO;
|
||||
import de.hsadmin.core.model.AuthenticationException;
|
||||
import de.hsadmin.core.model.HSAdminException;
|
||||
import de.hsadmin.core.model.ReadWriteAccess;
|
||||
import de.hsadmin.core.model.SelectableValue;
|
||||
import de.hsadmin.core.model.Transaction;
|
||||
|
||||
public class ModulePropertiesRemote implements IRemote {
|
||||
@ -42,7 +43,7 @@ public class ModulePropertiesRemote implements IRemote {
|
||||
for (Field f: entityClass.getDeclaredFields()) {
|
||||
HashMap<String, Object> propertyProperties = new HashMap<String, Object>();
|
||||
AnnFieldIO fieldIO = f.getAnnotation(AnnFieldIO.class);
|
||||
if (fieldIO != null){
|
||||
if (fieldIO != null) {
|
||||
String fieldName = f.getName();
|
||||
propertyProperties.put("property", fieldName);
|
||||
String regExp = fieldIO.validation();
|
||||
@ -53,11 +54,21 @@ public class ModulePropertiesRemote implements IRemote {
|
||||
propertyProperties.put("referredProps", referredProps);
|
||||
// Class<?> declaringClass = f.getDeclaringClass();
|
||||
// declaringClass = f.getDeclaringClass();
|
||||
for(String s : referredProps){
|
||||
for(String s : referredProps) {
|
||||
String fullPropertyName = fieldName+"."+s;
|
||||
propertiesList.add(createReferredPropertyInfo(fullPropertyName, f, s));
|
||||
}
|
||||
AddCommonPropertyInfo(propertyProperties, f);
|
||||
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);
|
||||
}
|
||||
addCommonPropertyInfo(propertyProperties, f);
|
||||
propertiesList.add(propertyProperties);
|
||||
}
|
||||
}
|
||||
@ -105,11 +116,11 @@ public class ModulePropertiesRemote implements IRemote {
|
||||
// trace = trace + " TF=" + field.getName();
|
||||
remainingPart = remainingPart.substring(indexOfDot + 1);
|
||||
}
|
||||
AddCommonPropertyInfo(result, field);
|
||||
addCommonPropertyInfo(result, field);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void AddCommonPropertyInfo(Map<String, Object> propertyInfo, Field sourceField) {
|
||||
private void addCommonPropertyInfo(Map<String, Object> propertyInfo, Field sourceField) {
|
||||
propertyInfo.put("type", sourceField.getType().getName());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user