@Override protected void writeGetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { writer.writeStringStatement("return super.getRowId()"); }
@Override protected void writeSetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { writer.writeStringStatement("super.setRowId(" + params.getArgumentNames().get(0) + ")"); writer.writeStringStatement("return this"); } }
/** * 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"); }
@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"); }
@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 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 emitTableModelMapper() throws IOException { writer.writeComment("--- mappers"); writer.writeFieldDeclaration(TypeConstants.TABLE_MAPPING_VISITORS, "tableMappingInfo", Expressions.callMethod("generateTableMappingVisitors", PROPERTIES_ARRAY_NAME, ALIASED_PROPERTY_ARRAY_NAME, BASE_PROPERTY_ARRAY_NAME), TypeConstants.PRIVATE_STATIC_FINAL) .writeNewline(); writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(GET_TABLE_MAPPING_VISITORS) .writeStringStatement("return tableMappingInfo") .finishMethodDefinition(); }
@Override public void emitMethods(JavaFileWriter writer) throws IOException { // If rowid property generator hasn't already done it, need to generate // overridden setRowId with appropriate return type if (!pluginEnv.hasSquidbOption(PluginEnvironment.OPTIONS_DISABLE_DEFAULT_GETTERS_AND_SETTERS)) { RowidPropertyGenerator rowidPropertyGenerator = modelSpec .getMetadata(METADATA_KEY_ROWID_ALIAS_PROPERTY_GENERATOR); if (rowidPropertyGenerator != null && !"setRowId".equals(rowidPropertyGenerator.setterMethodName())) { MethodDeclarationParameters params = new MethodDeclarationParameters() .setModifiers(Modifier.PUBLIC) .setMethodName("setRowId") .setArgumentTypes(CoreTypes.PRIMITIVE_LONG) .setArgumentNames("rowid") .setReturnType(modelSpec.getGeneratedClassName()); writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(params) .writeStringStatement("super.setRowId(rowid)") .writeStringStatement("return this") .finishMethodDefinition(); } } }
.setConstructorName(modelSpec.getGeneratedClassName()); writer.beginConstructorDeclaration(params) .writeStringStatement("super()") .finishMethodDefinition(); params.setArgumentTypes(squidCursorType).setArgumentNames("cursor"); writer.beginConstructorDeclaration(params) .writeStringStatement("this()") .writeStringStatement("readPropertiesFromCursor(cursor)") .finishMethodDefinition(); .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(); }
protected void emitDefaultValues() throws IOException { writer.writeComment("--- default values"); writer.writeFieldDeclaration(TypeConstants.VALUES_STORAGE, DEFAULT_VALUES_NAME, Expressions.callMethodOn( Expressions.callConstructor(modelSpec.getGeneratedClassName()), "newValuesStorage"), Modifier.PROTECTED, Modifier.STATIC, Modifier.FINAL); if (pluginEnv.hasSquidbOption(PluginEnvironment.OPTIONS_DISABLE_DEFAULT_VALUES)) { writer.writeComment("--- property defaults disabled by plugin flag"); } else { writer.beginInitializerBlock(true, true) .writeComment("--- put property defaults"); emitDefaultValuesInitializationBlock(); writer.finishInitializerBlock(false, true).writeNewline(); } writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(GET_DEFAULT_VALUES_PARAMS) .writeStringStatement("return " + DEFAULT_VALUES_NAME) .finishMethodDefinition(); }
@Override protected void writeGetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { writer.writeStringStatement("return super.getRowId()"); }
@Override protected void writeSetterBody(JavaFileWriter writer, MethodDeclarationParameters params) throws IOException { writer.writeStringStatement("super.setRowId(" + params.getArgumentNames().get(0) + ")"); writer.writeStringStatement("return this"); } }
/** * 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"); }
@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 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 emitTableModelMapper() throws IOException { writer.writeComment("--- mappers"); writer.writeFieldDeclaration(TypeConstants.TABLE_MAPPING_VISITORS, "tableMappingInfo", Expressions.callMethod("generateTableMappingVisitors", PROPERTIES_ARRAY_NAME, ALIASED_PROPERTY_ARRAY_NAME, BASE_PROPERTY_ARRAY_NAME), TypeConstants.PRIVATE_STATIC_FINAL) .writeNewline(); writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(GET_TABLE_MAPPING_VISITORS) .writeStringStatement("return tableMappingInfo") .finishMethodDefinition(); }
@Override public void emitMethods(JavaFileWriter writer) throws IOException { // If rowid property generator hasn't already done it, need to generate // overridden setRowId with appropriate return type if (!pluginEnv.hasSquidbOption(PluginEnvironment.OPTIONS_DISABLE_DEFAULT_GETTERS_AND_SETTERS)) { RowidPropertyGenerator rowidPropertyGenerator = modelSpec .getMetadata(METADATA_KEY_ROWID_ALIAS_PROPERTY_GENERATOR); if (rowidPropertyGenerator != null && !"setRowId".equals(rowidPropertyGenerator.setterMethodName())) { MethodDeclarationParameters params = new MethodDeclarationParameters() .setModifiers(Modifier.PUBLIC) .setMethodName("setRowId") .setArgumentTypes(CoreTypes.PRIMITIVE_LONG) .setArgumentNames("rowid") .setReturnType(modelSpec.getGeneratedClassName()); writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(params) .writeStringStatement("super.setRowId(rowid)") .writeStringStatement("return this") .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(); }
protected void emitDefaultValues() throws IOException { writer.writeComment("--- default values"); writer.writeFieldDeclaration(TypeConstants.VALUES_STORAGE, DEFAULT_VALUES_NAME, Expressions.callMethodOn( Expressions.callConstructor(modelSpec.getGeneratedClassName()), "newValuesStorage"), Modifier.PROTECTED, Modifier.STATIC, Modifier.FINAL); if (pluginEnv.hasSquidbOption(PluginEnvironment.OPTIONS_DISABLE_DEFAULT_VALUES)) { writer.writeComment("--- property defaults disabled by plugin flag"); } else { writer.beginInitializerBlock(true, true) .writeComment("--- put property defaults"); emitDefaultValuesInitializationBlock(); writer.finishInitializerBlock(false, true).writeNewline(); } writer.writeAnnotation(CoreTypes.OVERRIDE) .beginMethodDefinition(GET_DEFAULT_VALUES_PARAMS) .writeStringStatement("return " + DEFAULT_VALUES_NAME) .finishMethodDefinition(); }