NodeBackedModelMap.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:Reer 作者:
public static <T> ChildNodeInitializerStrategy<T> createUsingParentNode(final Transformer<? extends NamedEntityInstantiator<T>, ? super MutableModelNode> instantiatorTransform) {
    return new ChildNodeInitializerStrategy<T>() {
        @Override
        public <S extends T> NodeInitializer initializer(final ModelType<S> type, Spec<ModelType<?>> constraints) {
            return new NodeInitializer() {
                @Override
                public Multimap<ModelActionRole, ModelAction> getActions(ModelReference<?> subject, ModelRuleDescriptor descriptor) {
                    return ImmutableSetMultimap.<ModelActionRole, ModelAction>builder()
                        .put(ModelActionRole.Discover, AddProjectionsAction.of(subject, descriptor,
                            UnmanagedModelProjection.of(type),
                            new ModelElementProjection(type)
                        ))
                        .put(ModelActionRole.Create, DirectNodeNoInputsModelAction.of(subject, descriptor, new Action<MutableModelNode>() {
                            @Override
                            public void execute(MutableModelNode modelNode) {
                                NamedEntityInstantiator<T> instantiator = instantiatorTransform.transform(modelNode.getParent());
                                S item = instantiator.create(modelNode.getPath().getName(), type.getConcreteClass());
                                modelNode.setPrivateData(type, item);
                            }
                        }))
                        .build();
                }
            };
        }
    };
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号