@Override public void requestData(DataRequest inRequest, DataEmitterSupport inSupport) throws RequestDataException { if(inRequest == null) { throw new IllegalRequestParameterValue(getURN(), null); } Object obj = inRequest.getData(); if(obj == null) { throw new IllegalRequestParameterValue(getURN(), null); } String query; if(obj instanceof String) { query = (String)obj; } else { throw new UnsupportedRequestParameterType(getURN(), obj); } String[] querySplit = query.split(QUERY_DELIM); if (querySplit.length != 4 || !QUERY_SPLIT[0].equals(querySplit[0]) ||!QUERY_SPLIT[1].equals(querySplit[1]) ||!QUERY_SPLIT[2].equals(querySplit[2])) { throw new RequestDataException(new I18NBoundMessage1P(Messages.INVALID_QUERY, query)); } // find the type they are requesting (ie select * from <type>) String type = query.substring(QUERY_PREFIX.length()); Class<?> theClass = getClassForRequest(type); if (theClass == null) { throw new RequestDataException(new I18NBoundMessage1P(Messages.UNSUPPORTED_TYPE, type)); } Pair<Class<?>, DataEmitterSupport> request = new Pair<Class<?>, DataEmitterSupport>(theClass, inSupport); mRequestMap.put(inSupport.getRequestID(), request); }
@Override public void requestData(DataRequest inRequest, final DataEmitterSupport inSupport) throws RequestDataException { //No request parameters are supported. //All reports received are emitted. //Verify no request parameters are specified if(inRequest.getData() != null) { throw new IllegalRequestParameterValue( Messages.REQUEST_PARAMETER_SPECIFIED); } try { ReportListener listener = new ReportListenerEmitter(inSupport); getClient().addReportListener(listener); mRequestTable.put(inSupport.getRequestID(), listener); } catch (ClientInitException e) { throw new RequestDataException(e, Messages.REQUEST_CLIENT_NOT_INITIALIZED); } }
throw new RequestDataException(Messages.FEED_OFFLINE); throw new RequestDataException(Messages.FEED_OFFLINE); try { if(payload == null) { throw new RequestDataException(Messages.DATA_REQUEST_PAYLOAD_REQUIRED); inSupport); } catch (Exception e) { throw new RequestDataException(new I18NBoundMessage2P(Messages.INVALID_DATA_REQUEST_PAYLOAD, stringPayload, ExceptionUtils.getRootCause(e))); inSupport); } else { throw new RequestDataException(new I18NBoundMessage1P(Messages.UNSUPPORTED_DATA_REQUEST_PAYLOAD, payload.getClass().getSimpleName())); ExceptionUtils.getRootCauseMessage(e)); throw new RequestDataException(e, new I18NBoundMessage2P(Messages.MARKET_DATA_REQUEST_FAILED, inRequest,