Search in sources :

Example 1 with ScalaWriter

use of com.querydsl.codegen.utils.ScalaWriter in project querydsl by querydsl.

the class GenericExporter method write.

private void write(Serializer serializer, String path, SerializerConfig serializerConfig, EntityType type) throws IOException {
    File targetFile = new File(targetFolder, path);
    generatedFiles.add(targetFile);
    try (Writer w = writerFor(targetFile)) {
        CodeWriter writer = createScalaSources ? new ScalaWriter(w) : new JavaWriter(w);
        serializer.serialize(type, serializerConfig, writer);
    }
}
Also used : JavaWriter(com.querydsl.codegen.utils.JavaWriter) ScalaWriter(com.querydsl.codegen.utils.ScalaWriter) File(java.io.File) CodeWriter(com.querydsl.codegen.utils.CodeWriter) ScalaWriter(com.querydsl.codegen.utils.ScalaWriter) OutputStreamWriter(java.io.OutputStreamWriter) CodeWriter(com.querydsl.codegen.utils.CodeWriter) Writer(java.io.Writer) JavaWriter(com.querydsl.codegen.utils.JavaWriter)

Example 2 with ScalaWriter

use of com.querydsl.codegen.utils.ScalaWriter in project querydsl by querydsl.

the class MetaDataExporter method write.

private void write(Serializer serializer, File targetFile, EntityType type) throws IOException {
    if (!classes.add(targetFile.getPath())) {
        throw new IllegalStateException("Attempted to write multiple times to " + targetFile.getPath() + ", please check your configuration");
    }
    StringWriter w = new StringWriter();
    CodeWriter writer = createScalaSources ? new ScalaWriter(w) : new JavaWriter(w);
    serializer.serialize(type, SimpleSerializerConfig.DEFAULT, writer);
    // conditional creation
    boolean generate = true;
    byte[] bytes = w.toString().getBytes(sourceEncoding);
    if (targetFile.exists() && targetFile.length() == bytes.length) {
        String str = new String(Files.readAllBytes(targetFile.toPath()), Charset.forName(sourceEncoding));
        if (str.equals(w.toString())) {
            generate = false;
        }
    } else {
        targetFile.getParentFile().mkdirs();
    }
    if (generate) {
        Files.write(targetFile.toPath(), bytes);
    }
}
Also used : StringWriter(java.io.StringWriter) JavaWriter(com.querydsl.codegen.utils.JavaWriter) ScalaWriter(com.querydsl.codegen.utils.ScalaWriter) CodeWriter(com.querydsl.codegen.utils.CodeWriter)

Example 3 with ScalaWriter

use of com.querydsl.codegen.utils.ScalaWriter in project querydsl by querydsl.

the class ScalaTypeDump method test.

@Test
@Ignore
public void test() throws IOException {
    List<Class<?>> classes = new ArrayList<Class<?>>();
    classes.add(SimpleExpression.class);
    classes.add(ComparableExpression.class);
    classes.add(BooleanExpression.class);
    classes.add(StringExpression.class);
    classes.add(TemporalExpression.class);
    classes.add(TimeExpression.class);
    classes.add(DateTimeExpression.class);
    classes.add(DateExpression.class);
    classes.add(EnumExpression.class);
    classes.add(NumberExpression.class);
    StringWriter w = new StringWriter();
    ScalaWriter writer = new ScalaWriter(w);
    writer.packageDecl("com.querydsl.scala");
    writer.imports(Expression.class.getPackage());
    for (Class<?> cl : classes) {
        Type type = new ClassType(cl);
        Type superClass = new ClassType(cl.getSuperclass());
        writer.beginClass(type, superClass);
        for (Method m : cl.getDeclaredMethods()) {
            List<Parameter> params = new ArrayList<Parameter>();
            for (Class<?> paramType : m.getParameterTypes()) {
                params.add(new Parameter("arg" + params.size(), new ClassType(paramType)));
            }
            Type returnType = new ClassType(m.getReturnType());
            writer.beginPublicMethod(returnType, ":" + m.getName(), params.toArray(new Parameter[0]));
            writer.end();
        }
        writer.end();
    }
    System.out.println(w);
}
Also used : Type(com.querydsl.codegen.utils.model.Type) ClassType(com.querydsl.codegen.utils.model.ClassType) StringWriter(java.io.StringWriter) Expression(com.querydsl.core.types.Expression) ArrayList(java.util.ArrayList) Parameter(com.querydsl.codegen.utils.model.Parameter) ScalaWriter(com.querydsl.codegen.utils.ScalaWriter) Method(java.lang.reflect.Method) ClassType(com.querydsl.codegen.utils.model.ClassType) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

ScalaWriter (com.querydsl.codegen.utils.ScalaWriter)3 CodeWriter (com.querydsl.codegen.utils.CodeWriter)2 JavaWriter (com.querydsl.codegen.utils.JavaWriter)2 StringWriter (java.io.StringWriter)2 ClassType (com.querydsl.codegen.utils.model.ClassType)1 Parameter (com.querydsl.codegen.utils.model.Parameter)1 Type (com.querydsl.codegen.utils.model.Type)1 Expression (com.querydsl.core.types.Expression)1 File (java.io.File)1 OutputStreamWriter (java.io.OutputStreamWriter)1 Writer (java.io.Writer)1 Method (java.lang.reflect.Method)1 ArrayList (java.util.ArrayList)1 Ignore (org.junit.Ignore)1 Test (org.junit.Test)1