code: @Nonnull
  	public DataBuilder appendBrowserBuilder(@Nonnull final Browser.Builder browserBuilder) {
  		Check.notNull(browserBuilder, "browserBuilder");
  		Check.notNegative(browserBuilder.getId(), "browserBuilder.getId()");
  		if (browserBuilder.getType() == null && browserBuilder.getTypeId() < 0) {
  			throw new IllegalStateOfArgumentException("A Type or Type-ID of argument 'browserBuilder' must be set.");
  		}
  		if (browserBuilders.containsKey(browserBuilder.getId())) {
  			throw new IllegalStateOfArgumentException("The browser builder '" + browserBuilder.getProducer() + " "
  					+ browserBuilder.getFamily() + "' is already in the map.");
  		}
  
  		final Browser.Builder builder = browserBuilder.copy();
  		browserBuilders.put(builder.getId(), builder);
  		return this;
  	}
docs: Appends a copy of the given {@code Browser.Builder} to the internal data structure.
  
  @param browserBuilder
  {@code Browser.Builder} to be copied and appended
  @return this {@code Builder}, for chaining
  @throws net.sf.qualitycheck.exception.IllegalNullArgumentException
  if the given argument is {@code null}
  @throws net.sf.qualitycheck.exception.IllegalStateOfArgumentException
  if the ID of the given builder is invalid
  @throws net.sf.qualitycheck.exception.IllegalStateOfArgumentException
  if a builder with the same ID already exists