code: public void setChaincodeInputStream(InputStream chaincodeInputStream) throws InvalidArgumentException {
          if (chaincodeInputStream == null) {
              throw new InvalidArgumentException("Chaincode input stream may not be null.");
          }
          if (chaincodeSourceLocation != null) {
              throw new InvalidArgumentException("Error setting chaincode input stream. Chaincode source location already set. Only one or the other maybe set.");
          }
          if (chaincodeMetaInfLocation != null) {
              throw new InvalidArgumentException("Error setting chaincode input stream. Chaincode META-INF location  already set. Only one or the other maybe set.");
          }
          this.chaincodeInputStream = chaincodeInputStream;
      }
docs: Chaincode input stream containing the actual chaincode. Only format supported is a tar zip compressed input of the source.
  Only input stream or source location maybe used at the same time.
  The contents of the stream are not validated or inspected by the SDK.
  
  @param chaincodeInputStream
  @throws InvalidArgumentException