AttributeType findType(Class binding) {
      for (Schema schema : typeMappingProfiles) {
        for (Map.Entry<Name, AttributeType> e : schema.entrySet()) {
          AttributeType at = e.getValue();
          if (at.getBinding() != null && at.getBinding().equals(binding)) {
            return at;
          }
        }

        for (AttributeType at : schema.values()) {
          if (binding.isAssignableFrom(at.getBinding())) {
            return at;
          }
        }
      }
      return null;
    }
 @SuppressWarnings("unchecked")
 protected void importSchema(Schema schema) {
   for (Iterator it = schema.entrySet().iterator(); it.hasNext(); ) {
     Map.Entry entry = (Entry) it.next();
     Name key = (Name) entry.getKey();
     Object value = entry.getValue();
     if (typeRegistry.containsKey(key)) {
       LOGGER.finer(
           "Ignoring " + key + " as it already exists. type " + value.getClass().getName());
     } else {
       LOGGER.finer("Importing " + key + " of type " + value.getClass().getName());
       if (value instanceof AttributeType) {
         AttributeType type = (AttributeType) value;
         register(type, false);
       } else if (value instanceof AttributeDescriptor) {
         AttributeDescriptor descriptor = (AttributeDescriptor) value;
         register(descriptor);
       }
     }
   }
   LOGGER.fine("Schema " + schema.getURI() + " imported successfully");
 }
 /**
  * Specifies a number of attribute type bindings.
  *
  * @param schema The schema containing the attribute types.
  * @see {@link #addBinding(AttributeType)}.
  */
 public void addBindings(Schema schema) {
   for (Iterator<AttributeType> itr = schema.values().iterator(); itr.hasNext(); ) {
     AttributeType type = itr.next();
     addBinding(type);
   }
 }