private static Class<? extends Component> getComponentClass( Map.Entry<String, Set<Class<? extends Component>>> entry) { Set<Class<? extends Component>> componentClasses = entry.getValue(); validateComponentClasses(entry.getKey(), componentClasses) .ifPresent(exceptionMessage -> { throw new IllegalStateException(exceptionMessage); }); return componentClasses.iterator().next(); }
/** * Adds new custom element tag name to class relation. * * @param elementName * custom element tag name * @param newClass * class with corresponding annotation */ void addElement(String elementName, Class<? extends Component> newClass) { elements.put(elementName, elements .computeIfAbsent(elementName, key -> Collections.singleton(newClass)) .stream() .map(oldClass -> extractNonRelatedClasses(oldClass, newClass)) .flatMap(Function.identity()).collect(Collectors.toSet())); }