@Override public <T extends ItemDefinition> T findLocalItemDefinition(@NotNull QName name, @NotNull Class<T> clazz, boolean caseInsensitive) { for (ItemDefinition def : getDefinitions()) { if (def.isValidFor(name, clazz, caseInsensitive)) { return (T) def; } } return null; }
} else { seen.put(this, null); for (ItemDefinition def : getDefinitions()) { sb.append("\n"); sb.append(def.debugDump(indent + 1));
public <ID extends ItemDefinition> ID findNamedItemDefinition(@NotNull QName firstName, @NotNull ItemPath rest, @NotNull Class<ID> clazz) { ID found = null; for (ItemDefinition def : getDefinitions()) { if (def.isValidFor(firstName, clazz, false)) { if (found != null) { throw new IllegalStateException("More definitions found for " + firstName + "/" + rest + " in " + this); } found = (ID) def.findItemDefinition(rest, clazz); if (QNameUtil.hasNamespace(firstName)) { return found; // if qualified then there's no risk of matching more entries } } } if (found != null) { return found; } if (isXsdAnyMarker()) { SchemaRegistry schemaRegistry = getSchemaRegistry(); if (schemaRegistry != null) { ItemDefinition def = schemaRegistry.findItemDefinitionByElementName(firstName); if (def != null) { return (ID) def.findItemDefinition(rest, clazz); } } } return null; } //endregion