static LayerRefinedObjectClassDefinition wrap(RefinedObjectClassDefinition rOCD, LayerType layer) { if (rOCD == null) { return null; } return new LayerRefinedObjectClassDefinitionImpl(rOCD, layer); }
@Override public String debugDump() { return debugDump(0); }
@NotNull @Override public List<? extends ItemDefinition> getDefinitions() { return getAttributeDefinitions(); }
@Override public LayerRefinedObjectClassDefinition forLayer(@NotNull LayerType layerType) { return LayerRefinedObjectClassDefinitionImpl.wrap(this, layerType); }
@Override public <X> LayerRefinedAttributeDefinition<X> getDescriptionAttribute() { // TODO optimize return substituteLayerRefinedAttributeDefinition(refinedObjectClassDefinition.getDescriptionAttribute()); }
@NotNull @Override public Collection<? extends LayerRefinedAttributeDefinition<?>> getPrimaryIdentifiers() { return substituteLayerRefinedAttributeDefinitionCollection(refinedObjectClassDefinition.getPrimaryIdentifiers()); }
public List<? extends RefinedObjectClassDefinition> getRefinedDefinitions(ShadowKindType kind) { return LayerRefinedObjectClassDefinitionImpl .wrapCollection(refinedResourceSchema.getRefinedDefinitions(kind), layer); }
private <X> LayerRefinedAttributeDefinition<X> substituteLayerRefinedAttributeDefinition(ResourceAttributeDefinition<?> attributeDef) { return findAttributeDefinition(attributeDef.getName()); }
/** * Creates a derived version of this ROCD for a given layer. * TODO clone if necessary/if specified (currently there is no cloning) * * @param layerType * @return */ @Override public LayerRefinedObjectClassDefinition forLayer(@NotNull LayerType layerType) { Validate.notNull(layerType); return LayerRefinedObjectClassDefinitionImpl.wrap(this, layerType); }
@Override public <X> LayerRefinedAttributeDefinition<X> getDisplayNameAttribute() { return substituteLayerRefinedAttributeDefinition(refinedObjectClassDefinition.getDisplayNameAttribute()); }
@Override public Collection<? extends LayerRefinedAttributeDefinition<?>> getAllIdentifiers() { return substituteLayerRefinedAttributeDefinitionCollection(refinedObjectClassDefinition.getAllIdentifiers()); }
static List<? extends LayerRefinedObjectClassDefinition> wrapCollection(Collection<? extends RefinedObjectClassDefinition> rOCDs, LayerType layer) { return(rOCDs.stream() .map(rAccountDef -> wrap(rAccountDef, layer)) .collect(Collectors.toCollection(() -> new ArrayList<>(rOCDs.size())))); }
@Override public <X> LayerRefinedAttributeDefinition<X> getNamingAttribute() { return substituteLayerRefinedAttributeDefinition(refinedObjectClassDefinition.getNamingAttribute()); }
@Override public <X> LayerRefinedAttributeDefinition<X> findAttributeDefinition(@NotNull QName elementQName) { for (LayerRefinedAttributeDefinition definition : getAttributeDefinitions()) { if (QNameUtil.match(definition.getName(), elementQName)) { return definition; } } return null; }
@NotNull @Override public RefinedObjectClassDefinition deepClone(Map<QName, ComplexTypeDefinition> ctdMap, Map<QName, ComplexTypeDefinition> onThisPath, Consumer<ItemDefinition> postCloneAction) { return new LayerRefinedObjectClassDefinitionImpl(refinedObjectClassDefinition.deepClone(ctdMap, onThisPath, postCloneAction), layer); }
@Override public LayerRefinedObjectClassDefinition getDefaultRefinedDefinition(ShadowKindType kind) { return LayerRefinedObjectClassDefinitionImpl .wrap(refinedResourceSchema.getDefaultRefinedDefinition(kind), layer); }
@Override public LayerRefinedObjectClassDefinition getRefinedDefinition(ShadowKindType kind, ShadowType shadow) { return LayerRefinedObjectClassDefinitionImpl .wrap(refinedResourceSchema.getRefinedDefinition(kind, shadow), layer); }
@Override public LayerRefinedObjectClassDefinition getRefinedDefinition(ShadowKindType kind, String intent) { return LayerRefinedObjectClassDefinitionImpl .wrap(refinedResourceSchema.getRefinedDefinition(kind, intent), layer); }
@Override public LayerRefinedObjectClassDefinition getRefinedDefinition(QName typeName) { return LayerRefinedObjectClassDefinitionImpl .wrap(refinedResourceSchema.getRefinedDefinition(typeName), layer); }
@NotNull @Override public LayerRefinedObjectClassDefinition clone() { return wrap(refinedObjectClassDefinition.clone(), this.layer); }