Move qualified name to JCR bundle
[lgpl/argeo-commons.git] / org.argeo.enterprise / src / org / argeo / naming / LdapAttrs.java
index 29f6e005f5933beca663f0b7cdf4cf3c3cf3a1c3..cfabeb7d6e9a4905af87c32f230534b819656caa 100644 (file)
@@ -1,11 +1,13 @@
 package org.argeo.naming;
 
 /**
- * Standard LDAP attributes as per
- * <a href="https://www.ldap.com/ldap-oid-reference">https://www.ldap.com/ldap-
- * oid-reference</a>
+ * Standard LDAP attributes as per:<br>
+ * - <a href= "https://www.ldap.com/ldap-oid-reference">Standard LDAP</a><br>
+ * - <a href=
+ * "https://github.com/krb5/krb5/blob/master/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema">Kerberos
+ * LDAP (partial)</a>
  */
-public enum LdapAttrs implements SpecifiedName{
+public enum LdapAttrs implements SpecifiedName {
        /** */
        uid("0.9.2342.19200300.100.1.1", "RFC 4519"),
        /** */
@@ -263,11 +265,30 @@ public enum LdapAttrs implements SpecifiedName{
        /** */
        userPKCS12("2.16.840.1.113730.3.1.216", "RFC 2798"),
        /** */
-       displayName("2.16.840.1.113730.3.1.241", "RFC 2798");
+       displayName("2.16.840.1.113730.3.1.241", "RFC 2798"),
+
+       // Sun memberOf
+       memberOf("1.2.840.113556.1.2.102", "389 DS memberOf"),
+
+       // KERBEROS (partial)
+       krbPrincipalName("2.16.840.1.113719.1.301.6.8.1", "Novell Kerberos Schema Definitions"),
+
+       // RFC 2985 and RFC 3039 (partial)
+       dateOfBirth("1.3.6.1.5.5.7.9.1", "RFC 2985"),
+       /** */
+       placeOfBirth("1.3.6.1.5.5.7.9.2", "RFC 2985"),
+       /** */
+       gender("1.3.6.1.5.5.7.9.3", "RFC 2985"),
+       /** */
+       countryOfCitizenship("1.3.6.1.5.5.7.9.4", "RFC 2985"),
+       /** */
+       countryOfResidence("1.3.6.1.5.5.7.9.5", "RFC 2985"),
+       //
+       ;
 
        public final static String DN = "dn";
 
-       private final static String LDAP_ = "ldap:";
+//     private final static String LDAP_ = "ldap:";
 
        private final String oid, spec;
 
@@ -286,8 +307,35 @@ public enum LdapAttrs implements SpecifiedName{
                return spec;
        }
 
+       public String getPrefix() {
+               return prefix();
+       }
+
+       public static String prefix() {
+               return "ldap";
+       }
+
        public String property() {
-               return new StringBuilder(LDAP_).append(name()).toString();
+               return qualified();
+       }
+
+       public String qualified() {
+               String prefix = getPrefix();
+               return prefix != null ? prefix + ":" + name() : name();
+       }
+
+       public String getNamespace() {
+               return namespace();
+       }
+
+       public static String namespace() {
+               return "http://www.argeo.org/ns/ldap";
+       }
+
+       @Override
+       public final String toString() {
+               // must return the name
+               return name();
        }
 
 }