@Override public boolean isAssignableTo(final Class type) { return beanDef.isAssignableTo(type); } };
@Override public boolean isAssignableTo(final Class<?> type) { return beanDef.isAssignableTo(type); }
public List<SyncBeanDef<Activity>> getPerspectiveActivities() { List<SyncBeanDef<Activity>> results = new ArrayList<>(); for (SyncBeanDef<Activity> beanDef : activitiesById.values()) { if (beanDef.isAssignableTo(PerspectiveActivity.class)) { results.add(beanDef); } } return results; }
public void init() { super.init(); Collection<SyncBeanDef<ResourceTypeDefinition>> resourceTypeDefs = iocManager.lookupBeans(ResourceTypeDefinition.class); List<SyncBeanDef<ResourceTypeDefinition>> clientResourceTypes = resourceTypeDefs.stream() .filter(def -> def.isAssignableTo(ClientResourceType.class)) .collect(Collectors.toList()); List<SyncBeanDef<ResourceTypeDefinition>> resourceTypes = resourceTypeDefs.stream() .filter(def -> !def.isAssignableTo(ClientResourceType.class)) .collect(Collectors.toList()); clientResourceTypes.stream() .forEach(clientResourceDef -> { for (Iterator<SyncBeanDef<ResourceTypeDefinition>> it = resourceTypes.iterator(); it.hasNext(); ) { SyncBeanDef<ResourceTypeDefinition> resourceDef = it.next(); if (clientResourceDef.isAssignableTo(resourceDef.getBeanClass())) { Optional<ExperimentalFeature> optional = getFeatureForResourceType(resourceDef, clientResourceDef); if (optional.isPresent()) { ExperimentalFeature feature = optional.get(); resourceTypeToExperimentalFeature.put(resourceDef.getBeanClass(), feature.getFeatureId()); resourceTypeToExperimentalFeature.put(clientResourceDef.getBeanClass(), feature.getFeatureId()); it.remove(); } } } }); }
public void init() { super.init(); Collection<SyncBeanDef<ResourceTypeDefinition>> resourceTypeDefs = iocManager.lookupBeans(ResourceTypeDefinition.class); List<SyncBeanDef<ResourceTypeDefinition>> clientResourceTypes = resourceTypeDefs.stream() .filter(def -> def.isAssignableTo(ClientResourceType.class)) .collect(Collectors.toList()); List<SyncBeanDef<ResourceTypeDefinition>> resourceTypes = resourceTypeDefs.stream() .filter(def -> !def.isAssignableTo(ClientResourceType.class)) .collect(Collectors.toList()); clientResourceTypes.stream() .forEach(clientResourceDef -> { for (Iterator<SyncBeanDef<ResourceTypeDefinition>> it = resourceTypes.iterator(); it.hasNext(); ) { SyncBeanDef<ResourceTypeDefinition> resourceDef = it.next(); if (clientResourceDef.isAssignableTo(resourceDef.getBeanClass())) { Optional<ExperimentalFeature> optional = getFeatureForResourceType(resourceDef, clientResourceDef); if (optional.isPresent()) { ExperimentalFeature feature = optional.get(); resourceTypeToExperimentalFeature.put(resourceDef.getBeanClass(), feature.getFeatureId()); resourceTypeToExperimentalFeature.put(clientResourceDef.getBeanClass(), feature.getFeatureId()); it.remove(); } } } }); }
private SyncBeanDef<?> createBeanDef(final Class resourceType, Object instance) { SyncBeanDef def = mock(SyncBeanDef.class); when(def.getBeanClass()).thenReturn(resourceType); when(def.getInstance()).thenReturn(instance); when(def.isAssignableTo(any())).thenAnswer((Answer<Boolean>) invocationOnMock -> { Class parentType = (Class) invocationOnMock.getArguments()[0]; return parentType.isAssignableFrom(resourceType); }); return def; } }
private SyncBeanDef<?> createBeanDef(final Class resourceType, Object instance) { SyncBeanDef def = mock(SyncBeanDef.class); when(def.getBeanClass()).thenReturn(resourceType); when(def.getInstance()).thenReturn(instance); when(def.isAssignableTo(any())).thenAnswer((Answer<Boolean>) invocationOnMock -> { Class parentType = (Class) invocationOnMock.getArguments()[0]; return parentType.isAssignableFrom(resourceType); }); return def; } }
@Before public void setUp() { perspectiveDropDown = new PerspectiveDropDown(activityBeansCache, liveSearchDropDown); SyncBeanDef mock1 = mock(SyncBeanDef.class); when(mock1.getName()).thenReturn("A"); when(mock1.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); SyncBeanDef mock2 = mock(SyncBeanDef.class); when(mock2.getName()).thenReturn("B"); when(mock2.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); when(activityBeansCache.getPerspectiveActivities()).thenReturn(Arrays.asList(mock1, mock2)); }
@Test public void getPerspectiveActivities() { SyncBeanDef mock1 = mock(SyncBeanDef.class); when(mock1.getName()).thenReturn("perspective2"); when(mock1.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); SyncBeanDef mock2 = mock(SyncBeanDef.class); when(mock2.getName()).thenReturn("screen"); when(mock2.isAssignableTo(PerspectiveActivity.class)).thenReturn(false); cache.addNewPerspectiveActivity(mock1); cache.addNewPerspectiveActivity(mock2); List<SyncBeanDef<Activity>> perspectiveActivities = cache.getPerspectiveActivities(); assertEquals(perspectiveActivities.size(), 1); } }
@Test public void getPerspectiveActivities() { SyncBeanDef mock1 = mock(SyncBeanDef.class); when(mock1.getName()).thenReturn("perspective2"); when(mock1.isAssignableTo(PerspectiveActivity.class)).thenReturn(true); SyncBeanDef mock2 = mock(SyncBeanDef.class); when(mock2.getName()).thenReturn("screen"); when(mock2.isAssignableTo(PerspectiveActivity.class)).thenReturn(false); cache.addNewPerspectiveActivity(mock1); cache.addNewPerspectiveActivity(mock2); List<SyncBeanDef<Activity>> perspectiveActivities = cache.getPerspectiveActivities(); assertEquals(perspectiveActivities.size(), 1); } }
@SuppressWarnings("unchecked") @Override public ListComponent provide(final Class<?>[] typeargs, final Annotation[] qualifiers) { final Annotation[] filteredQualifiers = filterQualifiers(qualifiers); final Optional<ListContainer> listContainer = getListContainer(qualifiers); final HTMLElement root = (HTMLElement) Document.get().createElement(listContainer.map(anno -> anno.value()).orElse("div")); final SyncBeanDef<?> beanDef = IOC.getBeanManager().lookupBean(typeargs[1], filteredQualifiers); final Supplier<?> supplier = () -> beanDef.getInstance(); final Consumer<?> destroyer = (!Dependent.class.equals(beanDef.getScope()) ? c -> {} : c -> IOC.getBeanManager().destroyBean(c)); final Function<?, HTMLElement> elementAccessor; if (beanDef.isAssignableTo(IsElement.class)) { elementAccessor = c -> ((IsElement) c).getElement(); } else if (beanDef.isAssignableTo(IsWidget.class)) { elementAccessor = c -> (HTMLElement) ((IsWidget) c).asWidget().getElement(); } else { throw new RuntimeException("Cannot create element accessor for " + beanDef.getType().getName() + ". Must implement IsElement or IsWidget."); } return new DefaultListComponent(root, supplier, destroyer, elementAccessor); }
@SuppressWarnings("unchecked") @Override public ListComponent provide(final Class<?>[] typeargs, final Annotation[] qualifiers) { final Annotation[] filteredQualifiers = filterQualifiers(qualifiers); final Optional<ListContainer> listContainer = getListContainer(qualifiers); final HTMLElement root = (HTMLElement) Document.get().createElement(listContainer.map(anno -> anno.value()).orElse("div")); final SyncBeanDef<?> beanDef = IOC.getBeanManager().lookupBean(typeargs[1], filteredQualifiers); final Supplier<?> supplier = () -> beanDef.getInstance(); final Consumer<?> destroyer = (!Dependent.class.equals(beanDef.getScope()) ? c -> {} : c -> IOC.getBeanManager().destroyBean(c)); final Function<?, HTMLElement> elementAccessor; if (beanDef.isAssignableTo(IsElement.class)) { elementAccessor = c -> ((IsElement) c).getElement(); } else if (beanDef.isAssignableTo(IsWidget.class)) { elementAccessor = c -> (HTMLElement) ((IsWidget) c).asWidget().getElement(); } else { throw new RuntimeException("Cannot create element accessor for " + beanDef.getType().getName() + ". Must implement IsElement or IsWidget."); } return new DefaultListComponent(root, supplier, destroyer, elementAccessor); }