当前位置: 首页>>代码示例>>Java>>正文


Java Scope类代码示例

本文整理汇总了Java中javax.inject.Scope的典型用法代码示例。如果您正苦于以下问题:Java Scope类的具体用法?Java Scope怎么用?Java Scope使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Scope类属于javax.inject包,在下文中一共展示了Scope类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: annotationWithoutValueMethod

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void annotationWithoutValueMethod() {
	Annotation annotation = Singleton.class.getAnnotation(Scope.class);
	cache.getQualifier(annotation);

	InOrder inOrder = inOrder(lock, cache);

	// initial call
	inOrder.verify(cache).getQualifier(annotation);

	// internal thread safe method lookup
	inOrder.verify(cache).getValueMethodThreadSafe(Scope.class);
	inOrder.verify(lock).lock();
	inOrder.verify(cache).getValueMethod(Scope.class);
	inOrder.verify(lock).unlock();
	// no value Method found, so no invocation needed

	inOrder.verifyNoMoreInteractions();
	verifyZeroInteractions(cache);
	assertThat(bindActionMap.size(), is(1));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:22,代码来源:QualifierCacheTests.java

示例2: getScopeName

import javax.inject.Scope; //导入依赖的package包/类
/**
 * Lookup {@link javax.inject.Scope} annotated annotations to provide the name of the scope the {@code typeElement} belongs to.
 * The method logs an error if the {@code typeElement} has multiple scope annotations.
 *
 * @param typeElement the element for which a scope is to be found.
 * @return the scope of this {@code typeElement} or {@code null} if it has no scope annotations.
 */
private String getScopeName(TypeElement typeElement) {
  String scopeName = null;
  for (AnnotationMirror annotationMirror : typeElement.getAnnotationMirrors()) {
    TypeElement annotationTypeElement = (TypeElement) annotationMirror.getAnnotationType().asElement();
    if (annotationTypeElement.getAnnotation(Scope.class) != null) {
      checkScopeAnnotationValidity(annotationTypeElement);
      if (scopeName != null) {
        error(typeElement, "Only one @Scope qualified annotation is allowed : %s", scopeName);
      }
      scopeName = annotationTypeElement.getQualifiedName().toString();
    }
  }

  return scopeName;
}
 
开发者ID:stephanenicolas,项目名称:toothpick,代码行数:23,代码来源:FactoryProcessor.java

示例3: findScope

import javax.inject.Scope; //导入依赖的package包/类
/**
 * Finds the scope for a bean producing declaration, either a method or
 * a type.
 */
private <T> InjectScope<T> findScope(AnnotatedElement annElement)
{
  for (Annotation ann : annElement.getAnnotations()) {
    Class<? extends Annotation> annType = ann.annotationType();

    if (annType.isAnnotationPresent(Scope.class)) {
      Supplier<InjectScope<T>> scopeGen = (Supplier) _scopeMap.get(annType);

      if (scopeGen != null) {
        return scopeGen.get();
      }
      else {
        log.fine(L.l("@{0} is an unknown scope", annType.getSimpleName()));
      }
    }
  }

  return new InjectScopeFactory<>();
}
 
开发者ID:baratine,项目名称:baratine,代码行数:24,代码来源:InjectorImpl.java

示例4: scope

import javax.inject.Scope; //导入依赖的package包/类
@Override
public BindingBuilderImpl<T> scope(Class<? extends Annotation> scopeType)
{
  Objects.requireNonNull(scopeType);

  if (! scopeType.isAnnotationPresent(Scope.class)) {
    throw error("'@{0}' is an invalid scope type because it is not annotated with @Scope",
                scopeType.getSimpleName());
  }

  if (_scopeMap.get(scopeType) == null) {
    throw error("'@{0}' is an unsupported scope. Only @Singleton and @Factory are supported.",
                scopeType.getSimpleName());

  }

  _scopeType = scopeType;

  return this;
}
 
开发者ID:baratine,项目名称:baratine,代码行数:21,代码来源:InjectorBuilderImpl.java

示例5: getModuleScope

import javax.inject.Scope; //导入依赖的package包/类
/**
 * Returns the scope of this module, null for unscoped modules. Dagger requires that each module
 * can only contain no more than one scope type of scoped binding. Unscoped bindings are not
 * limited.
 * TODO(freeman): supported included modules.
 */
@Nullable
public static TypeElement getModuleScope(DeclaredType moduleType) {
  TypeElement moduleElement = (TypeElement) moduleType.asElement();
  Preconditions.checkArgument(
      moduleElement.getAnnotation(Module.class) != null,
      String.format("not module: %s.", moduleType));
  for (Element element : moduleElement.getEnclosedElements()) {
    if (element.getKind().equals(ElementKind.METHOD)
        && (element.getAnnotation(Provides.class) != null)) {
      for (AnnotationMirror annotationMirror : element.getAnnotationMirrors()) {
        Annotation scope =
            annotationMirror.getAnnotationType().asElement().getAnnotation(Scope.class);
        if (scope != null) {
          return (TypeElement) annotationMirror.getAnnotationType().asElement();
        }
      }
    }
  }
  return null;
}
 
开发者ID:google,项目名称:tiger,代码行数:27,代码来源:Utils.java

示例6: findScope

import javax.inject.Scope; //导入依赖的package包/类
/**
 * Find annotation that is itself annoted with @Scope
 * If there is one, it will be later applied on the generated component
 * Otherwise the component will be unscoped
 * Throw error if more than one scope annotation found
 */
private AnnotationMirror findScope() {
    AnnotationMirror annotationTypeMirror = null;

    for (AnnotationMirror annotationMirror : element.getAnnotationMirrors()) {
        Element annotationElement = annotationMirror.getAnnotationType().asElement();
        if (MoreElements.isAnnotationPresent(annotationElement, Scope.class)) {
            // already found one scope
            if (annotationTypeMirror != null) {
                errors.addInvalid("Several dagger scopes on same element are not allowed");
                continue;
            }

            annotationTypeMirror = annotationMirror;
        }
    }

    return annotationTypeMirror;
}
 
开发者ID:lukaspili,项目名称:Mortar-architect,代码行数:25,代码来源:ScopeExtractor.java

示例7: DocumentedAnnotations

import javax.inject.Scope; //导入依赖的package包/类
public DocumentedAnnotations(Element element) {
    List<AnnotationMirror> allAnnotations = new ArrayList<AnnotationMirror>();
    allAnnotations.addAll(annotationsOf(element, Qualifier.class));
    allAnnotations.addAll(annotationsOf(element, Scope.class));

    if (allAnnotations.isEmpty()) {
        this.description = Optional.absent();
        return;
    }

    StringBuilder result = new StringBuilder();
    for (AnnotationMirror annotation : allAnnotations) {
        if (result.length() > 0) {
            result.append(" ");
        }
        result.append(annotation.toString());
    }

    this.description = Optional.of(result.toString());
}
 
开发者ID:Ladicek,项目名称:ann-docu-gen,代码行数:21,代码来源:DocumentedAnnotations.java

示例8: methodCaching

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void methodCaching() {
	Annotation annotation = Singleton.class.getAnnotation(Scope.class);
	// call twice - should cache once
	cache.getQualifier(annotation);
	cache.getQualifier(annotation);

	assertThat(bindActionMap.size(), is(1));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:10,代码来源:QualifierCacheTests.java

示例9: fieldScopeTest

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void fieldScopeTest() throws NoSuchFieldException {
	Field field = Testable.class.getDeclaredField("scopedField");
	Annotation namedAnnotation = Annotations.findAnnotationAnnotatedWith(Scope.class, field);

	assertThat(namedAnnotation, allOf(notNullValue(), annotationOfType(Singleton.class)));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:8,代码来源:AnnotationsTests.java

示例10: methodScopeTest

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void methodScopeTest() throws NoSuchMethodException {
	Method method = Testable.class.getDeclaredMethod("scopedMethod");
	Annotation namedAnnotation = Annotations.findAnnotationAnnotatedWith(Scope.class, method);

	assertThat(namedAnnotation, allOf(notNullValue(), annotationOfType(Singleton.class)));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:8,代码来源:AnnotationsTests.java

示例11: methodArgumentScopeTest

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void methodArgumentScopeTest() throws NoSuchMethodException {
	Method method = Testable.class.getDeclaredMethod("scopedMethodArguments", Object.class);
	Annotation[] annotations = method.getParameterAnnotations()[0];
	Annotation namedAnnotation = Annotations.findAnnotationAnnotatedWith(Scope.class, annotations);

	assertThat(namedAnnotation, allOf(notNullValue(), annotationOfType(Singleton.class)));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:9,代码来源:AnnotationsTests.java

示例12: methodArgumentScopeMissingTest

import javax.inject.Scope; //导入依赖的package包/类
@Test
public void methodArgumentScopeMissingTest() throws NoSuchMethodException {
	Method method = Testable.class.getDeclaredMethod("scopedMethodArgumentsMissing", Object.class);
	Annotation[] annotations = method.getParameterAnnotations()[0];
	Annotation namedAnnotation = Annotations.findAnnotationAnnotatedWith(Scope.class, annotations);

	assertThat(namedAnnotation, is(nullValue()));
}
 
开发者ID:ByteWelder,项目名称:Spork,代码行数:9,代码来源:AnnotationsTests.java

示例13: createFactoriesForClassesAnnotatedWithScopeAnnotations

import javax.inject.Scope; //导入依赖的package包/类
private void createFactoriesForClassesAnnotatedWithScopeAnnotations(RoundEnvironment roundEnv, Set<? extends TypeElement> annotations) {
  for (TypeElement annotation : annotations) {
    if (annotation.getAnnotation(Scope.class) != null) {
      checkScopeAnnotationValidity(annotation);
      createFactoriesForClassesAnnotatedWith(roundEnv, annotation);
    }
  }
}
 
开发者ID:stephanenicolas,项目名称:toothpick,代码行数:9,代码来源:FactoryProcessor.java

示例14: checkScopeAnnotationValidity

import javax.inject.Scope; //导入依赖的package包/类
private void checkScopeAnnotationValidity(TypeElement annotation) {
  if (annotation.getAnnotation(Scope.class) == null) {
    error(annotation, "Scope Annotation %s does not contain Scope annotation.", annotation.getQualifiedName());
    return;
  }

  Retention retention = annotation.getAnnotation(Retention.class);
  if (retention == null || retention.value() != RetentionPolicy.RUNTIME) {
    error(annotation, "Scope Annotation %s does not have RUNTIME retention policy.", annotation.getQualifiedName());
  }
}
 
开发者ID:stephanenicolas,项目名称:toothpick,代码行数:12,代码来源:FactoryProcessor.java

示例15: getScope

import javax.inject.Scope; //导入依赖的package包/类
@Override
public Class<? extends Annotation> getScope() {
	Class<? extends Annotation> scope = Arrays.stream(javaType.getAnnotations())
		.map(a -> a.getClass())
			.filter(a -> a.getAnnotation(Scope.class) != null)
				.findFirst().orElse(null);

	return scope == null ? Dependent.class : scope;
}
 
开发者ID:ljtfreitas,项目名称:java-restify,代码行数:10,代码来源:RestifyProxyCdiBean.java


注:本文中的javax.inject.Scope类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。