/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.test.configuration.mutablefactory.generated; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; /** * @author Emmanuel Bernard */ public final class Generator { private Generator() { //not allowed } public static void main(String[] args) { StringBuilder generated = new StringBuilder( ); generated.append( "package org.hibernate.search.test.configuration.mutablefactory.generated;\n\n" ) .append( "import org.hibernate.search.annotations.DocumentId;\n" ) .append( "import org.hibernate.search.annotations.Field;\n" ) .append( "import org.hibernate.search.annotations.Indexed;\n\n" ) .append( "/** Class generated container 100 inner classes */" ) .append( "public class Generated {\n" ); StringBuilder inner = new StringBuilder( ); inner.append( "\t" ).append( "@Indexed" ).append( "\n" ) .append( "\t" ).append( "public static class Ax {" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "public Ax(Integer id, String name) { this.id = id; this.name = name; }" ).append( "\n\n" ) .append( "\t" ).append( "\t" ).append( "@DocumentId" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "public Integer getId() {return id;}" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "public void setId(Integer id) { this.id = id; }" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "private Integer id;" ).append( "\n\n" ) .append( "\t" ).append( "\t" ).append( "@Field" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "public String getName() {return name;}" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "public void setName(String name) { this.name = name; }" ).append( "\n" ) .append( "\t" ).append( "\t" ).append( "private String name;" ).append( "\n" ) .append( "\t}\n\n" ); String innerString = inner.toString(); for ( int i = 0 ; i < 100 ; i++ ) { generated.append( innerString.replace( "Ax", "A" + i ) ); } generated.append( "}\n" ); File f = new File( "./Generated.java" ); try { OutputStreamWriter fw = new OutputStreamWriter( new FileOutputStream( f ), "UTF-8" ); fw.write( generated.toString() ); fw.close(); } catch (IOException e) { System.out.println( "Error while generating classes" ); e.printStackTrace(); } System.out.println( "Generated in :" + f.getAbsolutePath() ); } }