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