@Override public void execute(MutableModelNode modelNode, List<ModelView<?>> inputs) { NodeInitializerRegistry nodeInitializerRegistry = ModelViews.assertType(inputs.get(0), NodeInitializerRegistry.class).getInstance(); ManagedChildNodeCreatorStrategy<E> childStrategy = new ManagedChildNodeCreatorStrategy<E>(nodeInitializerRegistry); modelNode.setPrivateData(ChildNodeInitializerStrategy.class, childStrategy); }
private void addPropertyLinks( MutableModelNode modelNode, ModelSchemaStore schemaStore, NodeInitializerRegistry nodeInitializerRegistry) { for (ManagedProperty<?> property : bindings.getManagedProperties().values()) { addPropertyLink(modelNode, property, schemaStore, nodeInitializerRegistry); } if (isNamedType()) { // Only initialize "name" child node if the schema has such a managed property. // This is not the case for a managed subtype of an unmanaged type that implements Named. if (bindings.getManagedProperties().containsKey("name")) { MutableModelNode nameLink = modelNode.getLink("name"); if (nameLink == null) { throw new IllegalStateException("expected name node for " + modelNode.getPath()); } nameLink.setPrivateData(ModelType.of(String.class), modelNode.getPath().getName()); } } }