PT #166273505: Fix JSON -> POJO conversions for arbitrary map

This commit is contained in:
BoykoAlex
2019-05-27 18:07:59 -04:00
parent 5563962dc7
commit 7fde0bc301
7 changed files with 199 additions and 169 deletions

View File

@@ -42,7 +42,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -62,7 +62,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -82,7 +82,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -126,7 +126,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -146,11 +146,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.Map\u003c+TK;+TV;\u003e;",
"name": "Ljava/util/Map\u003c+TK;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Map;"
"name": "Ljava/util/Map;"
},
"arguments": [
{
@@ -188,15 +188,15 @@
"label": "void java.util.Map.clear()"
},
{
"bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;",
"bindingKey": "Ljava/util/Map;.keySet()Ljava/util/Set\u003cTK;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Set\u003cTK;\u003e;",
"name": "Ljava/util/Set\u003cTK;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Set;"
"name": "Ljava/util/Set;"
},
"arguments": [
{
@@ -215,15 +215,15 @@
"label": "Set\u003cK\u003e java.util.Map.keySet()"
},
{
"bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;",
"bindingKey": "Ljava/util/Map;.values()Ljava/util/Collection\u003cTV;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Collection\u003cTV;\u003e;",
"name": "Ljava/util/Collection\u003cTV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Collection;"
"name": "Ljava/util/Collection;"
},
"arguments": [
{
@@ -242,24 +242,24 @@
"label": "Collection\u003cV\u003e java.util.Map.values()"
},
{
"bindingKey": "Ljava/util/Map;.entrySet()Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;",
"bindingKey": "Ljava/util/Map;.entrySet()Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;",
"name": "Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Set;"
"name": "Ljava/util/Set;"
},
"arguments": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;",
"name": "Ljava/util/Map$Entry\u003cTK;TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Map$Entry;"
"name": "Ljava/util/Map$Entry;"
},
"arguments": [
{
@@ -294,7 +294,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -329,7 +329,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
},
{
"kind": "TYPE_VARIABLE",
@@ -353,11 +353,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;",
"name": "Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiConsumer;"
"name": "Ljava/util/function/BiConsumer;"
},
"arguments": [
{
@@ -389,11 +389,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -453,11 +453,11 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
},
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -533,11 +533,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;",
"name": "Ljava/util/function/Function\u003c-TK;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.Function;"
"name": "Ljava/util/function/Function;"
},
"arguments": [
{
@@ -573,11 +573,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -617,11 +617,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -665,11 +665,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{

View File

@@ -5,7 +5,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
},
"enumConstant": false,
"annotations": [],
@@ -19,7 +19,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address",
"type": {
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
},
"enumConstant": false,
"annotations": [],
@@ -33,7 +33,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
"name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;"
},
"enumConstant": false,
"annotations": [
@@ -55,7 +55,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
},
"enumConstant": false,
"annotations": [],
@@ -69,7 +69,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
},
"enumConstant": false,
"annotations": [],
@@ -97,7 +97,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout",
"type": {
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
},
"enumConstant": false,
"annotations": [],
@@ -111,7 +111,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
},
"enumConstant": false,
"annotations": [
@@ -133,7 +133,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Compression;"
"name": "Lorg/springframework/boot/web/server/Compression;"
},
"enumConstant": false,
"annotations": [
@@ -155,7 +155,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Http2;"
"name": "Lorg/springframework/boot/web/server/Http2;"
},
"enumConstant": false,
"annotations": [
@@ -177,7 +177,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;"
},
"enumConstant": false,
"annotations": [],
@@ -191,7 +191,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;"
},
"enumConstant": false,
"annotations": [],
@@ -205,7 +205,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;"
},
"enumConstant": false,
"annotations": [],
@@ -219,7 +219,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;"
},
"enumConstant": false,
"annotations": [],
@@ -247,11 +247,11 @@
"label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava/lang/Integer;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
},
"parameters": [],
"annotations": [],
@@ -271,7 +271,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
}
],
"annotations": [],
@@ -282,11 +282,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava/net/InetAddress;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
},
"parameters": [],
"annotations": [],
@@ -306,7 +306,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
}
],
"annotations": [],
@@ -317,11 +317,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava/lang/Boolean;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
},
"parameters": [],
"annotations": [],
@@ -341,7 +341,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
}
],
"annotations": [],
@@ -352,11 +352,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava/lang/String;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
},
"parameters": [],
"annotations": [],
@@ -376,7 +376,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
}
],
"annotations": [],
@@ -422,11 +422,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava/time/Duration;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
},
"parameters": [],
"annotations": [],
@@ -446,7 +446,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
}
],
"annotations": [],
@@ -457,11 +457,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setConnectionTimeout(Duration connectionTimeout)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg.springframework.boot.autoconfigure.web.ErrorProperties;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg/springframework/boot/autoconfigure/web/ErrorProperties;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
"name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;"
},
"parameters": [],
"annotations": [],
@@ -472,11 +472,11 @@
"label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg.springframework.boot.web.server.Ssl;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg/springframework/boot/web/server/Ssl;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
},
"parameters": [],
"annotations": [],
@@ -496,7 +496,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
}
],
"annotations": [],
@@ -507,11 +507,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setSsl(Ssl ssl)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg.springframework.boot.web.server.Compression;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg/springframework/boot/web/server/Compression;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Compression;"
"name": "Lorg/springframework/boot/web/server/Compression;"
},
"parameters": [],
"annotations": [],
@@ -522,11 +522,11 @@
"label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg.springframework.boot.web.server.Http2;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg/springframework/boot/web/server/Http2;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Http2;"
"name": "Lorg/springframework/boot/web/server/Http2;"
},
"parameters": [],
"annotations": [],
@@ -537,11 +537,11 @@
"label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;"
},
"parameters": [],
"annotations": [],
@@ -552,11 +552,11 @@
"label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;"
},
"parameters": [],
"annotations": [],
@@ -567,11 +567,11 @@
"label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;"
},
"parameters": [],
"annotations": [],
@@ -582,11 +582,11 @@
"label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;"
},
"parameters": [],
"annotations": [],

View File

@@ -11,7 +11,9 @@
package org.springframework.ide.vscode.commons.jdtls;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -35,6 +37,7 @@ import org.springframework.ide.vscode.commons.java.IWildcardType;
import org.springframework.ide.vscode.commons.java.JavaUtils;
import org.springframework.ide.vscode.commons.javadoc.IJavadoc;
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeData;
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeData.JavaTypeKind;
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
import org.springframework.ide.vscode.commons.protocol.java.TypeData.AnnotationData;
import org.springframework.ide.vscode.commons.protocol.java.TypeData.FieldData;
@@ -42,8 +45,11 @@ import org.springframework.ide.vscode.commons.protocol.java.TypeData.MethodData;
import org.springframework.ide.vscode.commons.protocol.java.TypeDescriptorData;
import com.google.common.base.Supplier;
import com.google.gson.Gson;
public class Wrappers {
static private final Gson GSON = new Gson();
public static IJavaType wrap(JavaTypeData data) {
switch (data.getKind()) {
@@ -107,7 +113,8 @@ public class Wrappers {
@Override
public IJavaType component() {
if (data.getExtras() != null && data.getExtras().containsKey("component")) {
return wrap((JavaTypeData) data.getExtras().get("component"));
JavaTypeData typeData = GSON.fromJson(GSON.toJsonTree(data.getExtras().get("component")), JavaTypeData.class);
return wrap(typeData);
}
return null;
}
@@ -128,10 +135,16 @@ public class Wrappers {
return data.getName();
}
@SuppressWarnings("unchecked")
@Override
public IJavaType owner() {
if (data.getExtras() != null && data.getExtras().containsKey("owner")) {
return wrap((JavaTypeData) data.getExtras().get("owner"));
Map<String, Object> owner = (Map<String, Object>) data.getExtras().get("owner");
JavaTypeData typeData = GSON.fromJson(GSON.toJsonTree(owner), JavaTypeData.class);
if (owner.get("kind") instanceof Double) {
typeData.setKind(JavaTypeKind.values()[((Double)owner.get("kind")).intValue()]);
}
return wrap((typeData) );
}
return null;
}
@@ -140,7 +153,18 @@ public class Wrappers {
@Override
public Stream<IJavaType> arguments() {
if (data.getExtras() != null && data.getExtras().containsKey("arguments")) {
return ((List<JavaTypeData>) data.getExtras().get("arguments")).stream().map(Wrappers::wrap);
List<Map<String, Object>> args = (List<Map<String, Object>>) data.getExtras().get("arguments");
if (args != null) {
List<IJavaType> types = new ArrayList<>(args.size());
for (Map<String, Object> entry : args) {
JavaTypeData typeData = GSON.fromJson(GSON.toJson(entry), JavaTypeData.class);
if (entry.get("kind") instanceof Double) {
typeData.setKind(JavaTypeKind.values()[((Double)entry.get("kind")).intValue()]);
}
types.add(Wrappers.wrap(typeData));
}
return types.stream();
}
}
return Stream.of();
}

View File

@@ -42,7 +42,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -62,7 +62,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -82,7 +82,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -126,7 +126,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -146,11 +146,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.Map\u003c+TK;+TV;\u003e;",
"name": "Ljava/util/Map\u003c+TK;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Map;"
"name": "Ljava/util/Map;"
},
"arguments": [
{
@@ -188,15 +188,15 @@
"label": "void java.util.Map.clear()"
},
{
"bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;",
"bindingKey": "Ljava/util/Map;.keySet()Ljava/util/Set\u003cTK;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Set\u003cTK;\u003e;",
"name": "Ljava/util/Set\u003cTK;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Set;"
"name": "Ljava/util/Set;"
},
"arguments": [
{
@@ -215,15 +215,15 @@
"label": "Set\u003cK\u003e java.util.Map.keySet()"
},
{
"bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;",
"bindingKey": "Ljava/util/Map;.values()Ljava/util/Collection\u003cTV;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Collection\u003cTV;\u003e;",
"name": "Ljava/util/Collection\u003cTV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Collection;"
"name": "Ljava/util/Collection;"
},
"arguments": [
{
@@ -242,24 +242,24 @@
"label": "Collection\u003cV\u003e java.util.Map.values()"
},
{
"bindingKey": "Ljava/util/Map;.entrySet()Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;",
"bindingKey": "Ljava/util/Map;.entrySet()Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;",
"constructor": false,
"returnType": {
"kind": "PARAMETERIZED",
"name": "Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;",
"name": "Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Set;"
"name": "Ljava/util/Set;"
},
"arguments": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;",
"name": "Ljava/util/Map$Entry\u003cTK;TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.Map$Entry;"
"name": "Ljava/util/Map$Entry;"
},
"arguments": [
{
@@ -294,7 +294,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -329,7 +329,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
},
{
"kind": "TYPE_VARIABLE",
@@ -353,11 +353,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;",
"name": "Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiConsumer;"
"name": "Ljava/util/function/BiConsumer;"
},
"arguments": [
{
@@ -389,11 +389,11 @@
"parameters": [
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -453,11 +453,11 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
},
{
"kind": "CLASS",
"name": "Ljava.lang.Object;"
"name": "Ljava/lang/Object;"
}
],
"annotations": [],
@@ -533,11 +533,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;",
"name": "Ljava/util/function/Function\u003c-TK;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.Function;"
"name": "Ljava/util/function/Function;"
},
"arguments": [
{
@@ -573,11 +573,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -617,11 +617,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{
@@ -665,11 +665,11 @@
},
{
"kind": "PARAMETERIZED",
"name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;",
"name": "Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;",
"extras": {
"owner": {
"kind": "CLASS",
"name": "Ljava.util.function.BiFunction;"
"name": "Ljava/util/function/BiFunction;"
},
"arguments": [
{

View File

@@ -5,7 +5,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
},
"enumConstant": false,
"annotations": [],
@@ -19,7 +19,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address",
"type": {
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
},
"enumConstant": false,
"annotations": [],
@@ -33,7 +33,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
"name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;"
},
"enumConstant": false,
"annotations": [
@@ -55,7 +55,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
},
"enumConstant": false,
"annotations": [],
@@ -69,7 +69,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader",
"type": {
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
},
"enumConstant": false,
"annotations": [],
@@ -97,7 +97,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout",
"type": {
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
},
"enumConstant": false,
"annotations": [],
@@ -111,7 +111,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
},
"enumConstant": false,
"annotations": [
@@ -133,7 +133,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Compression;"
"name": "Lorg/springframework/boot/web/server/Compression;"
},
"enumConstant": false,
"annotations": [
@@ -155,7 +155,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Http2;"
"name": "Lorg/springframework/boot/web/server/Http2;"
},
"enumConstant": false,
"annotations": [
@@ -177,7 +177,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;"
},
"enumConstant": false,
"annotations": [],
@@ -191,7 +191,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;"
},
"enumConstant": false,
"annotations": [],
@@ -205,7 +205,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;"
},
"enumConstant": false,
"annotations": [],
@@ -219,7 +219,7 @@
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow",
"type": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;"
},
"enumConstant": false,
"annotations": [],
@@ -247,11 +247,11 @@
"label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava/lang/Integer;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
},
"parameters": [],
"annotations": [],
@@ -271,7 +271,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Integer;"
"name": "Ljava/lang/Integer;"
}
],
"annotations": [],
@@ -282,11 +282,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava/net/InetAddress;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
},
"parameters": [],
"annotations": [],
@@ -306,7 +306,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.net.InetAddress;"
"name": "Ljava/net/InetAddress;"
}
],
"annotations": [],
@@ -317,11 +317,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava/lang/Boolean;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
},
"parameters": [],
"annotations": [],
@@ -341,7 +341,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.Boolean;"
"name": "Ljava/lang/Boolean;"
}
],
"annotations": [],
@@ -352,11 +352,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava/lang/String;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
},
"parameters": [],
"annotations": [],
@@ -376,7 +376,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.lang.String;"
"name": "Ljava/lang/String;"
}
],
"annotations": [],
@@ -422,11 +422,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava/time/Duration;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
},
"parameters": [],
"annotations": [],
@@ -446,7 +446,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Ljava.time.Duration;"
"name": "Ljava/time/Duration;"
}
],
"annotations": [],
@@ -457,11 +457,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setConnectionTimeout(Duration connectionTimeout)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg.springframework.boot.autoconfigure.web.ErrorProperties;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg/springframework/boot/autoconfigure/web/ErrorProperties;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
"name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;"
},
"parameters": [],
"annotations": [],
@@ -472,11 +472,11 @@
"label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg.springframework.boot.web.server.Ssl;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg/springframework/boot/web/server/Ssl;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
},
"parameters": [],
"annotations": [],
@@ -496,7 +496,7 @@
"parameters": [
{
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Ssl;"
"name": "Lorg/springframework/boot/web/server/Ssl;"
}
],
"annotations": [],
@@ -507,11 +507,11 @@
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setSsl(Ssl ssl)"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg.springframework.boot.web.server.Compression;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg/springframework/boot/web/server/Compression;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Compression;"
"name": "Lorg/springframework/boot/web/server/Compression;"
},
"parameters": [],
"annotations": [],
@@ -522,11 +522,11 @@
"label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg.springframework.boot.web.server.Http2;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg/springframework/boot/web/server/Http2;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.web.server.Http2;"
"name": "Lorg/springframework/boot/web/server/Http2;"
},
"parameters": [],
"annotations": [],
@@ -537,11 +537,11 @@
"label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;"
},
"parameters": [],
"annotations": [],
@@ -552,11 +552,11 @@
"label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;"
},
"parameters": [],
"annotations": [],
@@ -567,11 +567,11 @@
"label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;"
},
"parameters": [],
"annotations": [],
@@ -582,11 +582,11 @@
"label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()"
},
{
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;",
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;",
"constructor": false,
"returnType": {
"kind": "CLASS",
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
"name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;"
},
"parameters": [],
"annotations": [],

View File

@@ -359,7 +359,7 @@ public class JavaData {
private JavaTypeData createFromSignature(IType type, String signature) {
JavaTypeData data = new JavaTypeData();
data.setName(signature);
data.setName(signature.replace('.', '/'));
char[] typeSignature = signature.toCharArray();

View File

@@ -239,14 +239,17 @@ public class SpringLiveHoverWatchdog {
private IJavaProject getCachedProject(String docURI) {
AtomicReference<IJavaProject> reference = this.watchedDocs.get(docURI);
IJavaProject project = reference.get();
if (project == null) {
project = identifyProject(docURI);
if (!reference.compareAndSet(null, project)) {
return reference.get();
if (reference != null) {
IJavaProject project = reference.get();
if (project == null) {
project = identifyProject(docURI);
if (!reference.compareAndSet(null, project)) {
return reference.get();
}
}
return project;
}
return project;
return null;
}
private IJavaProject identifyProject(String docURI) {
@@ -260,9 +263,12 @@ public class SpringLiveHoverWatchdog {
}
private void publishLiveHints(String docURI, CodeLens[] codeLenses) {
int version = server.getTextDocumentService().get(docURI).getVersion();
VersionedTextDocumentIdentifier id = new VersionedTextDocumentIdentifier(docURI, version);
server.getClient().highlight(new HighlightParams(id, Arrays.asList(codeLenses)));
TextDocument doc = server.getTextDocumentService().get(docURI);
if (doc != null) {
int version = doc.getVersion();
VersionedTextDocumentIdentifier id = new VersionedTextDocumentIdentifier(docURI, version);
server.getClient().highlight(new HighlightParams(id, Arrays.asList(codeLenses)));
}
}
private void cleanupLiveHints(String docURI) {