private static void registerJTSTypes(TypeMappings typeMappings) { Map<String, String> additions = Maps.newHashMap(); additions.put("Geometry", "JTSGeometryPath"); additions.put("GeometryCollection", "JTSGeometryCollectionPath"); additions.put("LinearRing", "JTSLinearRingPath"); additions.put("LineString", "JTSLineStringPath"); additions.put("MultiLineString", "JTSMultiLineStringPath"); additions.put("MultiPoint", "JTSMultiPointPath"); additions.put("MultiPolygon", "JTSMultiPolygonPath"); additions.put("Point", "JTSPointPath"); additions.put("Polygon", "JTSPolygonPath"); for (Map.Entry<String, String> entry : additions.entrySet()) { typeMappings.register( new SimpleType("com.vividsolutions.jts.geom." + entry.getKey()), new SimpleType("com.querydsl.spatial.jts." + entry.getValue())); } }
public Type getPathType(Type type, EntityType model, boolean raw) { return getPathType(type, model, raw, false, false); }
@Test public void isRegistered() { TypeMappings typeMappings = new JavaTypeMappings(); typeMappings.register(new ClassType(Double[].class), new ClassType(Point.class)); assertTrue(typeMappings.isRegistered(new ClassType(Double[].class))); }
@Test public void getPathType_of_innerClass() { TypeMappings typeMappings = new JavaTypeMappings(); EntityType model = new EntityType(new ClassType(TypeMappingsTest.class)); EntityType type = new EntityType(new ClassType(Entity.class)); typeMappings.register(type, new QueryTypeFactoryImpl("Q","","").create(type)); Type pathType = typeMappings.getPathType(type, model, false); assertEquals("QTypeMappingsTest_Entity", pathType.getSimpleName()); }
if (typeMappings.isRegistered(property.getType()) && property.getType().getCategory() != TypeCategory.CUSTOM && property.getType().getCategory() != TypeCategory.ENTITY) { Type queryType = typeMappings.getPathType(propertyType, model, false); Type genericQueryType = null; String localRawName = writer.getRawName(property.getType()); genericQueryType = typeMappings.getPathType(getRaw(property.getParameter(0)), model, false); String genericKey = writer.getGenericName(true, property.getParameter(0)); localRawName = writer.getRawName(property.getParameter(0)); queryType = typeMappings.getPathType(property.getParameter(0), model, true); genericQueryType = typeMappings.getPathType(getRaw(property.getParameter(0)), model, false); genericKey = writer.getGenericName(true, property.getParameter(0)); localRawName = writer.getRawName(property.getParameter(0)); queryType = typeMappings.getPathType(property.getParameter(0), model, true); genericQueryType = typeMappings.getPathType(getRaw(property.getParameter(0)), model, false); genericKey = writer.getGenericName(true, property.getParameter(0)); localRawName = writer.getRawName(property.getParameter(0)); queryType = typeMappings.getPathType(property.getParameter(0), model, true); genericKey = writer.getGenericName(true, property.getParameter(0)); String genericValue = writer.getGenericName(true, property.getParameter(1)); genericQueryType = typeMappings.getPathType(getRaw(property.getParameter(1)), model, false); String keyType = writer.getRawName(property.getParameter(0)); String valueType = writer.getRawName(property.getParameter(1)); queryType = typeMappings.getPathType(property.getParameter(1), model, true);
public Type getTemplateType(Type type, EntityType model, boolean raw, boolean rawParameters, boolean extend) { return getQueryType(templateTypes, type, model, raw, rawParameters, extend); }
public Type getExprType(Type type, EntityType model, boolean raw) { return getExprType(type, model, raw, false, false); }
@Test public void getPathType_of_innerClass() { TypeMappings typeMappings = new JavaTypeMappings(); EntityType model = new EntityType(new ClassType(TypeMappingsTest.class)); EntityType type = new EntityType(new ClassType(Entity.class)); typeMappings.register(type, new QueryTypeFactoryImpl("Q","","").create(type)); Type pathType = typeMappings.getPathType(type, model, false); assertEquals("QTypeMappingsTest_Entity", pathType.getSimpleName()); }
private Type getQueryType(Map<TypeCategory, Type> types, Type type, EntityType model, boolean raw, boolean rawParameters, boolean extend) { Type exprType = types.get(type.getCategory()); return getQueryType(type, model, exprType, raw, rawParameters, extend); }
@Override public Parameter apply(Parameter p) { Type type; if (!asExpr) { type = typeMappings.getExprType( p.getType(), model, false, false, true); } else if (p.getType().isFinal()) { type = new ClassType(Expression.class, p.getType()); } else { type = new ClassType(Expression.class, new TypeExtends(p.getType())); } return new Parameter(p.getName(), type); } });
private static void registerTypes(TypeMappings typeMappings) { Map<String, String> additions = Maps.newHashMap(); additions.put("Geometry", "GeometryPath"); additions.put("GeometryCollection", "GeometryCollectionPath"); additions.put("LinearRing", "LinearRingPath"); additions.put("LineString", "LineStringPath"); additions.put("MultiLineString", "MultiLineStringPath"); additions.put("MultiPoint", "MultiPointPath"); additions.put("MultiPolygon", "MultiPolygonPath"); additions.put("Point", "PointPath"); additions.put("Polygon", "PolygonPath"); additions.put("PolyHedralSurface", "PolyhedralSurfacePath"); for (Map.Entry<String, String> entry : additions.entrySet()) { typeMappings.register( new SimpleType("org.geolatte.geom." + entry.getKey()), new SimpleType("com.querydsl.spatial." + entry.getValue())); } }
private void serialize(Serializer serializer, Map<Class<?>, EntityType> types) throws IOException { for (Map.Entry<Class<?>, EntityType> entityType : types.entrySet()) { Type type = typeMappings.getPathType(entityType.getValue(), entityType.getValue(), true); String packageName = type.getPackageName(); String className = packageName.length() > 0 ? (packageName + "." + type.getSimpleName()) : type.getSimpleName(); SerializerConfig config = serializerConfig; if (entityType.getKey().isAnnotationPresent(Config.class)) { config = SimpleSerializerConfig.getConfig(entityType.getKey().getAnnotation(Config.class)); } String fileSuffix = createScalaSources ? ".scala" : ".java"; write(serializer, className.replace('.', '/') + fileSuffix, config, entityType.getValue()); } }
@Test public void customType() throws IOException { SimpleType type = new SimpleType(TypeCategory.ENTITY, "Entity", "", "Entity",false,false); EntityType entityType = new EntityType(type); entityType.addProperty(new Property(entityType, "property", new ClassType(Double[].class))); typeMappings.register(new ClassType(Double[].class), new ClassType(Point.class)); typeMappings.register(entityType, queryTypeFactory.create(entityType)); assertTrue(typeMappings.isRegistered(entityType.getProperties().iterator().next().getType())); serializer.serialize(entityType, SimpleSerializerConfig.DEFAULT, new JavaWriter(writer)); assertTrue(writer.toString().contains( "public final com.querydsl.codegen.Point property = " + "new com.querydsl.codegen.Point(forProperty(\"property\"));")); }
public Type getPathType(Type type, EntityType model, boolean raw, boolean rawParameters, boolean extend) { if (queryTypes.containsKey(type.getFullName())) { return queryTypes.get(type.getFullName()); } else { return getQueryType(pathTypes, type, model, raw, rawParameters, extend); } }
@Override public Parameter apply(Parameter p) { Type type; if (!asExpr) { type = typeMappings.getExprType(p.getType(), model, false, false, true); } else if (p.getType().isFinal()) { type = new ClassType(Expression.class, p.getType()); } else { type = new ClassType(Expression.class, new TypeExtends(p.getType())); } return new Parameter(p.getName(), type); } });
private Type createEnumType(DeclaredType declaredType, TypeElement typeElement, boolean deep) { // fallback Type enumType = createType(typeElement, TypeCategory.ENUM, declaredType.getTypeArguments(), deep); for (Class<? extends Annotation> entityAnn : entityAnnotations) { if (typeElement.getAnnotation(entityAnn) != null) { EntityType entityType = new EntityType(enumType, variableNameFunction); typeMappings.register(entityType, queryTypeFactory.create(entityType)); return entityType; } } return enumType; }
protected void introDefaultInstance(CodeWriter writer, EntityType model, String defaultName) throws IOException { String simpleName = !defaultName.isEmpty() ? defaultName : model.getModifiedSimpleName(); Type queryType = typeMappings.getPathType(model, model, true); String alias = simpleName; if (keywords.contains(simpleName.toUpperCase())) { alias += "1"; } writer.publicStaticFinal(queryType, simpleName, NEW + queryType.getSimpleName() + "(\"" + alias + "\")"); }
@Test public void isRegistered() { TypeMappings typeMappings = new JavaTypeMappings(); typeMappings.register(new ClassType(Double[].class), new ClassType(Point.class)); assertTrue(typeMappings.isRegistered(new ClassType(Double[].class))); }
public Type getExprType(Type type, EntityType model, boolean raw, boolean rawParameters, boolean extend) { if (queryTypes.containsKey(type.getFullName())) { return queryTypes.get(type.getFullName()); } else { return getQueryType(exprTypes, type, model, raw, rawParameters, extend); } }
public <T> void addCustomType(Class<T> type, Class<? extends Expression<T>> queryType) { module.get(TypeMappings.class).register(new ClassType(type), new ClassType(queryType)); }