@Override public MutableDeclaredType getSuperClass() { return ensureDelegateType().getSuperClass(); }
public boolean isAssignable(MutableTypeMirror t1, MutableTypeMirror t2) { if (isSameType(t1, t2)) { return true; } if (implementsType(t1, t2)) { return true; } if (t1.getKind().isDeclared()) { if (((MutableDeclaredType)t1).getSuperClass() == null) { return false; } return isAssignable(((MutableDeclaredType)t1).getSuperClass(), t2); } return false; }
public void findDomainData(MutableDeclaredType declaredType, List<MutableDeclaredType> domainDataTypes) { if (declaredType.getAnnotation(DomainData.class) != null) { domainDataTypes.add(declaredType); } //We need to iterate over interfaces firstly - for cases that some data interfaces will be in hierarchy we have //to find most specified data interface for (MutableTypeMirror interfaces : declaredType.getInterfaces()) { findDomainData((MutableDeclaredType)interfaces, domainDataTypes); } MutableDeclaredType superClass; if (declaredType instanceof DelegateMutableDeclaredType) { superClass = ((DelegateMutableDeclaredType)declaredType).ensureDelegateType().getSuperClass(); } else { superClass = declaredType.getSuperClass(); } if (superClass != null) { findDomainData(superClass, domainDataTypes); } }
if (outputType.getSuperClass() != null && outputType.getSuperClass().getModifiers() != null && outputType.getSuperClass().getModifiers().contains(Modifier.ABSTRACT)) {
processingType = processingType.getSuperClass();
MutableTypeMirror superClassType = dt1.getSuperClass();
MutableDeclaredType superClassType = type.getSuperClass();
@Override protected void processElement(ProcessorContext context) { FormattedPrintWriter pw = context.getPrintWriter(); converterProviderPrinter = getConverterProviderPrinter(pw); TypeElement cachedConverterType = processingEnv.getElementUtils().getTypeElement(BasicCachedConverter.class.getCanonicalName()); ParameterElement[] constructorAdditionalParameters = getParametersResolverProvider().getParameterResolver(UsageType.DEFINITION).getConstructorAditionalParameters(); ConstructorPrinter constructorPrinter = new ConstructorPrinter(context.getOutputType(), processingEnv); constructorPrinter.printConstructors(cachedConverterType, constructorAdditionalParameters); TypeElement superClassElement = context.getOutputType().getSuperClass() != null ? context.getOutputType().getSuperClass().asElement() : null; for (ParameterElement constructorAdditionalParameter: constructorAdditionalParameters) { String parameterName = constructorAdditionalParameter.getName().toString(); if (constructorAdditionalParameter.getPropagationType().equals(PropagationType.PROPAGATED_MUTABLE) && !containsField(superClassElement, constructorAdditionalParameter)) { MutableVariableElement field = processingEnv.getElementUtils().getParameterElement(constructorAdditionalParameter.getType(), parameterName); context.getOutputType().addField((MutableVariableElement) field.addModifier(Modifier.PROTECTED)); MutableExecutableType setterMethod = processingEnv.getTypeUtils().getExecutable( processingEnv.getTypeUtils().toMutableType(processingEnv.getTypeUtils().getNoType(TypeKind.VOID)), MethodHelper.toSetter(parameterName)). addParameter(processingEnv.getElementUtils().getParameterElement(constructorAdditionalParameter.getType(), parameterName)).addModifier(Modifier.PUBLIC); context.getOutputType().addMethod(setterMethod); setterMethod.getPrintWriter().println("this." + parameterName + " = " + parameterName + ";"); } } super.processElement(context); converterProviderPrinter.printConverterMethods(context.getOutputType(), false, ConverterInstancerType.REFERENCED_CONVERTER_INSTANCER); }