Skip to content

Instantly share code, notes, and snippets.

View edefazio's full-sized avatar
🙂
Focusing

edefazio

🙂
Focusing
View GitHub Profile
@edefazio
edefazio / com.squareup.javapoet.adhoc.JavaPoetAdhocTest.java
Last active June 16, 2019 20:12
build JavaPoet models and compile / load and use dynamic instances at runtime with Adhoc
package com.squareup.javapoet.adhoc;
import com.squareup.javapoet.*;
import javax.lang.model.element.Modifier;
import junit.framework.TestCase;
import run.adhoc.*;
/**
* Show how to work with the JavaPoetAdhoc abstraction, to compile/load and
* use dynamically build code from JavaPoet models.
@edefazio
edefazio / draft.tutorial.usecase.JavaPoet_v_draft.java
Last active February 19, 2019 18:38
compare the JavaPoet and draft.java APIs for generating .java code
package draft.tutorial.usecase;
import com.squareup.javapoet.*;
import draft.java.*;
import draft.java.macro.*;
import draft.java.runtime.*;
import draft.java.template.$method;
import java.io.IOException;
import java.util.*;
import javax.lang.model.element.Modifier;
@edefazio
edefazio / draftJava.jsh
Created August 21, 2018 00:38
JShell script for generating (and exporting) Java code using the draft API
/env --module-path C:\temp\jars\draft.jar;C:\temp\jars\javaparser-core-3.6.14.jar; --add-modules draft
import draft.java.*;
import draft.java.auto.*;
_class _c = _class.of("draftshell.gen.Point").fields("int x,y");
_autoDto.to(_c);
_out.to("C:\\temp", _c);
@edefazio
edefazio / tutorial._draft_2_$macro.java
Created July 2, 2018 23:34
demonstrate using $macros to modify _class models and reduce boilerplate code
package tutorial;
import draft.java.*;
import draft.java.file._export;
import draft.java.macro.*;
import junit.framework.TestCase;
import java.util.*;
/**
@edefazio
edefazio / example._draft_2_$macro.java
Created July 2, 2018 23:23
Demonstrate using $macros to modify _draft models to automate boilerplate
package example;
import draft.java.*;
import draft.java.file._export;
import draft.java.macro.*;
import junit.framework.TestCase;
import java.util.*;
public class _draft_2_$macro extends TestCase {
@edefazio
edefazio / example._draft_1.java
Last active July 2, 2018 22:17
Example Demonstrating using _draft API to create compile. load. export, and use Java code at runtime
package example;
import draft.java.*;
import draft.java.file.*;
import draft.java.runtime.*;
import junit.framework.TestCase;
public class _draft_1 extends TestCase {
@edefazio
edefazio / tutorial._draft_1.java
Created July 2, 2018 22:08
Demonstrate _draft .java code generation, dynamic compilation, loading and using on the fly code
package tutorial;
import draft.java.*;
import draft.java.file.*;
import draft.java.runtime._javac;
import draft.java.runtime._proxy;
import junit.framework.TestCase;
import java.util.List;
@edefazio
edefazio / example._draft_2_$macro.java
Created July 2, 2018 02:03
Demonstrate applying _draft $macros to code (and show how to build your own)
package example;
import draft.java.*;
import draft.java.file._export;
import draft.java.macro.*;
import junit.framework.TestCase;
import java.util.*;
/**
@edefazio
edefazio / usecase.model.ModelAnnotationType.java
Last active February 8, 2017 17:58
varcode build model of annotation type example
package usecase.model;
import varcode.java.adhoc.Export;
import varcode.java.model._annotationType;
public class ModelAnnotationType
{
static _annotationType _ModelOfAnnotation = _annotationType.of(
"package usecase.model;",
"import java.lang.annotation.Retention;",
@edefazio
edefazio / usecase.model.ModelEnum.java
Last active January 22, 2017 02:53
varcode example build enum Model
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;",