本文整理汇总了Java中io.nuun.kernel.api.plugin.context.InitContext类的典型用法代码示例。如果您正苦于以下问题:Java InitContext类的具体用法?Java InitContext怎么用?Java InitContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
InitContext类属于io.nuun.kernel.api.plugin.context包,在下文中一共展示了InitContext类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: initialize
import io.nuun.kernel.api.plugin.context.InitContext; //导入依赖的package包/类
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public InitState initialize(InitContext initContext) {
Map<Specification, Collection<Class<?>>> classesBySpec = initContext.scannedTypesBySpecification();
streamClasses(classesBySpec.get(BusinessSpecifications.EXPLICIT_ASSEMBLER), Assembler.class).forEach(
assemblerClasses::add);
LOGGER.debug("Assemblers => {}", assemblerClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.DEFAULT_ASSEMBLER), Assembler.class).forEach(
defaultAssemblerClasses::add);
LOGGER.debug("Default assemblers => {}", defaultAssemblerClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.DTO_OF), Object.class).forEach(dtoOfClasses::add);
LOGGER.debug("DTO classes mappable with default assemblers => {}", dtoOfClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.DTO_INFO_RESOLVER), DtoInfoResolver.class).forEach(
dtoInfoResolverClasses::add);
sortByPriority(dtoInfoResolverClasses);
LOGGER.debug("DTO info resolvers => {}", dtoInfoResolverClasses);
// Add bindings for explicit assemblers
bindings.putAll(associateInterfaceToImplementations(Assembler.class, assemblerClasses, false));
overridingBindings.putAll(associateInterfaceToImplementations(Assembler.class, assemblerClasses, true));
// Then add bindings for default assemblers
bindingStrategies.addAll(new DefaultAssemblerCollector(getApplication(), bindings, defaultAssemblerClasses)
.collect(dtoOfClasses)
);
return InitState.INITIALIZED;
}
开发者ID:seedstack,项目名称:business,代码行数:33,代码来源:AssemblerPlugin.java
示例2: initialize
import io.nuun.kernel.api.plugin.context.InitContext; //导入依赖的package包/类
@Override
public InitState initialize(InitContext initContext) {
Map<Specification, Collection<Class<?>>> classesBySpec = initContext.scannedTypesBySpecification();
streamClasses(classesBySpec.get(BusinessSpecifications.SPECIFICATION_TRANSLATOR),
SpecificationTranslator.class).forEach(specificationTranslatorClasses::add);
LOGGER.debug("Specification translator classes => {}", specificationTranslatorClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.SPECIFICATION_CONVERTER),
SpecificationConverter.class).forEach(specificationConverterClasses::add);
LOGGER.debug("Specification converter classes => {}", specificationConverterClasses);
return InitState.INITIALIZED;
}
开发者ID:seedstack,项目名称:business,代码行数:15,代码来源:SpecificationPlugin.java
示例3: initialize
import io.nuun.kernel.api.plugin.context.InitContext; //导入依赖的package包/类
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public InitState initialize(InitContext initContext) {
Map<Specification, Collection<Class<?>>> classesBySpec = initContext.scannedTypesBySpecification();
streamClasses(classesBySpec.get(BusinessSpecifications.DATA_IMPORTER), DataImporter.class)
.filter(importerClass -> !DefaultDataImporter.class.isAssignableFrom(importerClass))
.forEach(importerClasses::add);
LOGGER.debug("Data importers => {}", importerClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.DATA_EXPORTER), DataExporter.class)
.filter(exporterClass -> !DefaultDataExporter.class.isAssignableFrom(exporterClass))
.forEach(exporterClasses::add);
LOGGER.debug("Data exporters => {}", exporterClasses);
streamClasses(classesBySpec.get(BusinessSpecifications.DATA_SET), Object.class).forEach(
dataClasses::add);
LOGGER.debug("DTO classes with default importer/exporter => {}", dataClasses);
// Add bindings for explicit data importers/exporters
bindings.putAll(associateInterfaceToImplementations(DataImporter.class, importerClasses, false));
overridingBindings.putAll(associateInterfaceToImplementations(DataImporter.class, importerClasses, true));
bindings.putAll(associateInterfaceToImplementations(DataExporter.class, exporterClasses, false));
overridingBindings.putAll(associateInterfaceToImplementations(DataExporter.class, exporterClasses, true));
Set<Class<?>> classesWithExplicitImporter = importerClasses.stream()
.map(importerClass -> (Class<?>) BusinessUtils.resolveGenerics(DataImporter.class, importerClass)[0])
.collect(toSet());
Set<Class<?>> classesWithExplicitExporter = exporterClasses.stream()
.map(exporterClass -> (Class<?>) BusinessUtils.resolveGenerics(DataExporter.class, exporterClass)[0])
.collect(toSet());
// Then add bindings for default data importers/exporters
bindingStrategies.addAll(new DefaultDataCollector(classesWithExplicitImporter, classesWithExplicitExporter)
.collect(dataClasses));
buildImporterDefs(classesWithExplicitImporter);
buildExporterDefs(classesWithExplicitExporter);
return InitState.INITIALIZED;
}
开发者ID:seedstack,项目名称:business,代码行数:42,代码来源:DataPlugin.java
示例4: initialize
import io.nuun.kernel.api.plugin.context.InitContext; //导入依赖的package包/类
@Override
public InitState initialize(InitContext initContext) {
return InitState.INITIALIZED;
}
开发者ID:seedstack,项目名称:business,代码行数:5,代码来源:PaginatorPlugin.java
示例5: associateInterfacesToImplementations
import io.nuun.kernel.api.plugin.context.InitContext; //导入依赖的package包/类
/**
* Associates scanned interfaces to their implementations. It also handles qualified bindings in
* the case where there is multiple implementation for the same interface. <p> This is the
* "default mode" for binding in the business framework. </p>
*
* @param initContext the context containing the implementations.
* @param interfaces the interfaces to bind.
* @param specsByInterface the specifications used to scan implementations, indexed by
* interfaces.
* @param overridingMode if true, only implementations that satisfy {@link
* #isOverridingImplementation()} are bound, if false only implementations
* that don't satisfy {@link #isOverridingImplementation()} are bound.
* @param <T> supertype of all interfaces to bind.
* @return the map of interface/implementation to bind.
* @see BindingUtils#resolveBindingDefinitions(Class, Class, Class[])
*/
@SuppressWarnings("unchecked")
public static <T extends Class> Map<Key<T>, ? extends T> associateInterfacesToImplementations(
InitContext initContext, Collection<T> interfaces, Map<T, Specification<? extends T>> specsByInterface,
boolean overridingMode) {
Map<Key<T>, ? extends T> keyMap = new HashMap<>();
for (T anInterface : interfaces) {
keyMap.putAll(associateInterfaceToImplementations(anInterface, initContext.scannedTypesBySpecification()
.get(specsByInterface.get(anInterface)), overridingMode));
}
return keyMap;
}
开发者ID:seedstack,项目名称:business,代码行数:29,代码来源:PluginUtils.java
注:本文中的io.nuun.kernel.api.plugin.context.InitContext类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论