Skip to content

Commit

Permalink
#81 fixed getKeyForPath usage
Browse files Browse the repository at this point in the history
  • Loading branch information
timowest committed Jan 12, 2012
1 parent 6b58387 commit 32bce2b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
Expand Up @@ -497,18 +497,17 @@ private Type createInterfaceType(DeclaredType declaredType, TypeElement typeElem

String simpleName = typeElement.getSimpleName().toString();
Iterator<? extends TypeMirror> i = declaredType.getTypeArguments().iterator();
String declaredName = declaredType.toString();

if (isAssignable(declaredType, mapType) || declaredName.contains("Map")) {
if (isAssignable(declaredType, mapType)) {
return createMapType(simpleName, i, deep);

} else if (isAssignable(declaredType, listType) || declaredName.contains("List")) {
} else if (isAssignable(declaredType, listType)) {
return createCollectionType(Types.LIST, simpleName, i, deep);

} else if (isAssignable(declaredType, setType) || declaredName.contains("Set")) {
} else if (isAssignable(declaredType, setType)) {
return createCollectionType(Types.SET, simpleName, i, deep);

} else if (isAssignable(declaredType, collectionType) || declaredName.contains("Collection")) {
} else if (isAssignable(declaredType, collectionType)) {
return createCollectionType(Types.COLLECTION, simpleName, i, deep);

} else {
Expand Down Expand Up @@ -561,7 +560,8 @@ private Set<Type> getSupertypes(TypeMirror typeMirror, Type type, boolean deep)
}

private boolean isAssignable(TypeMirror type, TypeMirror iface) {
return env.getTypeUtils().isAssignable(type, iface);
return env.getTypeUtils().isAssignable(type, iface)
|| env.getTypeUtils().erasure(type).equals(iface);
}

private boolean isSubType(TypeMirror type1, TypeMirror type2) {
Expand Down
Expand Up @@ -227,22 +227,18 @@ else if (op == MongodbOps.NEAR) {
throw new UnsupportedOperationException("Illegal operation " + expr);
}



@Override
public Object visit(Path<?> expr, Void context) {
PathMetadata<?> metadata = expr.getMetadata();
String rv = getKeyForPath(expr, metadata);

if (metadata.getParent() != null){
if (metadata.getPathType() == PathType.COLLECTION_ANY){
return visit(metadata.getParent(), context);
}else if (metadata.getParent().getMetadata().getPathType() != PathType.VARIABLE){
String rv = getKeyForPath(expr, metadata);
return visit(metadata.getParent(), context) + "." + rv;
}
}

return rv;
}
return getKeyForPath(expr, metadata);
}

protected String getKeyForPath(Path<?> expr, PathMetadata<?> metadata) {
Expand Down

0 comments on commit 32bce2b

Please sign in to comment.