From: Mathieu Baudier Date: Sun, 27 Oct 2019 09:15:32 +0000 (+0100) Subject: Introduce distinguished name interface. X-Git-Tag: argeo-commons-2.1.82~11 X-Git-Url: http://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=e4b44be13dde0ddc9acb794add1c9459e2483513 Introduce distinguished name interface. --- diff --git a/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java b/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java new file mode 100644 index 000000000..ba0db4955 --- /dev/null +++ b/org.argeo.enterprise/src/org/argeo/naming/Distinguished.java @@ -0,0 +1,23 @@ +package org.argeo.naming; + +import javax.naming.InvalidNameException; +import javax.naming.ldap.LdapName; + +/** + * An object that can be identified with an X.500 distinguished name. + * + * @see https://tools.ietf.org/html/rfc1779 + */ +public interface Distinguished { + /** The related distinguished name. */ + String dn(); + + /** The related distinguished name as an {@link LdapName}. */ + default LdapName distinguishedName() { + try { + return new LdapName(dn()); + } catch (InvalidNameException e) { + throw new IllegalArgumentException("Distinguished name " + dn() + " is not properly formatted.", e); + } + } +}