/** * Bind Scope Annotation if the Scope name is a Scope Annotation. * For example: Toothpick.openScope(MyScopeAnnotation.class) */ private void bindScopeAnnotationIfNameIsScopeAnnotation() { if (name.getClass() == Class.class // && Annotation.class.isAssignableFrom((Class) name) // && isScopeAnnotationClass((Class<? extends Annotation>) name)) { bindScopeAnnotation((Class<? extends Annotation>) name); } }
@Test public void testReset_shouldClearBoundAnnotations_andFlagTheScopeAsOpen() throws Exception { //GIVEN ScopeNode scope = new ScopeImpl("root"); scope.bindScopeAnnotation(CustomScope.class); scope.close(); //WHEN scope.reset(); //THEN assertThat(scope.isBoundToScopeAnnotation(CustomScope.class), is(false)); assertThat(scope.isOpen, is(true)); }
public ScopeNode(Object name) { if (name == null) { throw new IllegalArgumentException("A scope can't have a null name"); } this.name = name; if (name.getClass() == Class.class // && Annotation.class.isAssignableFrom((Class) name) // && isScopeAnnotationClass((Class<? extends Annotation>) name)) { bindScopeAnnotation((Class<? extends Annotation>) name); } }
/** * Bind Scope Annotation if the Scope name is a Scope Annotation. * For example: Toothpick.openScope(MyScopeAnnotation.class) */ private void bindScopeAnnotationIfNameIsScopeAnnotation() { if (name.getClass() == Class.class // && Annotation.class.isAssignableFrom((Class) name) // && isScopeAnnotationClass((Class<? extends Annotation>) name)) { bindScopeAnnotation((Class<? extends Annotation>) name); } }