aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Popov <int02h@gmail.com>2018-11-12 07:32:46 +0300
committerJake Wharton <jakewharton@gmail.com>2018-11-11 23:32:46 -0500
commit30a8bdaa2224f224be04261b9fceea6cd7048cd5 (patch)
tree9e962771f75cd2d9cbb0ca0ba431db13d09fbd55
parentea7a02ee88f8a3aa9afd3a9268390f4f9fee4b59 (diff)
downloadjavapoet-30a8bdaa2224f224be04261b9fceea6cd7048cd5.tar.gz
Public getter for canonical name of ClassName (#687)
-rw-r--r--src/main/java/com/squareup/javapoet/ClassName.java8
-rw-r--r--src/test/java/com/squareup/javapoet/ClassNameTest.java10
2 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/squareup/javapoet/ClassName.java b/src/main/java/com/squareup/javapoet/ClassName.java
index 99c4ed2..e044985 100644
--- a/src/main/java/com/squareup/javapoet/ClassName.java
+++ b/src/main/java/com/squareup/javapoet/ClassName.java
@@ -138,6 +138,14 @@ public final class ClassName extends TypeName implements Comparable<ClassName> {
return simpleName;
}
+ /**
+ * Returns the full class name of this class.
+ * Like {@code "java.util.Map.Entry"} for {@link Map.Entry}.
+ * */
+ public String canonicalName() {
+ return canonicalName;
+ }
+
public static ClassName get(Class<?> clazz) {
checkNotNull(clazz, "clazz == null");
checkArgument(!clazz.isPrimitive(), "primitive types cannot be represented as a ClassName");
diff --git a/src/test/java/com/squareup/javapoet/ClassNameTest.java b/src/test/java/com/squareup/javapoet/ClassNameTest.java
index e2cc55e..590ad5d 100644
--- a/src/test/java/com/squareup/javapoet/ClassNameTest.java
+++ b/src/test/java/com/squareup/javapoet/ClassNameTest.java
@@ -193,4 +193,14 @@ public final class ClassNameTest {
assertEquals("Foo$Bar$Baz", ClassName.get("", "Foo", "Bar", "Baz").reflectionName());
assertEquals("a.b.c.Foo$Bar$Baz", ClassName.get("a.b.c", "Foo", "Bar", "Baz").reflectionName());
}
+
+ @Test
+ public void canonicalName() {
+ assertEquals("java.lang.Object", TypeName.OBJECT.canonicalName());
+ assertEquals("java.lang.Thread.State", ClassName.get(Thread.State.class).canonicalName());
+ assertEquals("java.util.Map.Entry", ClassName.get(Map.Entry.class).canonicalName());
+ assertEquals("Foo", ClassName.get("", "Foo").canonicalName());
+ assertEquals("Foo.Bar.Baz", ClassName.get("", "Foo", "Bar", "Baz").canonicalName());
+ assertEquals("a.b.c.Foo.Bar.Baz", ClassName.get("a.b.c", "Foo", "Bar", "Baz").canonicalName());
+ }
}