Exemplo n.º 1
0
  List<ObjectClassDefinition> constructObjectClasses(final OIDAllocator a)
      throws LDAPPersistException {
    final LinkedHashMap<String, ObjectClassDefinition> ocMap =
        new LinkedHashMap<String, ObjectClassDefinition>(1 + auxiliaryClasses.length);

    if (superclassHandler != null) {
      for (final ObjectClassDefinition d : superclassHandler.constructObjectClasses(a)) {
        ocMap.put(toLowerCase(d.getNameOrOID()), d);
      }
    }

    final String lowerStructuralClass = toLowerCase(structuralClass);
    if (!ocMap.containsKey(lowerStructuralClass)) {
      if (superclassHandler == null) {
        ocMap.put(
            lowerStructuralClass,
            constructObjectClass(structuralClass, "top", ObjectClassType.STRUCTURAL, a));
      } else {
        ocMap.put(
            lowerStructuralClass,
            constructObjectClass(
                structuralClass,
                superclassHandler.getStructuralClass(),
                ObjectClassType.STRUCTURAL,
                a));
      }
    }

    for (final String s : auxiliaryClasses) {
      final String lowerName = toLowerCase(s);
      if (!ocMap.containsKey(lowerName)) {
        ocMap.put(lowerName, constructObjectClass(s, "top", ObjectClassType.AUXILIARY, a));
      }
    }

    return Collections.unmodifiableList(new ArrayList<ObjectClassDefinition>(ocMap.values()));
  }