@Singleton @Classed(Byte.class) public WebletTeleReader getByteReader(ByteReader impl) { return impl; }
/** * Find appropriate similar parameter to avoid duplicate injections * * @param fieldElm * @param constructorParams * @return */ protected ParameterElement findSimilarParam(ProxyFieldElement fieldElm, List<ParameterElement> constructorParams) { ParameterElement similarParam = null; String fieldNamedVal = fieldElm.getNamed() != null ? fieldElm.getNamed() : ""; TypeName fieldClassedVal = fieldElm.getClassed() != null ? fieldElm.getClassed() : ClassName.get(Object.class); for (ParameterElement paramElm : constructorParams) { TypeName paramType = TypeName.get(paramElm.asType()); AnnotationElement<Named> namedAnn = paramElm.getAnnotation(Named.class); AnnotationElement<Classed> classedAnn = paramElm.getAnnotation(Classed.class); if (paramType.equals(fieldElm.getInjectAs())) { String annNamedVal = namedAnn != null ? namedAnn.unwrap().value() : ""; TypeName annClassedVal = classedAnn != null ? TypeName.get(classedAnn.getValueTypeMirror(a -> a.value())) : ClassName.get(Object.class); if (annNamedVal.equals(fieldNamedVal) && annClassedVal.equals(fieldClassedVal)) { similarParam = paramElm; break; } } } return similarParam; }
TypeMirror classed; if (classedAnn != null) { classed = classedAnn.getValueTypeMirror(a -> a.value()); } else { classed = null;
@Singleton @Classed(Float.class) public WebletTeleReader getFloatReader(FloatReader impl) { return impl; }
throw CodegenException.of().message("@Classed message injection").element(parameter.unwrap()).build(); TypeMirror classifier = classedAnn.getValueTypeMirror(a -> a.value()); classed = classifier.toString();
@Singleton @Classed(TextResponse.class) public WebletTeleWriter getTextResponseWriter(StringWriter impl) { return impl; }
String classed; if (classedAnn != null) { TypeMirror classifier = classedAnn.getValueTypeMirror(a -> a.value()); classed = classifier.toString(); } else {
@Singleton @Classed(Integer.class) public WebletTeleReader getIntegerReader(IntegerReader impl) { return impl; }
@Singleton @Classed(LocalTime.class) public WebletTeleReader getLocalTimeReader(LocalTimeReader impl) { return impl; }
@Singleton @Classed(Principal.class) public WebletTeleReader getPrincipalReader(PrincipalReader impl) { return impl; }
@Singleton @Classed(Date.class) public WebletTeleReader getDateReader(DateReader impl) { return impl; }
@Singleton @Classed(Profile.class) public WebletTeleReader getProfileReader(ProfileReader impl) { return impl; }
@Singleton @Classed(NavigationResponse.class) public WebletTeleWriter getNavigationResponseWriter(NavigationWriter impl) { return impl; }
@Singleton @Classed(VariousResponse.class) public WebletTeleWriter getVariousResponseWriter(VariousWriter impl) { return impl; }
@Singleton @Classed(Principal.class) public WebletTeleWriter getPrincipalWriter(PrincipalWriter impl) { return impl; }
@Singleton @Classed(Boolean.class) public WebletTeleReader getBooleanReader(BooleanReader impl) { return impl; }
@Singleton @Classed(String.class) public WebletTeleReader getStringReader(StringReader impl) { return impl; }
@Singleton @Classed(Long.class) public WebletTeleReader getLongReader(LongReader impl) { return impl; }
@Singleton @Classed(Double.class) public WebletTeleReader getDoubleReader(DoubleReader impl) { return impl; }
@Singleton @Classed(LocalDate.class) public WebletTeleReader getLocalDateReader(LocalDateReader impl) { return impl; }