private boolean checkFirstArgType(TypeMirror type, DeclaredTypeName generatedClassName) { if (type instanceof ErrorType) { return true; } if (!(type instanceof DeclaredType)) { return false; } DeclaredTypeName typeName = (DeclaredTypeName) utils.getTypeNameFromTypeMirror(type); return typeName.equals(generatedClassName) || typeName.equals(TypeConstants.ABSTRACT_MODEL); } }
@Override protected boolean hasPropertyGeneratorForField(VariableElement field, DeclaredTypeName fieldType) { return TypeConstants.isVisibleConstant(field) && TypeConstants.ENUM_PROPERTY.equals(fieldType); }
@Override protected boolean hasPropertyGeneratorForField(VariableElement field, DeclaredTypeName fieldType) { return field.getModifiers().containsAll(TypeConstants.PUBLIC_STATIC_FINAL) && JSONTypes.JSON_PROPERTY.equals(fieldType); }
private void emitModelMethod(JavaFileWriter writer, ExecutableElement e, Modifier... modifiers) throws IOException { MethodDeclarationParameters params = utils.methodDeclarationParamsFromExecutableElement(e, modifiers); ModelMethod methodAnnotation = e.getAnnotation(ModelMethod.class); List<Object> arguments = new ArrayList<>(); if (methodAnnotation != null) { String name = methodAnnotation.name(); if (!AptUtils.isEmpty(name)) { params.setMethodName(name); } params.getArgumentTypes().remove(0); params.getArgumentNames().remove(0); arguments.add(0, "this"); } arguments.addAll(params.getArgumentNames()); Expression methodCall = Expressions.staticMethod(modelSpec.getModelSpecName(), e.getSimpleName().toString(), arguments); if (!CoreTypes.VOID.equals(params.getReturnType())) { methodCall = methodCall.returnExpr(); } JavadocPlugin.writeJavadocFromElement(pluginEnv, writer, e); writer.beginMethodDefinition(params) .writeStatement(methodCall) .finishMethodDefinition(); }
@Override public boolean processVariableElement(VariableElement field, DeclaredTypeName fieldType) { boolean isViewProperty = TypeConstants.isBasicPropertyType(fieldType); ViewQuery isViewQuery = field.getAnnotation(ViewQuery.class); if (TypeConstants.isVisibleConstant(field)) { if (isViewQuery != null) { if (!TypeConstants.QUERY.equals(fieldType)) { modelSpec.logError("ViewQuery must be an instance of " + TypeConstants.QUERY.toString(), field); } else if (modelSpec.hasMetadata(ViewModelSpecWrapper.METADATA_KEY_QUERY_ELEMENT)) { modelSpec.logError("Only one ViewQuery can be declared per spec", field); } else { modelSpec.putMetadata(ViewModelSpecWrapper.METADATA_KEY_VIEW_QUERY, isViewQuery); modelSpec.putMetadata(ViewModelSpecWrapper.METADATA_KEY_QUERY_ELEMENT, field); } return true; } else { return super.processVariableElement(field, fieldType); } } else if (isViewProperty) { modelSpec.logError("View properties must be static final and non-private", field); } return false; }
private boolean checkFirstArgType(TypeMirror type, DeclaredTypeName generatedClassName) { if (type instanceof ErrorType) { return true; } if (!(type instanceof DeclaredType)) { return false; } DeclaredTypeName typeName = (DeclaredTypeName) utils.getTypeNameFromTypeMirror(type); return typeName.equals(generatedClassName) || typeName.equals(TypeConstants.ABSTRACT_MODEL); } }
@Override protected boolean hasPropertyGeneratorForField(VariableElement field, DeclaredTypeName fieldType) { return TypeConstants.isVisibleConstant(field) && TypeConstants.ENUM_PROPERTY.equals(fieldType); }
private void emitModelMethod(JavaFileWriter writer, ExecutableElement e, Modifier... modifiers) throws IOException { MethodDeclarationParameters params = utils.methodDeclarationParamsFromExecutableElement(e, modifiers); ModelMethod methodAnnotation = e.getAnnotation(ModelMethod.class); List<Object> arguments = new ArrayList<>(); if (methodAnnotation != null) { String name = methodAnnotation.name(); if (!AptUtils.isEmpty(name)) { params.setMethodName(name); } params.getArgumentTypes().remove(0); params.getArgumentNames().remove(0); arguments.add(0, "this"); } arguments.addAll(params.getArgumentNames()); Expression methodCall = Expressions.staticMethod(modelSpec.getModelSpecName(), e.getSimpleName().toString(), arguments); if (!CoreTypes.VOID.equals(params.getReturnType())) { methodCall = methodCall.returnExpr(); } JavadocPlugin.writeJavadocFromElement(pluginEnv, writer, e); writer.beginMethodDefinition(params) .writeStatement(methodCall) .finishMethodDefinition(); }
@Override public boolean processVariableElement(VariableElement field, DeclaredTypeName fieldType) { boolean isViewProperty = TypeConstants.isBasicPropertyType(fieldType); ViewQuery isViewQuery = field.getAnnotation(ViewQuery.class); if (TypeConstants.isVisibleConstant(field)) { if (isViewQuery != null) { if (!TypeConstants.QUERY.equals(fieldType)) { modelSpec.logError("ViewQuery must be an instance of " + TypeConstants.QUERY.toString(), field); } else if (modelSpec.hasMetadata(ViewModelSpecWrapper.METADATA_KEY_QUERY_ELEMENT)) { modelSpec.logError("Only one ViewQuery can be declared per spec", field); } else { modelSpec.putMetadata(ViewModelSpecWrapper.METADATA_KEY_VIEW_QUERY, isViewQuery); modelSpec.putMetadata(ViewModelSpecWrapper.METADATA_KEY_QUERY_ELEMENT, field); } return true; } else { return super.processVariableElement(field, fieldType); } } else if (isViewProperty) { modelSpec.logError("View properties must be static final and non-private", field); } return false; }