private TypeElement getFragmentActivity(AnnotationHelper annotationHelper) { TypeElement supportFragmentActivity = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.FRAGMENT_ACTIVITY); if (supportFragmentActivity == null) { return annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.ANDROIDX_FRAGMENT_ACTIVITY); } return supportFragmentActivity; }
private boolean isTypeParcelable(TypeMirror typeMirror) { TypeMirror parcelableType = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.PARCELABLE).asType(); return annotationHelper.isSubtype(typeMirror, parcelableType); }
public void hasASqliteOpenHelperParametrizedType(Element element, ElementValidation valid) { TypeMirror helperType = annotationHelper.extractAnnotationParameter(element, OrmLiteDao.class.getName(), "helper"); TypeMirror openHelperType = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.SQLITE_OPEN_HELPER).asType(); if (!annotationHelper.isSubtype(helperType, openHelperType)) { valid.addError("%s helper() parameter must extend " + CanonicalNameConstants.SQLITE_OPEN_HELPER); } } }
public String generatedClassQualifiedNameFromQualifiedName(String qualifiedName) { TypeElement type = typeElementFromQualifiedName(qualifiedName); if (type.getNestingKind() == NestingKind.MEMBER) { String parentGeneratedClass = generatedClassQualifiedNameFromQualifiedName(type.getEnclosingElement().asType().toString()); return parentGeneratedClass + "." + type.getSimpleName().toString() + classSuffix(); } else { return qualifiedName + classSuffix(); } }
private void setOnRetainNonConfigurationInstance() throws JClassAlreadyExistsException { AnnotationHelper annotationHelper = new AnnotationHelper(getEnvironment()); TypeElement fragmentActivityTypeElement = getFragmentActivity(annotationHelper); TypeElement typeElement = annotationHelper.typeElementFromQualifiedName(generatedClass._extends().fullName()); String onRetainNonConfigurationInstanceName = "onRetainNonConfigurationInstance"; if (fragmentActivityTypeElement != null && annotationHelper.isSubtype(typeElement.asType(), fragmentActivityTypeElement.asType())) { onRetainNonConfigurationInstanceName = "onRetainCustomNonConfigurationInstance"; } NonConfigurationHolder ncHolder = getNonConfigurationHolder(); JDefinedClass ncHolderClass = ncHolder.getGeneratedClass(); JMethod onRetainNonConfigurationInstanceMethod = generatedClass.method(PUBLIC, ncHolderClass, onRetainNonConfigurationInstanceName); onRetainNonConfigurationInstanceMethod.annotate(Override.class); JBlock methodBody = onRetainNonConfigurationInstanceMethod.body(); onRetainNonConfigurationInstance = methodBody.decl(ncHolderClass, "nonConfigurationInstanceState_", _new(ncHolderClass)); IJExpression superCall = _super().invoke(onRetainNonConfigurationInstanceMethod); methodBody.assign(onRetainNonConfigurationInstance.ref(ncHolder.getSuperNonConfigurationInstanceField()), superCall); onRetainNonConfigurationInstanceBindBlock = methodBody.blockSimple(); methodBody._return(onRetainNonConfigurationInstance); }
private void setGetLastNonConfigurationInstance() throws JClassAlreadyExistsException { AnnotationHelper annotationHelper = new AnnotationHelper(getEnvironment()); TypeElement fragmentActivityTypeElement = getFragmentActivity(annotationHelper); TypeElement typeElement = annotationHelper.typeElementFromQualifiedName(generatedClass._extends().fullName()); String getLastNonConfigurationInstanceName = "getLastNonConfigurationInstance"; if (fragmentActivityTypeElement != null && annotationHelper.isSubtype(typeElement.asType(), fragmentActivityTypeElement.asType())) { getLastNonConfigurationInstanceName = "getLastCustomNonConfigurationInstance"; } NonConfigurationHolder ncHolder = getNonConfigurationHolder(); JDefinedClass ncHolderClass = ncHolder.getGeneratedClass(); JFieldVar superNonConfigurationInstanceField = ncHolder.getSuperNonConfigurationInstanceField(); getLastNonConfigurationInstance = generatedClass.method(PUBLIC, Object.class, getLastNonConfigurationInstanceName); getLastNonConfigurationInstance.annotate(Override.class); JBlock body = getLastNonConfigurationInstance.body(); JVar nonConfigurationInstance = body.decl(ncHolderClass, "nonConfigurationInstance", cast(ncHolderClass, _super().invoke(getLastNonConfigurationInstance))); body._if(nonConfigurationInstance.eq(_null()))._then()._return(_null()); body._return(nonConfigurationInstance.ref(superNonConfigurationInstanceField)); }
private TypeElement getFragmentActivity(AnnotationHelper annotationHelper) { TypeElement supportFragmentActivity = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.FRAGMENT_ACTIVITY); if (supportFragmentActivity == null) { return annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.ANDROIDX_FRAGMENT_ACTIVITY); } return supportFragmentActivity; }
private boolean isTypeParcelable(TypeMirror typeMirror) { TypeMirror parcelableType = annotationHelper.typeElementFromQualifiedName(CanonicalNameConstants.PARCELABLE).asType(); return annotationHelper.isSubtype(typeMirror, parcelableType); }
public String generatedClassQualifiedNameFromQualifiedName(String qualifiedName) { TypeElement type = typeElementFromQualifiedName(qualifiedName); if (type.getNestingKind() == NestingKind.MEMBER) { String parentGeneratedClass = generatedClassQualifiedNameFromQualifiedName(type.getEnclosingElement().asType().toString()); return parentGeneratedClass + "." + type.getSimpleName().toString() + classSuffix(); } else { return qualifiedName + classSuffix(); } }
private void setOnRetainNonConfigurationInstance() throws JClassAlreadyExistsException { AnnotationHelper annotationHelper = new AnnotationHelper(getEnvironment()); TypeElement fragmentActivityTypeElement = getFragmentActivity(annotationHelper); TypeElement typeElement = annotationHelper.typeElementFromQualifiedName(generatedClass._extends().fullName()); String onRetainNonConfigurationInstanceName = "onRetainNonConfigurationInstance"; if (fragmentActivityTypeElement != null && annotationHelper.isSubtype(typeElement.asType(), fragmentActivityTypeElement.asType())) { onRetainNonConfigurationInstanceName = "onRetainCustomNonConfigurationInstance"; } NonConfigurationHolder ncHolder = getNonConfigurationHolder(); JDefinedClass ncHolderClass = ncHolder.getGeneratedClass(); JMethod onRetainNonConfigurationInstanceMethod = generatedClass.method(PUBLIC, ncHolderClass, onRetainNonConfigurationInstanceName); onRetainNonConfigurationInstanceMethod.annotate(Override.class); JBlock methodBody = onRetainNonConfigurationInstanceMethod.body(); onRetainNonConfigurationInstance = methodBody.decl(ncHolderClass, "nonConfigurationInstanceState_", _new(ncHolderClass)); IJExpression superCall = _super().invoke(onRetainNonConfigurationInstanceMethod); methodBody.assign(onRetainNonConfigurationInstance.ref(ncHolder.getSuperNonConfigurationInstanceField()), superCall); onRetainNonConfigurationInstanceBindBlock = methodBody.blockSimple(); methodBody._return(onRetainNonConfigurationInstance); }
private void setGetLastNonConfigurationInstance() throws JClassAlreadyExistsException { AnnotationHelper annotationHelper = new AnnotationHelper(getEnvironment()); TypeElement fragmentActivityTypeElement = getFragmentActivity(annotationHelper); TypeElement typeElement = annotationHelper.typeElementFromQualifiedName(generatedClass._extends().fullName()); String getLastNonConfigurationInstanceName = "getLastNonConfigurationInstance"; if (fragmentActivityTypeElement != null && annotationHelper.isSubtype(typeElement.asType(), fragmentActivityTypeElement.asType())) { getLastNonConfigurationInstanceName = "getLastCustomNonConfigurationInstance"; } NonConfigurationHolder ncHolder = getNonConfigurationHolder(); JDefinedClass ncHolderClass = ncHolder.getGeneratedClass(); JFieldVar superNonConfigurationInstanceField = ncHolder.getSuperNonConfigurationInstanceField(); getLastNonConfigurationInstance = generatedClass.method(PUBLIC, Object.class, getLastNonConfigurationInstanceName); getLastNonConfigurationInstance.annotate(Override.class); JBlock body = getLastNonConfigurationInstance.body(); JVar nonConfigurationInstance = body.decl(ncHolderClass, "nonConfigurationInstance", cast(ncHolderClass, _super().invoke(getLastNonConfigurationInstance))); body._if(nonConfigurationInstance.eq(_null()))._then()._return(_null()); body._return(nonConfigurationInstance.ref(superNonConfigurationInstanceField)); }