package schematest; import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; /** * Lists all required attributes for an entry of an object class. Iteration * includes superclasses. * * Requires a valid jndi.properties to run. * Intended to demonstrate JIRA DIREVE-227 * * @author szoerner */ public class RequiredAttributesForAnEntry { public static void main(String[] args) throws NamingException { InitialDirContext ctx = new InitialDirContext(); DirContext schema = ctx.getSchema(""); DirContext allClasses = (DirContext) schema.lookup("ClassDefinition"); String oc = "person"; do { Attributes attrs = allClasses.getAttributes(oc); Attribute must = attrs.get("MUST"); if (must != null) { for (int i = 0; i < must.size(); ++i) { System.out.println(oc + " requires " + must.get(i)); } } Attribute sup = attrs.get("SUP"); oc = (String) ((sup != null) ? sup.get() : null); } while (oc != null); } }