class InjvmReferer<T> extends AbstractReferer<T> {
        private Exporter<T> exporter;

        public InjvmReferer(Class<T> clz, URL url, URL serviceUrl) {
            super(clz, url, serviceUrl);
        }

        @Override
        protected Response doCall(Request request) {<FILL_FUNCTION_BODY>}

        @SuppressWarnings("unchecked")
        @Override
        protected boolean doInit() {
            String protocolKey = MotanFrameworkUtil.getProtocolKey(url);

            exporter = (Exporter<T>) exporterMap.get(protocolKey);

            if (exporter == null) {
                LoggerUtil.error("InjvmReferer init Error: provider not exist, url=" + url);
                return false;
            }

            return true;
        }

        @Override
        public void destroy() {}
    }

            if (exporter == null) {
                throw new MotanServiceException("InjvmReferer call Error: provider not exist, url=" + url.getUri(),
                        MotanErrorMsgConstant.SERVICE_UNFOUND);
            }

            return exporter.getProvider().call(request);
        
<methods>public non-sealed void <init>() ,public void destroy() ,public Exporter<T> export(Provider<T>, com.weibo.api.motan.rpc.URL) ,public Map<java.lang.String,Exporter<?>> getExporterMap() ,public Referer<T> refer(Class<T>, com.weibo.api.motan.rpc.URL) ,public Referer<T> refer(Class<T>, com.weibo.api.motan.rpc.URL, com.weibo.api.motan.rpc.URL) <variables>protected ConcurrentHashMap<java.lang.String,Exporter<?>> exporterMap