/** * Subclasses can override this hook to generate a custom method body for the property setter. This version of the * hook is deprecated, users should use {@link #writeGetterBody(JavaFileWriter, MethodDeclarationParameters)} * instead. */ @Deprecated protected void writeSetterBody(JavaFileWriter writer, String argName) throws IOException { writer.writeStatement(Expressions.callMethod("set", propertyName, argName)); writer.writeStringStatement("return this"); }
/** * Subclasses can override this hook to generate a custom method body for the property getter. This version of the * hook is deprecated, users should use {@link #writeGetterBody(JavaFileWriter, MethodDeclarationParameters)} * instead. */ @Deprecated protected void writeGetterBody(JavaFileWriter writer) throws IOException { writer.writeStatement(Expressions.callMethod("get", propertyName).returnExpr()); }
@Override public void emitPutDefault(JavaFileWriter writer, String contentValuesName) throws IOException { String defaultValue = getColumnDefault(); if (ColumnSpec.DEFAULT_NONE.equals(getColumnDefault())) { return; } String methodToInvoke; List<Object> arguments = new ArrayList<>(); arguments.add(Expressions.callMethodOn(propertyName, "getName")); if (ColumnSpec.DEFAULT_NULL.equals(defaultValue)) { methodToInvoke = "putNull"; } else { methodToInvoke = "put"; arguments.add(getContentValuesDefaultValue()); } writer.writeStatement(Expressions.callMethodOn(contentValuesName, methodToInvoke, arguments)); }
@Override protected void writeGetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { Expression typeExpression = getTypeExpression(fieldType); writer.writeStatement(Expressions.staticMethod(JSONTypes.JSON_PROPERTY_SUPPORT, "getValueFromJSON", "this", propertyName, typeExpression).returnExpr()); }
@Override protected void writeSetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { Expression typeExpression = getTypeExpression(fieldType); writer.writeStatement(Expressions.staticMethod(JSONTypes.JSON_PROPERTY_SUPPORT, "setValueAsJSON", "this", propertyName, params.getArgumentNames().get(0), typeExpression)); writer.writeStringStatement("return this"); }
protected void writePropertiesInitializationBlock() throws IOException { for (int i = 0; i < modelSpec.getPropertyGenerators().size(); i++) { writer.writeStatement(Expressions .assign(Expressions.arrayReference(PROPERTIES_ARRAY_NAME, i), Expressions.fromString(modelSpec.getPropertyGenerators().get(i).getPropertyName()))); } }
@Override protected void writeSetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { String argName = params.getArgumentNames().get(0); final String argAsString = argName + "AsString"; Expression condition = Expressions.fromString(argName + " == null"); Expression ifTrue = Expressions.fromString("null"); Expression ifFalse = Expressions.callMethodOn(argName, "name"); writer.writeFieldDeclaration(CoreTypes.JAVA_STRING, argAsString, new TernaryExpression(condition, ifTrue, ifFalse)); writer.writeStatement(Expressions.callMethod("set", propertyName, argAsString)); writer.writeStringStatement("return this"); }
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 protected void writeGetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { final String value = "value"; writer.writeFieldDeclaration(CoreTypes.JAVA_STRING, value, Expressions.callMethod("get", propertyName)); Expression condition = Expressions.fromString(value + " == null"); Expression ifTrue = Expressions.fromString("null"); Expression ifFalse = Expressions.staticMethod(enumType, "valueOf", value); TernaryExpression ternary = new TernaryExpression(condition, ifTrue, ifFalse); writer.writeStatement(ternary.returnExpr()); }
private void emitAliasedPropertyArray() throws IOException { writer.writeComment("--- aliased property references"); Expression aliasedPropertiesInit = Expressions.block(new Expression() { @Override public boolean writeExpression(JavaFileWriter writer) throws IOException { return emitPropertyReferenceArrayBody(true); } }, false, false, false, false); writer.writeFieldDeclaration(TypeConstants.PROPERTY_ARRAY, ALIASED_PROPERTY_ARRAY_NAME, aliasedPropertiesInit, TypeConstants.PUBLIC_STATIC_FINAL) .writeNewline(); writer.beginInitializerBlock(true, true); writer.writeStatement(Expressions.callMethod("validateAliasedProperties", ALIASED_PROPERTY_ARRAY_NAME)); writer.finishInitializerBlock(false, true); writer.writeNewline(); }
@Override public void emitConstructors(JavaFileWriter writer) throws IOException { if (generateConstructors) { String valuesName = "contentValues"; DeclaredTypeName valuesType = TypeConstants.CONTENT_VALUES; MethodDeclarationParameters params = new MethodDeclarationParameters() .setModifiers(Modifier.PUBLIC) .setConstructorName(modelSpec.getGeneratedClassName()); params.setArgumentTypes(Collections.singletonList(valuesType)) .setArgumentNames(valuesName); writer.beginConstructorDeclaration(params) .writeStatement(Expressions.callMethod("this", valuesName, ModelFileWriter.PROPERTIES_ARRAY_NAME)) .finishMethodDefinition(); String methodName = "readPropertiesFromContentValues"; params.setArgumentTypes(Arrays.asList(valuesType, TypeConstants.PROPERTY_VARARGS)) .setArgumentNames(valuesName, "withProperties"); writer.beginConstructorDeclaration(params) .writeStringStatement("this()") .writeStringStatement(methodName + "(" + valuesName + ", withProperties)") .finishMethodDefinition(); } }
private void writeRowidSupportMethods(JavaFileWriter writer, String propertyName) throws IOException { // Write TABLE.setRowIdProperty call writer.beginInitializerBlock(true, true); writer.writeStatement(Expressions.callMethodOn(TableModelFileWriter.TABLE_NAME, "setRowIdProperty", propertyName)); writer.finishInitializerBlock(true, true); writer.writeNewline(); // Write getRowIdProperty() method writer.writeAnnotation(CoreTypes.OVERRIDE); MethodDeclarationParameters params = new MethodDeclarationParameters() .setModifiers(Modifier.PUBLIC) .setReturnType(TypeConstants.LONG_PROPERTY) .setMethodName("getRowIdProperty"); writer.beginMethodDefinition(params); writer.writeStringStatement("return " + propertyName); writer.finishMethodDefinition(); }
.setArgumentNames(valuesName); writer.beginConstructorDeclaration(params) .writeStatement(Expressions.callMethod("this", valuesName, ModelFileWriter.PROPERTIES_ARRAY_NAME)) .finishMethodDefinition(); .writeStatement(cloneBody) .finishMethodDefinition();
/** * Subclasses can override this hook to generate a custom method body for the property setter. This version of the * hook is deprecated, users should use {@link #writeGetterBody(JavaFileWriter, MethodDeclarationParameters)} * instead. */ @Deprecated protected void writeSetterBody(JavaFileWriter writer, String argName) throws IOException { writer.writeStatement(Expressions.callMethod("set", propertyName, argName)); writer.writeStringStatement("return this"); }
/** * Subclasses can override this hook to generate a custom method body for the property getter. This version of the * hook is deprecated, users should use {@link #writeGetterBody(JavaFileWriter, MethodDeclarationParameters)} * instead. */ @Deprecated protected void writeGetterBody(JavaFileWriter writer) throws IOException { writer.writeStatement(Expressions.callMethod("get", propertyName).returnExpr()); }
@Override public void emitPutDefault(JavaFileWriter writer, String contentValuesName) throws IOException { String defaultValue = getColumnDefault(); if (ColumnSpec.DEFAULT_NONE.equals(getColumnDefault())) { return; } String methodToInvoke; List<Object> arguments = new ArrayList<>(); arguments.add(Expressions.callMethodOn(propertyName, "getName")); if (ColumnSpec.DEFAULT_NULL.equals(defaultValue)) { methodToInvoke = "putNull"; } else { methodToInvoke = "put"; arguments.add(getContentValuesDefaultValue()); } writer.writeStatement(Expressions.callMethodOn(contentValuesName, methodToInvoke, arguments)); }
protected void writePropertiesInitializationBlock() throws IOException { for (int i = 0; i < modelSpec.getPropertyGenerators().size(); i++) { writer.writeStatement(Expressions .assign(Expressions.arrayReference(PROPERTIES_ARRAY_NAME, i), Expressions.fromString(modelSpec.getPropertyGenerators().get(i).getPropertyName()))); } }
@Override protected void writeSetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { String argName = params.getArgumentNames().get(0); final String argAsString = argName + "AsString"; Expression condition = Expressions.fromString(argName + " == null"); Expression ifTrue = Expressions.fromString("null"); Expression ifFalse = Expressions.callMethodOn(argName, "name"); writer.writeFieldDeclaration(CoreTypes.JAVA_STRING, argAsString, new TernaryExpression(condition, ifTrue, ifFalse)); writer.writeStatement(Expressions.callMethod("set", propertyName, argAsString)); writer.writeStringStatement("return this"); }
@Override protected void writeGetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { final String value = "value"; writer.writeFieldDeclaration(CoreTypes.JAVA_STRING, value, Expressions.callMethod("get", propertyName)); Expression condition = Expressions.fromString(value + " == null"); Expression ifTrue = Expressions.fromString("null"); Expression ifFalse = Expressions.staticMethod(enumType, "valueOf", value); TernaryExpression ternary = new TernaryExpression(condition, ifTrue, ifFalse); writer.writeStatement(ternary.returnExpr()); }
private void emitAliasedPropertyArray() throws IOException { writer.writeComment("--- aliased property references"); Expression aliasedPropertiesInit = Expressions.block(new Expression() { @Override public boolean writeExpression(JavaFileWriter writer) throws IOException { return emitPropertyReferenceArrayBody(true); } }, false, false, false, false); writer.writeFieldDeclaration(TypeConstants.PROPERTY_ARRAY, ALIASED_PROPERTY_ARRAY_NAME, aliasedPropertiesInit, TypeConstants.PUBLIC_STATIC_FINAL) .writeNewline(); writer.beginInitializerBlock(true, true); writer.writeStatement(Expressions.callMethod("validateAliasedProperties", ALIASED_PROPERTY_ARRAY_NAME)); writer.finishInitializerBlock(false, true); writer.writeNewline(); }