diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2017-04-14 15:43:20 +0200 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2017-04-14 15:43:20 +0200 |
commit | 7cd83c2e73deb47d79e71cc6afc3eb4b613302d1 (patch) | |
tree | 3acd7ed0094034c2cd57ce84573c824b555fecf4 /javaparser-core/src/main/java/com/github/javaparser/ast/type | |
parent | fb5ace2780cb770721de30672ba3df6210e1dfe2 (diff) | |
download | javaparser-7cd83c2e73deb47d79e71cc6afc3eb4b613302d1.tar.gz |
* Make "asString" methods for types
* Strip signature types of annotations and generics
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/type')
10 files changed, 84 insertions, 18 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java index 9111a729b..ac26028c7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java @@ -22,23 +22,25 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; +import com.github.javaparser.metamodel.ArrayTypeMetaModel; +import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.utils.Pair; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; + import static com.github.javaparser.ast.NodeList.nodeList; import static com.github.javaparser.utils.Utils.assertNotNull; -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.visitor.CloneVisitor; -import com.github.javaparser.metamodel.ArrayTypeMetaModel; -import com.github.javaparser.metamodel.JavaParserMetaModel; /** * To indicate that a type is an array, it gets wrapped in an ArrayType for every array level it has. @@ -179,6 +181,11 @@ public class ArrayType extends ReferenceType implements NodeWithAnnotations<Arra } @Override + public String asString() { + return componentType.asString() + "[]"; + } + + @Override public ArrayType clone() { return (ArrayType) accept(new CloneVisitor(), null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java index aef700f84..78f28c57f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.SimpleName; @@ -29,16 +30,18 @@ import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName; import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments; import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; +import com.github.javaparser.metamodel.ClassOrInterfaceTypeMetaModel; +import com.github.javaparser.metamodel.JavaParserMetaModel; + import java.util.Arrays; import java.util.List; import java.util.Optional; + import static com.github.javaparser.utils.Utils.assertNotNull; -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.visitor.CloneVisitor; -import com.github.javaparser.metamodel.ClassOrInterfaceTypeMetaModel; -import com.github.javaparser.metamodel.JavaParserMetaModel; +import static java.util.stream.Collectors.joining; /** * A class or an interface type. <br/><code>Object</code> <br/><code>HashMap<String, String></code> @@ -201,6 +204,16 @@ public final class ClassOrInterfaceType extends ReferenceType implements NodeWit return super.remove(node); } + @Override + public String asString() { + StringBuilder str = new StringBuilder(); + getScope().ifPresent(s -> str.append(s.asString()).append(".")); + str.append(name.asString()); + + getTypeArguments().ifPresent(ta -> str.append(ta.stream().map(Type::asString).collect(joining(",", "<", ">")))); + return str.toString(); + } + public ClassOrInterfaceType removeScope() { return setScope((ClassOrInterfaceType) null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java index 56ce3b57c..6e609c1a0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java @@ -22,19 +22,22 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; +import com.github.javaparser.metamodel.IntersectionTypeMetaModel; +import com.github.javaparser.metamodel.JavaParserMetaModel; + import java.util.Arrays; import java.util.List; + import static com.github.javaparser.utils.Utils.assertNotNull; -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.visitor.CloneVisitor; -import com.github.javaparser.metamodel.IntersectionTypeMetaModel; -import com.github.javaparser.metamodel.JavaParserMetaModel; +import static java.util.stream.Collectors.joining; /** * Represents a set of types. A given value of this type has to be assignable to at all of the element types. @@ -121,4 +124,9 @@ public class IntersectionType extends Type implements NodeWithAnnotations<Inters public IntersectionTypeMetaModel getMetaModel() { return JavaParserMetaModel.intersectionTypeMetaModel; } + + @Override + public String asString() { + return elements.stream().map(Type::asString).collect(joining("&")); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java index 74b9db401..1eea75ca1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java @@ -153,6 +153,7 @@ public final class PrimitiveType extends Type implements NodeWithAnnotations<Pri return this; } + @Override public String asString() { return type.asString(); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java index 7eb94f9fe..2f70f5f66 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java @@ -98,6 +98,8 @@ public abstract class Type extends Node { return super.remove(node); } + public abstract String asString(); + @Override public Type clone() { return (Type) accept(new CloneVisitor(), null); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java index 5bb2800e2..90f2db6a4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java @@ -31,8 +31,12 @@ import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import java.util.Arrays; +import java.util.Iterator; import java.util.List; import static com.github.javaparser.utils.Utils.assertNotNull; +import static com.github.javaparser.utils.Utils.isNullOrEmpty; +import static java.util.stream.Collectors.joining; + import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.TypeParameterMetaModel; @@ -174,4 +178,11 @@ public final class TypeParameter extends ReferenceType<TypeParameter> implements public TypeParameterMetaModel getMetaModel() { return JavaParserMetaModel.typeParameterMetaModel; } + + @Override + public String asString() { + StringBuilder str = new StringBuilder(getNameAsString()); + getTypeBound().ifNonEmpty(l -> str.append(l.stream().map(ClassOrInterfaceType::asString).collect(joining("&", " extends ", "")))); + return str.toString(); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java index db4048952..09a8d8aef 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java @@ -31,6 +31,8 @@ import com.github.javaparser.ast.visitor.VoidVisitor; import java.util.Arrays; import java.util.List; import static com.github.javaparser.utils.Utils.assertNotNull; +import static java.util.stream.Collectors.joining; + import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.UnionTypeMetaModel; @@ -110,6 +112,11 @@ public class UnionType extends Type implements NodeWithAnnotations<UnionType> { } @Override + public String asString() { + return elements.stream().map(Type::asString).collect(joining("|")); + } + + @Override public UnionType clone() { return (UnionType) accept(new CloneVisitor(), null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java index 39c1f7630..a36a44cf8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java @@ -84,6 +84,11 @@ public final class UnknownType extends Type { } @Override + public String asString() { + return ""; + } + + @Override public UnknownType clone() { return (UnknownType) accept(new CloneVisitor(), null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java index 19674031a..92e378ca4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java @@ -80,6 +80,11 @@ public final class VoidType extends Type implements NodeWithAnnotations<VoidType } @Override + public String asString() { + return "void"; + } + + @Override public VoidType clone() { return (VoidType) accept(new CloneVisitor(), null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java index 61c532041..430c38db0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java @@ -22,19 +22,20 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.ast.observer.ObservableProperty; +import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; +import com.github.javaparser.metamodel.JavaParserMetaModel; +import com.github.javaparser.metamodel.WildcardTypeMetaModel; + import java.util.Arrays; import java.util.List; import java.util.Optional; -import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.visitor.CloneVisitor; -import com.github.javaparser.metamodel.WildcardTypeMetaModel; -import com.github.javaparser.metamodel.JavaParserMetaModel; /** * A wildcard type argument. @@ -120,7 +121,6 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild * * @param extendedType the extends, can be null * @return this, the WildcardType - * * @deprecated use setExtendedType instead, */ @Deprecated @@ -151,7 +151,6 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild * * @param superType the super, can be null * @return this, the WildcardType - * * @deprecated use setSuperType instead */ @Deprecated @@ -188,6 +187,14 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild return super.remove(node); } + @Override + public String asString() { + StringBuilder str = new StringBuilder("?"); + getExtendedType().ifPresent(t -> str.append(" extends ").append(t.asString())); + getSuperType().ifPresent(t -> str.append(" super ").append(t.asString())); + return str.toString(); + } + @Deprecated public WildcardType removeExtendedTypes() { return removeExtendedType(); |