private void checkContractIdSupport() {
   if (contract.getId() > 0) {
     if (!Feature.MARKET_DATA_REQUEST_BY_CONTRACT_ID.isSupportedByVersion(
         getServerCurrentVersion())) {
       throw new RequestException(
           ClientMessageCode.UPDATE_TWS,
           "Market data request by contract id is not supported.",
           this);
     }
   }
 }
 private void appendContract(final RequestBuilder builder) {
   if (Feature.MARKET_DATA_REQUEST_BY_CONTRACT_ID.isSupportedByVersion(
       getServerCurrentVersion())) {
     builder.append(contract.getId());
   }
   builder.append(contract.getSymbol());
   builder.append(contract.getSecurityType().getAbbreviation());
   builder.append(contract.getExpiry());
   builder.append(contract.getStrike());
   builder.append(contract.getOptionRight().getName());
   builder.append(contract.getMultiplier());
   builder.append(contract.getExchange());
   builder.append(contract.getPrimaryExchange());
   builder.append(contract.getCurrencyCode());
   builder.append(contract.getLocalSymbol());
 }