code: protected void validate() {
          Assert.checkNotNullParam("endpoint", endpoint);
          Assert.checkNotNullParam("optionMap", optionMap);
          Assert.checkNotNullParam("uri", uri);
      }
docs: Checks that this object is in a usable state, with the minimal
  required properties (endpoint, optionMap, uri) set
  
  @throws IllegalArgumentException if any required properties are not set