package org.argeo.security;
-public interface UserNature {
+import java.util.UUID;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codehaus.jackson.annotate.JsonAnySetter;
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.annotate.JsonCreator;
+import org.codehaus.jackson.annotate.JsonMethod;
+
+//@JsonAutoDetect(value = { JsonMethod.GETTER, JsonMethod.SETTER })
+public class UserNature {
+ private final static Log log = LogFactory.getLog(UserNature.class);
+
+ private String uuid = UUID.randomUUID().toString();
+ private String type;
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public String getType() {
+ if (type != null)
+ return type;
+ else
+ return getClass().getName();
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @JsonAnySetter
+ public void anySetter(String key, Object obj) {
+ if (obj != null)
+ log.info("anySetter: " + key + "=" + obj + " (" + obj.getClass()
+ + "), natureType=" + type);
+ }
+
+ @JsonCreator
+ public static Object valueOf(String str) {
+ log.info("create: " + str);
+ return new UserNature();
+ }
}