@Override public void replaceDefinition(QName itemName, ItemDefinition newDefinition) { ComplexTypeDefinition originalComplexTypeDefinition = getComplexTypeDefinition(); ComplexTypeDefinition cloneComplexTypeDefinition = originalComplexTypeDefinition.clone(); setComplexTypeDefinition(cloneComplexTypeDefinition); ((ComplexTypeDefinitionImpl) cloneComplexTypeDefinition).replaceDefinition(itemName, newDefinition); }
/** * Merge provided definition into this definition. */ @Override public void merge(ComplexTypeDefinition otherComplexTypeDef) { for (ItemDefinition otherItemDef: otherComplexTypeDef.getDefinitions()) { ItemDefinition existingItemDef = findItemDefinition(otherItemDef.getName()); if (existingItemDef != null) { LOGGER.warn("Overwriting existing definition {} by {} (in {})", existingItemDef, otherItemDef, this); replaceDefinition(otherItemDef.getName(), otherItemDef.clone()); } else { add(otherItemDef.clone()); } } }