diff --git a/querydsl-core/src/main/java/com/mysema/query/codegen/QueryTypeFactory.java b/querydsl-core/src/main/java/com/mysema/query/codegen/QueryTypeFactory.java new file mode 100644 index 000000000..ed0eafddd --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/codegen/QueryTypeFactory.java @@ -0,0 +1,33 @@ +package com.mysema.query.codegen; + +import com.mysema.codegen.model.SimpleType; +import com.mysema.codegen.model.Type; +import com.mysema.codegen.model.TypeCategory; + +public class QueryTypeFactory { + + private final String prefix, suffix; + + public QueryTypeFactory(String prefix, String suffix) { + this.prefix = prefix; + this.suffix = suffix; + } + + public Type create(Type type){ + String packageName = type.getPackageName(); + TypeCategory category = type.getCategory(); + if (type.getPackageName().isEmpty()){ + String simpleName = prefix + normalizeName(type.getFullName()) + suffix; + return new SimpleType(category, simpleName, "", simpleName, false, false); + }else{ + String simpleName = prefix + normalizeName(type.getFullName().substring(packageName.length()+1)) + suffix; + return new SimpleType(category, packageName+"."+simpleName, packageName, simpleName, false, false); + } + } + + private String normalizeName(String name){ + return name.replace('.', '_').replace('$', '_'); + } + + +}