Program: 150532
Project: 150532
Buggy source:
private void generate(Database database,SchemaDefinition schema,StopWatch watch) throws SQLException, IOException {
  File targetSchemaDir=strategy.getFile(schema).getParentFile();
  GenerationWriter outS=null;
  GenerationWriter outF=null;
  if (!schema.isDefaultSchema()) {
    log.info("String_Node_Str",strategy.getFileName(schema));
    log.info("String_Node_Str");
    outS=new GenerationWriter(strategy.getFile(schema));
    printHeader(outS,schema);
    printClassJavadoc(outS,schema);
    outS.print("String_Node_Str");
    outS.print(strategy.getJavaClassName(schema));
    outS.print("String_Node_Str");
    outS.print(SchemaImpl.class);
    outS.println("String_Node_Str");
    outS.printSerial();
    outS.println();
    outS.println("String_Node_Str");
    outS.println("String_Node_Str" + schema.getName());
    outS.println("String_Node_Str");
    outS.println("String_Node_Str" + strategy.getJavaClassName(schema) + "String_Node_Str"+ strategy.getJavaIdentifierUC(schema)+ "String_Node_Str"+ strategy.getJavaClassName(schema)+ "String_Node_Str");
    outS.println();
    printNoFurtherInstancesAllowedJavadoc(outS);
    outS.println("String_Node_Str" + strategy.getJavaClassName(schema) + "String_Node_Str");
    outS.println("String_Node_Str" + schema.getName() + "String_Node_Str");
    outS.println("String_Node_Str");
    outS.printInitialisationStatementsPlaceholder();
    log.info("String_Node_Str",strategy.getFileName(schema,"String_Node_Str"));
    outF=new GenerationWriter(strategy.getFile(schema,"String_Node_Str"));
    printHeader(outF,schema);
    printClassJavadoc(outF,schema);
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(database.getDialect().getFactory());
    outF.println("String_Node_Str");
    outF.printSerial();
    outF.println();
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(Connection.class);
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println();
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(Connection.class);
    outF.print("String_Node_Str");
    outF.print(SchemaMapping.class);
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    watch.splitInfo("String_Node_Str");
  }
  if (database.getSequences(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + schema.getName());
    out.println("String_Node_Str");
    for (    SequenceDefinition sequence : database.getSequences(schema)) {
      out.println();
      out.println("String_Node_Str");
      out.println("String_Node_Str" + sequence.getQualifiedName());
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(Sequence.class);
      out.print("String_Node_Str");
      out.print(getJavaType(sequence.getType()));
      out.print("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(sequence));
      out.print("String_Node_Str");
      out.print(SequenceImpl.class);
      out.print("String_Node_Str");
      out.print(getJavaType(sequence.getType()));
      out.print("String_Node_Str");
      out.print("String_Node_Str");
      out.print(sequence.getName());
      out.print("String_Node_Str");
      if (!schema.isDefaultSchema()) {
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(schema));
      }
 else {
        out.print("String_Node_Str");
      }
      out.print("String_Node_Str");
      out.print(getJavaTypeReference(sequence.getDatabase(),sequence.getType()));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    registerInSchema(outS,database.getSequences(schema),Sequence.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (database.getMasterDataTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    MasterDataTableDefinition table : database.getMasterDataTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table));
        printHeader(out,table);
        printClassJavadoc(out,table);
        ColumnDefinition pk=table.getPrimaryKeyColumn();
        ColumnDefinition l=table.getLiteralColumn();
        ColumnDefinition d=table.getDescriptionColumn();
        Result<Record> data=table.getData();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.print(MasterDataType.class);
        out.print("String_Node_Str");
        out.print(data.getField(pk.getName()).getType());
        out.println("String_Node_Str");
        Set<ColumnDefinition> columns=new LinkedHashSet<ColumnDefinition>(Arrays.asList(pk,l,d));
        for (        Record record : data) {
          String literal=record.getValueAsString(l.getName());
          String description=record.getValueAsString(d.getName());
          if (!StringUtils.isEmpty(description)) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str" + description);
            out.println("String_Node_Str");
          }
          out.print("String_Node_Str");
          out.print(GenerationUtil.convertToJavaIdentifierEnum(literal));
          out.print("String_Node_Str");
          String separator="String_Node_Str";
          for (          ColumnDefinition column : columns) {
            out.print(separator);
            out.printNewJavaObject(record.getValue(column.getName()));
            separator="String_Node_Str";
          }
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        for (        ColumnDefinition column : columns) {
          out.print("String_Node_Str");
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.println(strategy.getJavaClassNameLC(column) + "String_Node_Str");
        }
        out.println();
        out.print("String_Node_Str" + strategy.getJavaClassName(table) + "String_Node_Str");
        String separator="String_Node_Str";
        for (        ColumnDefinition column : columns) {
          out.print(separator);
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          separator="String_Node_Str";
        }
        out.println("String_Node_Str");
        for (        ColumnDefinition column : columns) {
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        printOverride(out);
        out.print("String_Node_Str");
        out.print(data.getField(pk.getName()).getType());
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassNameLC(pk) + "String_Node_Str");
        out.println("String_Node_Str");
        for (        ColumnDefinition column : columns) {
          printFieldJavaDoc(out,column);
          out.print("String_Node_Str");
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassName(column));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table));
        printHeader(out,table);
        printClassJavadoc(out,table);
        Class<?> baseClass;
        if (generateRelations() && table.getMainUniqueKey() != null) {
          baseClass=UpdatableTableImpl.class;
        }
 else {
          baseClass=TableImpl.class;
        }
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.print(baseClass);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        printSingletonInstance(table,out);
        printRecordTypeMethod(table,out);
        for (        ColumnDefinition column : table.getColumns()) {
          printTableColumn(out,column,table);
        }
        out.println();
        printNoFurtherInstancesAllowedJavadoc(out);
        out.println("String_Node_Str" + strategy.getJavaClassName(table) + "String_Node_Str");
        if (!schema.isDefaultSchema()) {
          out.println("String_Node_Str" + table.getName() + "String_Node_Str"+ strategy.getFullJavaIdentifierUC(schema)+ "String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + table.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        if (generateInstanceFields()) {
          out.println();
          printNoFurtherInstancesAllowedJavadoc(out);
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassName(table));
          out.print("String_Node_Str");
          out.print(String.class);
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(schema));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.print("String_Node_Str");
          out.print(strategy.getJavaIdentifierUC(table));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        if (generateRelations()) {
          ColumnDefinition identity=table.getIdentity();
          if (identity != null) {
            out.println();
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Identity.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(getJavaType(table.getIdentity().getType()));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(strategy.getJavaPackageName(schema));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(identity.getContainer()));
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          UniqueKeyDefinition mainKey=table.getMainUniqueKey();
          if (mainKey != null) {
            out.println();
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(strategy.getJavaPackageName(schema));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(mainKey));
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          List<UniqueKeyDefinition> uniqueKeys=table.getUniqueKeys();
          if (uniqueKeys.size() > 0) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(List.class);
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Arrays.class);
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            UniqueKeyDefinition uniqueKey : uniqueKeys) {
              out.print(separator);
              out.print(strategy.getJavaPackageName(schema));
              out.print("String_Node_Str");
              out.print(strategy.getJavaIdentifier(uniqueKey));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          List<ForeignKeyDefinition> foreignKeys=table.getForeignKeys();
          if (foreignKeys.size() > 0) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(List.class);
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Arrays.class);
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ForeignKeyDefinition foreignKey : foreignKeys) {
              TableDefinition referencedTable=foreignKey.getReferencedTable();
              if (referencedTable instanceof MasterDataTableDefinition) {
                continue;
              }
              out.print(separator);
              out.print(strategy.getJavaPackageName(schema));
              out.print("String_Node_Str");
              out.print(strategy.getJavaIdentifier(foreignKey));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
        }
        if (generateInstanceFields()) {
          out.println();
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.print("String_Node_Str");
          out.print(String.class);
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.printStaticInitialisationStatementsPlaceholder();
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    registerInSchema(outS,database.getTables(schema),Table.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (generatePojos() && database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table,"String_Node_Str"));
        printHeader(out,table,"String_Node_Str");
        printClassJavadoc(out,table);
        printTableJPAAnnotation(out,table);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.println();
        out.printSerial();
        out.println();
        int maxLength=0;
        for (        ColumnDefinition column : table.getColumns()) {
          maxLength=Math.max(maxLength,getJavaType(column.getType()).length());
        }
        for (        ColumnDefinition column : table.getColumns()) {
          out.print("String_Node_Str");
          out.print(StringUtils.rightPad(getJavaType(column.getType()),maxLength));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
        }
        for (        ColumnDefinition column : table.getColumns()) {
          out.println();
          printColumnJPAAnnotation(out,column);
          out.print("String_Node_Str");
          out.print(getJavaType(column.getType()));
          out.print("String_Node_Str");
          out.print(strategy.getJavaGetterName(column));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
          out.println();
          out.print("String_Node_Str");
          out.print(strategy.getJavaSetterName(column));
          out.print("String_Node_Str");
          out.print(getJavaType(column.getType()));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + schema.getName());
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      out.println();
      out.println("String_Node_Str");
      if (!StringUtils.isBlank(table.getComment())) {
        out.println("String_Node_Str" + table.getComment());
      }
 else {
        out.println("String_Node_Str" + table.getQualifiedName());
      }
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(table));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(table));
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(table));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(table));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (generateRelations() && database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + schema.getName() + "String_Node_Str");
    out.suppressWarnings("String_Node_Str");
    out.print("String_Node_Str");
    out.print(AbstractKeys.class);
    out.println("String_Node_Str");
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        ColumnDefinition identity=table.getIdentity();
        if (identity != null) {
          out.print("String_Node_Str");
          out.print(Identity.class);
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(identity.getContainer(),"String_Node_Str"));
          out.print("String_Node_Str");
          out.print(getJavaType(identity.getType()));
          out.print("String_Node_Str");
          out.print(strategy.getJavaIdentifier(identity.getContainer()));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(identity.getContainer()));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(identity));
          out.println("String_Node_Str");
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        List<UniqueKeyDefinition> uniqueKeys=table.getUniqueKeys();
        if (uniqueKeys.size() > 0) {
          for (          UniqueKeyDefinition uniqueKey : uniqueKeys) {
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(uniqueKey.getTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(uniqueKey));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaIdentifierUC(uniqueKey.getTable()));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ColumnDefinition column : uniqueKey.getKeyColumns()) {
              out.print(separator);
              out.print(strategy.getFullJavaIdentifierUC(column));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
          }
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        List<ForeignKeyDefinition> foreignKeys=table.getForeignKeys();
        if (foreignKeys.size() > 0) {
          for (          ForeignKeyDefinition foreignKey : foreignKeys) {
            if (foreignKey.getReferencedTable() instanceof MasterDataTableDefinition) {
              continue;
            }
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(foreignKey.getKeyTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(foreignKey.getReferencedTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(foreignKey));
            out.print("String_Node_Str");
            if (!foreignKey.getSchema().equals(foreignKey.getReferencedKey().getSchema())) {
              out.print(strategy.getJavaPackageName(foreignKey.getReferencedKey().getSchema()));
              out.print("String_Node_Str");
            }
            out.print(strategy.getJavaIdentifier(foreignKey.getReferencedKey()));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaIdentifierUC(foreignKey.getKeyTable()));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ColumnDefinition column : foreignKey.getKeyColumns()) {
              out.print(separator);
              out.print(strategy.getFullJavaIdentifierUC(column));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
          }
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table,"String_Node_Str"));
        printHeader(out,table,"String_Node_Str");
        printClassJavadoc(out,table);
        printTableJPAAnnotation(out,table);
        Class<?> baseClass;
        if (generateRelations() && table.getMainUniqueKey() != null) {
          baseClass=UpdatableRecordImpl.class;
        }
 else {
          baseClass=TableRecordImpl.class;
        }
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(baseClass);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        for (        ColumnDefinition column : table.getColumns()) {
          printGetterAndSetter(out,column);
        }
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassName(table,"String_Node_Str") + "String_Node_Str");
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(table));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(udt));
        GenerationWriter out=new GenerationWriter(strategy.getFile(udt));
        printHeader(out,udt);
        printClassJavadoc(out,udt);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(udt));
        out.print("String_Node_Str");
        out.print(UDTImpl.class);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(udt,"String_Node_Str"));
        out.print("String_Node_Str");
        if (udt.getRoutines().size() > 0) {
          out.print("String_Node_Str");
          out.print(org.jooq.Package.class);
        }
        out.println("String_Node_Str");
        out.printSerial();
        printSingletonInstance(udt,out);
        printRecordTypeMethod(udt,out);
        for (        AttributeDefinition attribute : udt.getAttributes()) {
          printUDTColumn(out,attribute,udt);
        }
        for (        RoutineDefinition routine : udt.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(out,routine,false);
            }
 else {
              printConvenienceMethodFunction(out,routine,false);
              printConvenienceMethodFunctionAsField(out,routine,false);
              printConvenienceMethodFunctionAsField(out,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        out.println();
        printNoFurtherInstancesAllowedJavadoc(out);
        out.println("String_Node_Str" + strategy.getJavaClassName(udt) + "String_Node_Str");
        if (!schema.isDefaultSchema()) {
          out.println("String_Node_Str" + udt.getName() + "String_Node_Str"+ strategy.getFullJavaIdentifierUC(schema)+ "String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + udt.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
        if (outS != null) {
          outS.printInitialisationStatement("String_Node_Str" + schema.getName() + "String_Node_Str"+ udt.getName()+ "String_Node_Str"+ strategy.getFullJavaClassName(udt,"String_Node_Str")+ "String_Node_Str");
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + udt,e);
      }
    }
    registerInSchema(outS,database.getUDTs(schema),UDT.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(udt,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(udt,"String_Node_Str"));
        printHeader(out,udt,"String_Node_Str");
        printClassJavadoc(out,udt);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(udt,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(UDTRecordImpl.class);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(udt,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        out.println();
        for (        AttributeDefinition attribute : udt.getAttributes()) {
          printGetterAndSetter(out,attribute);
        }
        for (        RoutineDefinition routine : udt.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(out,routine,true);
            }
 else {
              printConvenienceMethodFunction(out,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        out.println();
        out.println("String_Node_Str" + strategy.getJavaClassName(udt,"String_Node_Str") + "String_Node_Str");
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(udt));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + udt,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      if (udt.getRoutines().size() > 0) {
        try {
          log.info("String_Node_Str");
          for (          RoutineDefinition routine : udt.getRoutines()) {
            try {
              printRoutine(database,schema,routine);
            }
 catch (            Exception e) {
              log.error("String_Node_Str" + routine,e);
            }
          }
        }
 catch (        Exception e) {
          log.error("String_Node_Str" + udt,e);
        }
        watch.splitInfo("String_Node_Str");
      }
    }
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + schema.getName());
    out.println("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      out.println();
      out.println("String_Node_Str");
      out.println("String_Node_Str" + udt.getQualifiedName());
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(udt));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(udt));
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(udt));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(udt));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getArrays(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    ArrayDefinition array : database.getArrays(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(array,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(array,"String_Node_Str"));
        printHeader(out,array,"String_Node_Str");
        printClassJavadoc(out,array);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(ArrayRecordImpl.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.println("String_Node_Str");
        out.printSerial();
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.println("String_Node_Str");
        out.print("String_Node_Str");
        out.print(array.getSchema().getName());
        out.print("String_Node_Str");
        out.print(array.getName());
        out.print("String_Node_Str");
        out.print(getJavaTypeReference(database,array.getElementType()));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.print("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.print("String_Node_Str");
        out.print(List.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.print("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + array,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getEnums(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    EnumDefinition e : database.getEnums(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(e));
        GenerationWriter out=new GenerationWriter(strategy.getFile(e));
        printHeader(out,e);
        printClassJavadoc(out,e);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(e));
        out.print("String_Node_Str");
        out.print(EnumType.class);
        out.print("String_Node_Str");
        out.println();
        for (        String literal : e.getLiterals()) {
          out.println("String_Node_Str" + GenerationUtil.convertToJavaIdentifierEnum(literal) + "String_Node_Str"+ literal+ "String_Node_Str");
          out.println();
        }
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str" + strategy.getJavaClassName(e) + "String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        if (e.isSynthetic()) {
          out.println("String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + e.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception ex) {
        log.error("String_Node_Str" + e,ex);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getRoutines(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter outR=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(outR,schema);
    printClassJavadoc(outR,"String_Node_Str" + schema.getName());
    outR.println("String_Node_Str");
    for (    RoutineDefinition routine : database.getRoutines(schema)) {
      try {
        printRoutine(database,schema,routine);
        if (!routine.isSQLUsable()) {
          printConvenienceMethodProcedure(outR,routine,false);
        }
 else {
          printConvenienceMethodFunction(outR,routine,false);
          printConvenienceMethodFunctionAsField(outR,routine,false);
          printConvenienceMethodFunctionAsField(outR,routine,true);
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + routine,e);
      }
    }
    printPrivateConstructor(outR,"String_Node_Str");
    outR.println("String_Node_Str");
    outR.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getPackages(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    PackageDefinition pkg : database.getPackages(schema)) {
      try {
        log.info("String_Node_Str",pkg);
        for (        RoutineDefinition routine : pkg.getRoutines()) {
          try {
            printRoutine(database,schema,routine);
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        GenerationWriter outPkg=new GenerationWriter(strategy.getFile(pkg));
        printHeader(outPkg,pkg);
        printClassJavadoc(outPkg,"String_Node_Str" + pkg.getName());
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaClassName(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(PackageImpl.class);
        outPkg.println("String_Node_Str");
        outPkg.printSerial();
        outPkg.println();
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str" + strategy.getJavaIdentifierUC(pkg));
        outPkg.println("String_Node_Str");
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaClassName(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaIdentifierUC(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaClassName(pkg));
        outPkg.println("String_Node_Str");
        for (        RoutineDefinition routine : pkg.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(outPkg,routine,false);
            }
 else {
              printConvenienceMethodFunction(outPkg,routine,false);
              printConvenienceMethodFunctionAsField(outPkg,routine,false);
              printConvenienceMethodFunctionAsField(outPkg,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        printNoFurtherInstancesAllowedJavadoc(outPkg);
        outPkg.println("String_Node_Str" + strategy.getJavaClassName(pkg) + "String_Node_Str");
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaIdentifierUC(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaIdentifierUC(schema));
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str");
        outPkg.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + pkg,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (outS != null) {
    outS.println("String_Node_Str");
    outS.close();
  }
  if (outF != null) {
    outF.println("String_Node_Str");
    outF.close();
  }
  watch.splitInfo("String_Node_Str");
}

Fixed version (ground truth):
private void generate(Database database,SchemaDefinition schema,StopWatch watch) throws SQLException, IOException {
  File targetSchemaDir=strategy.getFile(schema).getParentFile();
  GenerationWriter outS=null;
  GenerationWriter outF=null;
  if (!schema.isDefaultSchema()) {
    log.info("String_Node_Str",strategy.getFileName(schema));
    log.info("String_Node_Str");
    outS=new GenerationWriter(strategy.getFile(schema));
    printHeader(outS,schema);
    printClassJavadoc(outS,schema);
    outS.print("String_Node_Str");
    outS.print(strategy.getJavaClassName(schema));
    outS.print("String_Node_Str");
    outS.print(SchemaImpl.class);
    outS.println("String_Node_Str");
    outS.printSerial();
    outS.println();
    outS.println("String_Node_Str");
    outS.println("String_Node_Str" + database.getOutputSchema(schema.getName()));
    outS.println("String_Node_Str");
    outS.println("String_Node_Str" + strategy.getJavaClassName(schema) + "String_Node_Str"+ strategy.getJavaIdentifierUC(schema)+ "String_Node_Str"+ strategy.getJavaClassName(schema)+ "String_Node_Str");
    outS.println();
    printNoFurtherInstancesAllowedJavadoc(outS);
    outS.println("String_Node_Str" + strategy.getJavaClassName(schema) + "String_Node_Str");
    outS.println("String_Node_Str" + database.getOutputSchema(schema.getName()) + "String_Node_Str");
    outS.println("String_Node_Str");
    outS.printInitialisationStatementsPlaceholder();
    log.info("String_Node_Str",strategy.getFileName(schema,"String_Node_Str"));
    outF=new GenerationWriter(strategy.getFile(schema,"String_Node_Str"));
    printHeader(outF,schema);
    printClassJavadoc(outF,schema);
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(database.getDialect().getFactory());
    outF.println("String_Node_Str");
    outF.printSerial();
    outF.println();
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(Connection.class);
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println();
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.print("String_Node_Str");
    outF.print(strategy.getJavaClassName(schema,"String_Node_Str"));
    outF.print("String_Node_Str");
    outF.print(Connection.class);
    outF.print("String_Node_Str");
    outF.print(SchemaMapping.class);
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    outF.println("String_Node_Str");
    watch.splitInfo("String_Node_Str");
  }
  if (database.getSequences(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + database.getOutputSchema(schema.getName()));
    out.println("String_Node_Str");
    for (    SequenceDefinition sequence : database.getSequences(schema)) {
      out.println();
      out.println("String_Node_Str");
      out.println("String_Node_Str" + sequence.getQualifiedName());
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(Sequence.class);
      out.print("String_Node_Str");
      out.print(getJavaType(sequence.getType()));
      out.print("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(sequence));
      out.print("String_Node_Str");
      out.print(SequenceImpl.class);
      out.print("String_Node_Str");
      out.print(getJavaType(sequence.getType()));
      out.print("String_Node_Str");
      out.print("String_Node_Str");
      out.print(sequence.getName());
      out.print("String_Node_Str");
      if (!schema.isDefaultSchema()) {
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(schema));
      }
 else {
        out.print("String_Node_Str");
      }
      out.print("String_Node_Str");
      out.print(getJavaTypeReference(sequence.getDatabase(),sequence.getType()));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    registerInSchema(outS,database.getSequences(schema),Sequence.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (database.getMasterDataTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    MasterDataTableDefinition table : database.getMasterDataTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table));
        printHeader(out,table);
        printClassJavadoc(out,table);
        ColumnDefinition pk=table.getPrimaryKeyColumn();
        ColumnDefinition l=table.getLiteralColumn();
        ColumnDefinition d=table.getDescriptionColumn();
        Result<Record> data=table.getData();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.print(MasterDataType.class);
        out.print("String_Node_Str");
        out.print(data.getField(pk.getName()).getType());
        out.println("String_Node_Str");
        Set<ColumnDefinition> columns=new LinkedHashSet<ColumnDefinition>(Arrays.asList(pk,l,d));
        for (        Record record : data) {
          String literal=record.getValueAsString(l.getName());
          String description=record.getValueAsString(d.getName());
          if (!StringUtils.isEmpty(description)) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str" + description);
            out.println("String_Node_Str");
          }
          out.print("String_Node_Str");
          out.print(GenerationUtil.convertToJavaIdentifierEnum(literal));
          out.print("String_Node_Str");
          String separator="String_Node_Str";
          for (          ColumnDefinition column : columns) {
            out.print(separator);
            out.printNewJavaObject(record.getValue(column.getName()));
            separator="String_Node_Str";
          }
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        for (        ColumnDefinition column : columns) {
          out.print("String_Node_Str");
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.println(strategy.getJavaClassNameLC(column) + "String_Node_Str");
        }
        out.println();
        out.print("String_Node_Str" + strategy.getJavaClassName(table) + "String_Node_Str");
        String separator="String_Node_Str";
        for (        ColumnDefinition column : columns) {
          out.print(separator);
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          separator="String_Node_Str";
        }
        out.println("String_Node_Str");
        for (        ColumnDefinition column : columns) {
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        printOverride(out);
        out.print("String_Node_Str");
        out.print(data.getField(pk.getName()).getType());
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassNameLC(pk) + "String_Node_Str");
        out.println("String_Node_Str");
        for (        ColumnDefinition column : columns) {
          printFieldJavaDoc(out,column);
          out.print("String_Node_Str");
          out.print(data.getField(column.getName()).getType());
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassName(column));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassNameLC(column));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table));
        printHeader(out,table);
        printClassJavadoc(out,table);
        Class<?> baseClass;
        if (generateRelations() && table.getMainUniqueKey() != null) {
          baseClass=UpdatableTableImpl.class;
        }
 else {
          baseClass=TableImpl.class;
        }
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.print(baseClass);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        printSingletonInstance(table,out);
        printRecordTypeMethod(table,out);
        for (        ColumnDefinition column : table.getColumns()) {
          printTableColumn(out,column,table);
        }
        out.println();
        printNoFurtherInstancesAllowedJavadoc(out);
        out.println("String_Node_Str" + strategy.getJavaClassName(table) + "String_Node_Str");
        if (!schema.isDefaultSchema()) {
          out.println("String_Node_Str" + table.getName() + "String_Node_Str"+ strategy.getFullJavaIdentifierUC(schema)+ "String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + table.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        if (generateInstanceFields()) {
          out.println();
          printNoFurtherInstancesAllowedJavadoc(out);
          out.print("String_Node_Str");
          out.print(strategy.getJavaClassName(table));
          out.print("String_Node_Str");
          out.print(String.class);
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(schema));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.print("String_Node_Str");
          out.print(strategy.getJavaIdentifierUC(table));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        if (generateRelations()) {
          ColumnDefinition identity=table.getIdentity();
          if (identity != null) {
            out.println();
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Identity.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(getJavaType(table.getIdentity().getType()));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(strategy.getJavaPackageName(schema));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(identity.getContainer()));
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          UniqueKeyDefinition mainKey=table.getMainUniqueKey();
          if (mainKey != null) {
            out.println();
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(strategy.getJavaPackageName(schema));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(mainKey));
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          List<UniqueKeyDefinition> uniqueKeys=table.getUniqueKeys();
          if (uniqueKeys.size() > 0) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(List.class);
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Arrays.class);
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            UniqueKeyDefinition uniqueKey : uniqueKeys) {
              out.print(separator);
              out.print(strategy.getJavaPackageName(schema));
              out.print("String_Node_Str");
              out.print(strategy.getJavaIdentifier(uniqueKey));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
          List<ForeignKeyDefinition> foreignKeys=table.getForeignKeys();
          if (foreignKeys.size() > 0) {
            out.println();
            out.println("String_Node_Str");
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(List.class);
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.println("String_Node_Str");
            out.print("String_Node_Str");
            out.print(Arrays.class);
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ForeignKeyDefinition foreignKey : foreignKeys) {
              TableDefinition referencedTable=foreignKey.getReferencedTable();
              if (referencedTable instanceof MasterDataTableDefinition) {
                continue;
              }
              out.print(separator);
              out.print(strategy.getJavaPackageName(schema));
              out.print("String_Node_Str");
              out.print(strategy.getJavaIdentifier(foreignKey));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
            out.println("String_Node_Str");
          }
        }
        if (generateInstanceFields()) {
          out.println();
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.print("String_Node_Str");
          out.print(String.class);
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(table));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.printStaticInitialisationStatementsPlaceholder();
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    registerInSchema(outS,database.getTables(schema),Table.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (generatePojos() && database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table,"String_Node_Str"));
        printHeader(out,table,"String_Node_Str");
        printClassJavadoc(out,table);
        printTableJPAAnnotation(out,table);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table));
        out.print("String_Node_Str");
        out.println();
        out.printSerial();
        out.println();
        int maxLength=0;
        for (        ColumnDefinition column : table.getColumns()) {
          maxLength=Math.max(maxLength,getJavaType(column.getType()).length());
        }
        for (        ColumnDefinition column : table.getColumns()) {
          out.print("String_Node_Str");
          out.print(StringUtils.rightPad(getJavaType(column.getType()),maxLength));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
        }
        for (        ColumnDefinition column : table.getColumns()) {
          out.println();
          printColumnJPAAnnotation(out,column);
          out.print("String_Node_Str");
          out.print(getJavaType(column.getType()));
          out.print("String_Node_Str");
          out.print(strategy.getJavaGetterName(column));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
          out.println();
          out.print("String_Node_Str");
          out.print(strategy.getJavaSetterName(column));
          out.print("String_Node_Str");
          out.print(getJavaType(column.getType()));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.print("String_Node_Str");
          out.print(convertToJavaIdentifierEnum(strategy.getJavaClassNameLC(column)));
          out.println("String_Node_Str");
          out.println("String_Node_Str");
        }
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + database.getOutputSchema(schema.getName()));
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      out.println();
      out.println("String_Node_Str");
      if (!StringUtils.isBlank(table.getComment())) {
        out.println("String_Node_Str" + table.getComment());
      }
 else {
        out.println("String_Node_Str" + table.getQualifiedName());
      }
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(table));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(table));
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(table));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(table));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (generateRelations() && database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + database.getOutputSchema(schema.getName()) + "String_Node_Str");
    out.suppressWarnings("String_Node_Str");
    out.print("String_Node_Str");
    out.print(AbstractKeys.class);
    out.println("String_Node_Str");
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        ColumnDefinition identity=table.getIdentity();
        if (identity != null) {
          out.print("String_Node_Str");
          out.print(Identity.class);
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaClassName(identity.getContainer(),"String_Node_Str"));
          out.print("String_Node_Str");
          out.print(getJavaType(identity.getType()));
          out.print("String_Node_Str");
          out.print(strategy.getJavaIdentifier(identity.getContainer()));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(identity.getContainer()));
          out.print("String_Node_Str");
          out.print(strategy.getFullJavaIdentifierUC(identity));
          out.println("String_Node_Str");
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        List<UniqueKeyDefinition> uniqueKeys=table.getUniqueKeys();
        if (uniqueKeys.size() > 0) {
          for (          UniqueKeyDefinition uniqueKey : uniqueKeys) {
            out.print("String_Node_Str");
            out.print(UniqueKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(uniqueKey.getTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(uniqueKey));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaIdentifierUC(uniqueKey.getTable()));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ColumnDefinition column : uniqueKey.getKeyColumns()) {
              out.print(separator);
              out.print(strategy.getFullJavaIdentifierUC(column));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
          }
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    out.println();
    out.println("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        List<ForeignKeyDefinition> foreignKeys=table.getForeignKeys();
        if (foreignKeys.size() > 0) {
          for (          ForeignKeyDefinition foreignKey : foreignKeys) {
            if (foreignKey.getReferencedTable() instanceof MasterDataTableDefinition) {
              continue;
            }
            out.print("String_Node_Str");
            out.print(ForeignKey.class);
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(foreignKey.getKeyTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaClassName(foreignKey.getReferencedTable(),"String_Node_Str"));
            out.print("String_Node_Str");
            out.print(strategy.getJavaIdentifier(foreignKey));
            out.print("String_Node_Str");
            if (!foreignKey.getSchema().equals(foreignKey.getReferencedKey().getSchema())) {
              out.print(strategy.getJavaPackageName(foreignKey.getReferencedKey().getSchema()));
              out.print("String_Node_Str");
            }
            out.print(strategy.getJavaIdentifier(foreignKey.getReferencedKey()));
            out.print("String_Node_Str");
            out.print(strategy.getFullJavaIdentifierUC(foreignKey.getKeyTable()));
            out.print("String_Node_Str");
            String separator="String_Node_Str";
            for (            ColumnDefinition column : foreignKey.getKeyColumns()) {
              out.print(separator);
              out.print(strategy.getFullJavaIdentifierUC(column));
              separator="String_Node_Str";
            }
            out.println("String_Node_Str");
          }
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getTables(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    TableDefinition table : database.getTables(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(table,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(table,"String_Node_Str"));
        printHeader(out,table,"String_Node_Str");
        printClassJavadoc(out,table);
        printTableJPAAnnotation(out,table);
        Class<?> baseClass;
        if (generateRelations() && table.getMainUniqueKey() != null) {
          baseClass=UpdatableRecordImpl.class;
        }
 else {
          baseClass=TableRecordImpl.class;
        }
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(table,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(baseClass);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        for (        ColumnDefinition column : table.getColumns()) {
          printGetterAndSetter(out,column);
        }
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassName(table,"String_Node_Str"));
        out.println("String_Node_Str");
        out.println("String_Node_Str" + strategy.getJavaClassName(table,"String_Node_Str") + "String_Node_Str");
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(table));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + table,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(udt));
        GenerationWriter out=new GenerationWriter(strategy.getFile(udt));
        printHeader(out,udt);
        printClassJavadoc(out,udt);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(udt));
        out.print("String_Node_Str");
        out.print(UDTImpl.class);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(udt,"String_Node_Str"));
        out.print("String_Node_Str");
        if (udt.getRoutines().size() > 0) {
          out.print("String_Node_Str");
          out.print(org.jooq.Package.class);
        }
        out.println("String_Node_Str");
        out.printSerial();
        printSingletonInstance(udt,out);
        printRecordTypeMethod(udt,out);
        for (        AttributeDefinition attribute : udt.getAttributes()) {
          printUDTColumn(out,attribute,udt);
        }
        for (        RoutineDefinition routine : udt.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(out,routine,false);
            }
 else {
              printConvenienceMethodFunction(out,routine,false);
              printConvenienceMethodFunctionAsField(out,routine,false);
              printConvenienceMethodFunctionAsField(out,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        out.println();
        printNoFurtherInstancesAllowedJavadoc(out);
        out.println("String_Node_Str" + strategy.getJavaClassName(udt) + "String_Node_Str");
        if (!schema.isDefaultSchema()) {
          out.println("String_Node_Str" + udt.getName() + "String_Node_Str"+ strategy.getFullJavaIdentifierUC(schema)+ "String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + udt.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
        if (outS != null) {
          outS.printInitialisationStatement("String_Node_Str" + database.getOutputSchema(schema.getName()) + "String_Node_Str"+ udt.getName()+ "String_Node_Str"+ strategy.getFullJavaClassName(udt,"String_Node_Str")+ "String_Node_Str");
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + udt,e);
      }
    }
    registerInSchema(outS,database.getUDTs(schema),UDT.class,true);
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(udt,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(udt,"String_Node_Str"));
        printHeader(out,udt,"String_Node_Str");
        printClassJavadoc(out,udt);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(udt,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(UDTRecordImpl.class);
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaClassName(udt,"String_Node_Str"));
        out.println("String_Node_Str");
        out.printSerial();
        out.println();
        for (        AttributeDefinition attribute : udt.getAttributes()) {
          printGetterAndSetter(out,attribute);
        }
        for (        RoutineDefinition routine : udt.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(out,routine,true);
            }
 else {
              printConvenienceMethodFunction(out,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        out.println();
        out.println("String_Node_Str" + strategy.getJavaClassName(udt,"String_Node_Str") + "String_Node_Str");
        out.print("String_Node_Str");
        out.print(strategy.getFullJavaIdentifierUC(udt));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + udt,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getUDTs(schema).size() > 0) {
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      if (udt.getRoutines().size() > 0) {
        try {
          log.info("String_Node_Str");
          for (          RoutineDefinition routine : udt.getRoutines()) {
            try {
              printRoutine(database,schema,routine);
            }
 catch (            Exception e) {
              log.error("String_Node_Str" + routine,e);
            }
          }
        }
 catch (        Exception e) {
          log.error("String_Node_Str" + udt,e);
        }
        watch.splitInfo("String_Node_Str");
      }
    }
  }
  if (database.getUDTs(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter out=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(out,schema);
    printClassJavadoc(out,"String_Node_Str" + database.getOutputSchema(schema.getName()));
    out.println("String_Node_Str");
    for (    UDTDefinition udt : database.getUDTs(schema)) {
      out.println();
      out.println("String_Node_Str");
      out.println("String_Node_Str" + udt.getQualifiedName());
      out.println("String_Node_Str");
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(udt));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(udt));
      out.print("String_Node_Str");
      out.print(strategy.getFullJavaClassName(udt));
      out.print("String_Node_Str");
      out.print(strategy.getJavaIdentifierUC(udt));
      out.println("String_Node_Str");
    }
    printPrivateConstructor(out,"String_Node_Str");
    out.println("String_Node_Str");
    out.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getArrays(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    ArrayDefinition array : database.getArrays(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(array,"String_Node_Str"));
        GenerationWriter out=new GenerationWriter(strategy.getFile(array,"String_Node_Str"));
        printHeader(out,array,"String_Node_Str");
        printClassJavadoc(out,array);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(ArrayRecordImpl.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.println("String_Node_Str");
        out.printSerial();
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.println("String_Node_Str");
        out.print("String_Node_Str");
        out.print(array.getSchema().getName());
        out.print("String_Node_Str");
        out.print(array.getName());
        out.print("String_Node_Str");
        out.print(getJavaTypeReference(database,array.getElementType()));
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.print("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(array,"String_Node_Str"));
        out.print("String_Node_Str");
        out.print(Configuration.class);
        out.print("String_Node_Str");
        out.print(List.class);
        out.print("String_Node_Str");
        out.print(getJavaType(array.getElementType()));
        out.print("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + array,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getEnums(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    EnumDefinition e : database.getEnums(schema)) {
      try {
        log.info("String_Node_Str",strategy.getFileName(e));
        GenerationWriter out=new GenerationWriter(strategy.getFile(e));
        printHeader(out,e);
        printClassJavadoc(out,e);
        out.print("String_Node_Str");
        out.print(strategy.getJavaClassName(e));
        out.print("String_Node_Str");
        out.print(EnumType.class);
        out.print("String_Node_Str");
        out.println();
        for (        String literal : e.getLiterals()) {
          out.println("String_Node_Str" + GenerationUtil.convertToJavaIdentifierEnum(literal) + "String_Node_Str"+ literal+ "String_Node_Str");
          out.println();
        }
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str" + strategy.getJavaClassName(e) + "String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        if (e.isSynthetic()) {
          out.println("String_Node_Str");
        }
 else {
          out.println("String_Node_Str" + e.getName() + "String_Node_Str");
        }
        out.println("String_Node_Str");
        out.println();
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.println("String_Node_Str");
        out.close();
      }
 catch (      Exception ex) {
        log.error("String_Node_Str" + e,ex);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (database.getRoutines(schema).size() > 0) {
    log.info("String_Node_Str");
    GenerationWriter outR=new GenerationWriter(new File(targetSchemaDir,"String_Node_Str"));
    printHeader(outR,schema);
    printClassJavadoc(outR,"String_Node_Str" + database.getOutputSchema(schema.getName()));
    outR.println("String_Node_Str");
    for (    RoutineDefinition routine : database.getRoutines(schema)) {
      try {
        printRoutine(database,schema,routine);
        if (!routine.isSQLUsable()) {
          printConvenienceMethodProcedure(outR,routine,false);
        }
 else {
          printConvenienceMethodFunction(outR,routine,false);
          printConvenienceMethodFunctionAsField(outR,routine,false);
          printConvenienceMethodFunctionAsField(outR,routine,true);
        }
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + routine,e);
      }
    }
    printPrivateConstructor(outR,"String_Node_Str");
    outR.println("String_Node_Str");
    outR.close();
    watch.splitInfo("String_Node_Str");
  }
  if (database.getPackages(schema).size() > 0) {
    log.info("String_Node_Str");
    for (    PackageDefinition pkg : database.getPackages(schema)) {
      try {
        log.info("String_Node_Str",pkg);
        for (        RoutineDefinition routine : pkg.getRoutines()) {
          try {
            printRoutine(database,schema,routine);
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        GenerationWriter outPkg=new GenerationWriter(strategy.getFile(pkg));
        printHeader(outPkg,pkg);
        printClassJavadoc(outPkg,"String_Node_Str" + pkg.getName());
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaClassName(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(PackageImpl.class);
        outPkg.println("String_Node_Str");
        outPkg.printSerial();
        outPkg.println();
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str" + strategy.getJavaIdentifierUC(pkg));
        outPkg.println("String_Node_Str");
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaClassName(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaIdentifierUC(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaClassName(pkg));
        outPkg.println("String_Node_Str");
        for (        RoutineDefinition routine : pkg.getRoutines()) {
          try {
            if (!routine.isSQLUsable()) {
              printConvenienceMethodProcedure(outPkg,routine,false);
            }
 else {
              printConvenienceMethodFunction(outPkg,routine,false);
              printConvenienceMethodFunctionAsField(outPkg,routine,false);
              printConvenienceMethodFunctionAsField(outPkg,routine,true);
            }
          }
 catch (          Exception e) {
            log.error("String_Node_Str" + routine,e);
          }
        }
        printNoFurtherInstancesAllowedJavadoc(outPkg);
        outPkg.println("String_Node_Str" + strategy.getJavaClassName(pkg) + "String_Node_Str");
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getJavaIdentifierUC(pkg));
        outPkg.print("String_Node_Str");
        outPkg.print(strategy.getFullJavaIdentifierUC(schema));
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str");
        outPkg.println("String_Node_Str");
        outPkg.close();
      }
 catch (      Exception e) {
        log.error("String_Node_Str" + pkg,e);
      }
    }
    watch.splitInfo("String_Node_Str");
  }
  if (outS != null) {
    outS.println("String_Node_Str");
    outS.close();
  }
  if (outF != null) {
    outF.println("String_Node_Str");
    outF.close();
  }
  watch.splitInfo("String_Node_Str");
}