private void addAccessorDocumentationForRowids(JavaFileWriter writer, PropertyGenerator propertyGenerator, boolean getter) throws IOException { if (propertyGenerator instanceof RowidPropertyGenerator) { if (DEFAULT_ROWID_PROPERTY_NAME.equals(propertyGenerator.getPropertyName())) { writer.writeAnnotation(CoreTypes.OVERRIDE); } else { writer.writeJavadoc(" This " + (getter ? "getter" : "setter") + " is an alias for " + (getter ? "get" : "set") + "RowId(), as the underlying column is an INTEGER PRIMARY KEY"); } } }
@Override public void emitPropertyDeclaration(JavaFileWriter writer) throws IOException { if (isDeprecated) { writer.writeAnnotation(CoreTypes.DEPRECATED); } List<Object> constructorArgs = new ArrayList<>(); constructorArgs.add(TableModelFileWriter.TABLE_MODEL_NAME); constructorArgs.add("\"" + columnName + "\""); String columnDef = getColumnDefinition(); if (!AptUtils.isEmpty(columnDef)) { constructorArgs.add(columnDef); } writer.writeFieldDeclaration(getPropertyType(), propertyName, Expressions.callConstructor(getPropertyType(), constructorArgs), TypeConstants.PUBLIC_STATIC_FINAL); }
@Override public void afterEmitPropertyDeclaration(JavaFileWriter writer, PropertyGenerator propertyGenerator) throws IOException { if (propertyGenerator instanceof RowidPropertyGenerator) { if (((TableModelSpecWrapper) modelSpec).isVirtualTable()) { writer.writeAnnotation(CoreTypes.DEPRECATED); writer.writeFieldDeclaration(TypeConstants.LONG_PROPERTY, DEFAULT_ID_PROPERTY_NAME, Expressions.fromString(DEFAULT_ROWID_PROPERTY_NAME), TypeConstants.PUBLIC_STATIC_FINAL); } writeRowidSupportMethods(writer, propertyGenerator.getPropertyName()); } }
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(); }
private void beginClassDeclaration() throws IOException { if (modelSpec.getModelSpecElement().getAnnotation(Deprecated.class) != null) { writer.writeAnnotation(CoreTypes.DEPRECATED); } TypeDeclarationParameters params = new TypeDeclarationParameters() .setName(modelSpec.getGeneratedClassName()) .setSuperclass(modelSpec.getModelSuperclass()) .setInterfaces(accumulateInterfacesFromPlugins()) .setKind(Type.CLASS) .setModifiers(Modifier.PUBLIC); writer.beginTypeDefinition(params); }
@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(); }
.cast(modelSpec.getGeneratedClassName()).returnExpr(); writer.writeAnnotation(CoreTypes.OVERRIDE); writer.beginMethodDefinition(cloneParams) .writeStatement(cloneBody)
private void addAccessorDocumentationForRowids(JavaFileWriter writer, PropertyGenerator propertyGenerator, boolean getter) throws IOException { if (propertyGenerator instanceof RowidPropertyGenerator) { if (DEFAULT_ROWID_PROPERTY_NAME.equals(propertyGenerator.getPropertyName())) { writer.writeAnnotation(CoreTypes.OVERRIDE); } else { writer.writeJavadoc(" This " + (getter ? "getter" : "setter") + " is an alias for " + (getter ? "get" : "set") + "RowId(), as the underlying column is an INTEGER PRIMARY KEY"); } } }
@Override public void emitPropertyDeclaration(JavaFileWriter writer) throws IOException { if (isDeprecated) { writer.writeAnnotation(CoreTypes.DEPRECATED); } List<Object> constructorArgs = new ArrayList<>(); constructorArgs.add(TableModelFileWriter.TABLE_MODEL_NAME); constructorArgs.add("\"" + columnName + "\""); String columnDef = getColumnDefinition(); if (!AptUtils.isEmpty(columnDef)) { constructorArgs.add(columnDef); } writer.writeFieldDeclaration(getPropertyType(), propertyName, Expressions.callConstructor(getPropertyType(), constructorArgs), TypeConstants.PUBLIC_STATIC_FINAL); }
@Override public void afterEmitPropertyDeclaration(JavaFileWriter writer, PropertyGenerator propertyGenerator) throws IOException { if (propertyGenerator instanceof RowidPropertyGenerator) { if (((TableModelSpecWrapper) modelSpec).isVirtualTable()) { writer.writeAnnotation(CoreTypes.DEPRECATED); writer.writeFieldDeclaration(TypeConstants.LONG_PROPERTY, DEFAULT_ID_PROPERTY_NAME, Expressions.fromString(DEFAULT_ROWID_PROPERTY_NAME), TypeConstants.PUBLIC_STATIC_FINAL); } writeRowidSupportMethods(writer, propertyGenerator.getPropertyName()); } }
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(); }
private void beginClassDeclaration() throws IOException { if (modelSpec.getModelSpecElement().getAnnotation(Deprecated.class) != null) { writer.writeAnnotation(CoreTypes.DEPRECATED); } TypeDeclarationParameters params = new TypeDeclarationParameters() .setName(modelSpec.getGeneratedClassName()) .setSuperclass(modelSpec.getModelSuperclass()) .setInterfaces(accumulateInterfacesFromPlugins()) .setKind(Type.CLASS) .setModifiers(Modifier.PUBLIC); writer.beginTypeDefinition(params); }
@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(); }
.cast(modelSpec.getGeneratedClassName()).returnExpr(); writer.writeAnnotation(CoreTypes.OVERRIDE); writer.beginMethodDefinition(cloneParams) .writeStatement(cloneBody)