public abstract class org.apache.dubbo.rpc.cluster.directory.AbstractDirectory extends java.lang.Object implements org.apache.dubbo.rpc.cluster.Directory
{
private static final org.apache.dubbo.common.logger.Logger logger;
private final org.apache.dubbo.common.URL url;
private volatile boolean destroyed;
protected volatile org.apache.dubbo.common.URL consumerUrl;
protected final java.util.Map queryMap;
protected final java.lang.String consumedProtocol;
protected org.apache.dubbo.rpc.cluster.RouterChain routerChain;
public void <init>(org.apache.dubbo.common.URL)
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.common.URL v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.common.URL;
specialinvoke v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: void <init>(org.apache.dubbo.common.URL,org.apache.dubbo.rpc.cluster.RouterChain,boolean)>(v, null, 0);
return;
}
public void <init>(org.apache.dubbo.common.URL, boolean)
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.common.URL v;
boolean v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.common.URL;
v := @parameter: boolean;
specialinvoke v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: void <init>(org.apache.dubbo.common.URL,org.apache.dubbo.rpc.cluster.RouterChain,boolean)>(v, null, v);
return;
}
public void <init>(org.apache.dubbo.common.URL, org.apache.dubbo.rpc.cluster.RouterChain, boolean)
{
org.apache.dubbo.common.URL v, v, v, v, v, v, v, v;
java.util.Map v, v, v, v, v, v;
java.lang.String v, v;
boolean v;
java.lang.IllegalArgumentException v;
org.apache.dubbo.rpc.cluster.RouterChain v;
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
java.lang.Object v, v, v, v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.common.URL;
v := @parameter: org.apache.dubbo.rpc.cluster.RouterChain;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: boolean destroyed> = 0;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("url == null");
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameterAndDecoded(java.lang.String)>("refer");
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.util.Map parseQueryString(java.lang.String)>(v);
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap> = v;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("path");
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("protocol");
if v == null goto label;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("protocol");
label:
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.lang.String consumedProtocol> = v;
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL removeParameter(java.lang.String)>("refer");
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL removeParameter(java.lang.String)>("monitor");
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL url> = v;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL url>;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.lang.String consumedProtocol>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL setProtocol(java.lang.String)>(v);
if v != null goto label;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("interface");
goto label;
label:
v = v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL setPath(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL clearParameters()>();
label:
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.Map queryMap>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL addParameters(java.util.Map)>(v);
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL removeParameter(java.lang.String)>("monitor");
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL consumerUrl> = v;
virtualinvoke v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: void setRouterChain(org.apache.dubbo.rpc.cluster.RouterChain)>(v);
return;
}
public java.util.List list(org.apache.dubbo.rpc.Invocation) throws org.apache.dubbo.rpc.RpcException
{
java.util.List v;
org.apache.dubbo.common.URL v;
org.apache.dubbo.rpc.Invocation v;
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
java.lang.String v;
org.apache.dubbo.rpc.RpcException v;
boolean v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.rpc.Invocation;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: boolean destroyed>;
if v == 0 goto label;
v = new org.apache.dubbo.rpc.RpcException;
v = virtualinvoke v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL getUrl()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.common.URL)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Directory already destroyed .url: \u0001");
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: java.util.List doList(org.apache.dubbo.rpc.Invocation)>(v);
return v;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.common.URL v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL url>;
return v;
}
public org.apache.dubbo.rpc.cluster.RouterChain getRouterChain()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.rpc.cluster.RouterChain v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.rpc.cluster.RouterChain routerChain>;
return v;
}
public void setRouterChain(org.apache.dubbo.rpc.cluster.RouterChain)
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.rpc.cluster.RouterChain v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.rpc.cluster.RouterChain;
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.rpc.cluster.RouterChain routerChain> = v;
return;
}
protected void addRouters(java.util.List)
{
java.util.List v, v;
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.rpc.cluster.RouterChain v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: java.util.List;
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
goto label;
label:
v = v;
label:
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.rpc.cluster.RouterChain routerChain>;
virtualinvoke v.<org.apache.dubbo.rpc.cluster.RouterChain: void addRouters(java.util.List)>(v);
return;
}
public org.apache.dubbo.common.URL getConsumerUrl()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.common.URL v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL consumerUrl>;
return v;
}
public void setConsumerUrl(org.apache.dubbo.common.URL)
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
org.apache.dubbo.common.URL v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v := @parameter: org.apache.dubbo.common.URL;
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.URL consumerUrl> = v;
return;
}
public boolean isDestroyed()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
boolean v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v = v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: boolean destroyed>;
return v;
}
public void destroy()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
v.<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: boolean destroyed> = 1;
return;
}
public void discordAddresses()
{
org.apache.dubbo.rpc.cluster.directory.AbstractDirectory v;
v := @this: org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;
return;
}
protected abstract java.util.List doList(org.apache.dubbo.rpc.Invocation) throws org.apache.dubbo.rpc.RpcException;
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/cluster/directory/AbstractDirectory;");
<org.apache.dubbo.rpc.cluster.directory.AbstractDirectory: org.apache.dubbo.common.logger.Logger logger> = v;
return;
}
}