code: protected final int reserveTermName(String name) {
  		checkStatus(Status.INITIALIZING);
  		checkInitializationPrecondition(TermUtils.isValidTermName(name), "Object '%s' is not a valid term name",name);
  		checkInitializationPrecondition(!this.nameOrdinal.containsKey(name),"Term '%s' has been already reserved",name);
  		this.nameOrdinal.put(name, ++this.ordinal);
  		return this.ordinal;
  	}
docs: Allow the reservation of term names during the initialization of the
  vocabulary.
  
  @param name
  then name of the term
  @return a number that represents the position in which the term was
  reserved
  @throws IllegalArgumentException
  if the specified name is not valid or it has been already
  reserved.
  @throws IllegalStateException
  if the vocabulary has been already initialized.