@Override public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { MethodSpec spec = createDefaultMethodSpec(method, mirror, true, null); spec.getAnnotations().add(new AnnotatedParameterSpec(getContext().getDeclaredType(Cached.class))); return spec; }
@Override public SpecializationData create(TemplateMethod method, boolean invalid) { return parseSpecialization(method); }
SpecializationMethodParser parser = new SpecializationMethodParser(context, node); SpecializationData polymorphic = parser.create("Polymorphic", TemplateMethod.NO_NATURAL_ORDER, null, null, returnType, types); if (polymorphic == null) { throw new AssertionError("Failed to parse polymorphic signature. " + parser.createDefaultMethodSpec(null, null, false, null) + " Types: " + returnType + " - " + types);
node.getSpecializations().addAll(new SpecializationMethodParser(context, node).parse(members)); node.getSpecializations().addAll(new FallbackParser(context, node).parse(members)); node.getCasts().addAll(new CreateCastParser(context, node).parse(members));
Specialization.class.getSimpleName(), ElementUtils.getQualifiedName(exceptionType)); if (ElementUtils.typeEquals(exceptionType, getContext().getType(UnexpectedResultException.class))) { if (ElementUtils.typeEquals(method.getMethod().getReturnType(), getContext().getType(Object.class))) { method.addError("A specialization with return type 'Object' cannot throw UnexpectedResultException."); SpecializationData specialization = new SpecializationData(getNode(), method, SpecializationKind.SPECIALIZED, exceptionData, unexpectedResultRewrite);
SpecializationData specialization = new SpecializationData(getNode(), method, SpecializationKind.SPECIALIZED, exceptionData);
SpecializationMethodParser parser = new SpecializationMethodParser(context, node); SpecializationData polymorphic = parser.create("Polymorphic", TemplateMethod.NO_NATURAL_ORDER, null, null, returnType, types); if (polymorphic == null) { throw new AssertionError("Failed to parse polymorphic signature. " + parser.createDefaultMethodSpec(null, null, false, null) + " Types: " + returnType + " - " + types);
node.getSpecializations().addAll(new SpecializationMethodParser(context, node).parse(members)); node.getSpecializations().addAll(new FallbackParser(context, node).parse(members)); node.getCasts().addAll(new CreateCastParser(context, node).parse(members));
@Override public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { MethodSpec spec = createDefaultMethodSpec(method, mirror, true, null); spec.getAnnotations().add(new CachedParameterSpec(getContext().getDeclaredType(Cached.class))); return spec; }
@Override public SpecializationData create(TemplateMethod method, boolean invalid) { return parseSpecialization(method); }