Last active
January 22, 2017 02:53
-
-
Save edefazio/0e566868ab5f134720cfde6db24b9b11 to your computer and use it in GitHub Desktop.
varcode example build enum Model
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package usecase.model; | |
| import varcode.java.Java; | |
| import varcode.java.adhoc.Export; | |
| import varcode.java.model._enum; | |
| public class ModelEnum | |
| { | |
| static _enum _ModelOfEnum = _enum.of( | |
| "package usecase.model;", | |
| "import java.util.UUID;", | |
| "import java.io.Serializable", | |
| "/** Enum Javadoc comment */", | |
| "@Deprecated", | |
| "public enum ModelOfEnum implements Serializable" ) | |
| .staticBlock( "System.out.println( \"In Enum Static Block\" );" ) | |
| .field( "private static final long serialVersionUID = 42L;" ) | |
| .property( // a "property is a field with getter method | |
| "/** Field JavaDoc */", | |
| "@Deprecated", | |
| "public final int memberField;" ) | |
| .method( | |
| "/** Method Javadoc*/", | |
| "@Deprecated", | |
| "public String getId( String prefix )", | |
| "return prefix + UUID.randomUUID().toString();" ) | |
| .mainMethod( "System.out.println( \"Hello Enum Main Method\");" ) | |
| .constructor( | |
| "/** constructor Javadoc */", | |
| "@Deprecated", | |
| "private ModelOfEnum( int fieldValue )", | |
| "this.memberField = fieldValue;" ) | |
| .constant( "A", 1 ) | |
| .constant( "B", 2 ); | |
| public static void main( String[] args ) | |
| { | |
| Export.dir( "C:\\MyApp\\src\\main\\java" ).toFile( _ModelOfEnum ); | |
| Class enumClass = _ModelOfEnum.loadClass(); | |
| Object[] constants = enumClass.getEnumConstants(); | |
| Java.callMain( constants[0] ); //call the main method using Enum class | |
| Java.call( constants[0], "getId", "somePrefix" ); //call static method on constant instance | |
| //export the "C:/MyApp/target/classes/usecase/model/ModelOfEnum.class" | |
| Export.dir( "C:\\MyApp\\target\\classes" ).toFile( enumClass ); //export the enum .class to a file | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
contents of the exported .java source code at "C:/MyApp/src/main/java/usecase/model/ModelEnum.java"