static Optional<NamedComponent<RestxRouter>> getRouterByName(Factory f, String routerName) { routerName = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, routerName); Optional<NamedComponent<RestxRouter>> router = Optional.absent(); ImmutableList<String> suffixes = ImmutableList.of("ResourceRouter", "", "Resource", "Router"); for (int i = 0; i < suffixes.size() && !router.isPresent(); i++) { router = f.queryByName(Name.of(RestxRouter.class, routerName + suffixes.get(i))).optional().findOne(); } return router; }
static Optional<NamedComponent<RestxRouter>> getRouterByName(Factory f, String routerName) { routerName = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, routerName); Optional<NamedComponent<RestxRouter>> router = Optional.absent(); ImmutableList<String> suffixes = ImmutableList.of("ResourceRouter", "", "Resource", "Router"); for (int i = 0; i < suffixes.size() && !router.isPresent(); i++) { router = f.queryByName(Name.of(RestxRouter.class, routerName + suffixes.get(i))).optional().findOne(); } return router; }
@Override protected Set<NamedComponent<T>> doFind() { Set<NamedComponent<T>> components = Sets.newTreeSet(NAMED_COMPONENT_COMPARATOR); Factory factory = factory(); for (Name<T> tName : factory.collectAllBuildableNames(componentClass)) { components.addAll(factory.queryByName(tName).optional().find()); } return components; }
Collection<Class> coldClasses = new HashSet<>(); for (Name<?> name : factory.getWarehouse().listNames()) { Optional<?> c = factory.queryByName(name).findOneAsComponent(); if (c.isPresent()) {
Collection<Class> coldClasses = new HashSet<>(); for (Name<?> name : factory.getWarehouse().listNames()) { Optional<?> c = factory.queryByName(name).findOneAsComponent(); if (c.isPresent()) {
private <T> boolean checkActive(Name<T> name) { if (name.getClazz() == String.class && name.getName().startsWith("restx.activation::")) { // can't deactivate activation keys themselves return true; } // check 'cache' for perf reasons - core Factory being immutable the 'cache' never needs to be invalidated if (deactivatedComponents.contains(name)) { return false; } if (activatedComponents.contains(name)) { return true; } // actual check Class<?> aClass = name.getClazz(); while (aClass != null) { if ("false".equals(queryByName(Name.of(String.class, activationKey(aClass, name.getName()))) .findOneAsComponent().or("true"))) { deactivatedComponents.add(name); return false; } aClass = aClass.getSuperclass(); } activatedComponents.add(name); return true; }
/** * Builds a component by name. * * This is a shortcut for queryByName(name).mandatory().findOneAsComponent().get() * * Therefore it raises an exception if no component of this name is found. * * @param componentName * @param <T> * @return */ public <T> T getComponent(Name<T> componentName) { return checkPresent(queryByName(componentName).mandatory().findOneAsComponent(), "component of name %s not found", componentName); }