@SafeVarargs @SuppressWarnings("unchecked") public FactoryPolymorphicReferenceAttribute(Class<L> liveObjectClass, Class<? extends PolymorphicFactory<?>>... possibleFactoriesClasses) { super(); setup(liveObjectClass,possibleFactoriesClasses); this.validation(requiredValidation); }
public ApplicationServerResourceFactory(){ configLiveCycle().setCreator(() -> { Predicate<Optional<AuthorizedUser>> authorizedKeyUserEvaluator = this.authorizedKeyUserEvaluator.get(); if (authorizedKeyUserEvaluator==null) { authorizedKeyUserEvaluator=(u)->true; } UserManagement userManagementInstance = userManagement.instance(); if (userManagementInstance==null) { userManagementInstance=new NoUserManagement(); } return new ApplicationServerResource<>(applicationServer.get(), userManagementInstance, authorizedKeyUserEvaluator); }); config().setDisplayTextProvider(()->"Resource"); } }
for (Class<? extends FactoryBase> possibleClazz: (List<Class>)factoryReferenceAttribute.internal_possibleFactoriesClasses()){ if (context.anyMatch(possibleClazz)){ factoryReferenceAttribute.set(context.get(possibleClazz)); break;
/** * workaround: if possibleFactoriesClasses has generic parameter the normal setup method doesn't work * @param liveObjectClass liveObjectClass * @param possibleFactoriesClasses possibleFactoriesClasses * @return self */ @SuppressWarnings("unchecked") @SafeVarargs public final FactoryPolymorphicReferenceAttribute<L> setupUnsafe(Class liveObjectClass, Class... possibleFactoriesClasses){ this.possibleFactoriesClasses=Arrays.asList(possibleFactoriesClasses); for (Class clazz: possibleFactoriesClasses){ if (!FactoryBase.class.isAssignableFrom(clazz)){ throw new IllegalArgumentException("parameter must be a factory: "+clazz); } } return setup(liveObjectClass,possibleFactoriesClasses); }
@SuppressWarnings("unchecked") public MicroserviceResourceFactory(){ configLifeCycle().setCreator(() -> { Predicate<Optional<AuthorizedUser>> authorizedKeyUserEvaluator = this.authorizedKeyUserEvaluator.get(); if (authorizedKeyUserEvaluator==null) { authorizedKeyUserEvaluator=(u)->true; } UserManagement userManagementInstance = userManagement.instance(); if (userManagementInstance==null) { userManagementInstance=new NoUserManagement(); } Microservice<V, ?, R, S> microservice = (Microservice<V, ?, R, S>)utilityFactory().getMicroservice(); return new MicroserviceResource<>(microservice, userManagementInstance,authorizedKeyUserEvaluator,emptyVisitorCreator.get()); }); config().setDisplayTextProvider(()->"Resource"); } }