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;
	}
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;
	}
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 ; }
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.
Allow the reservation of term names during the initialization of the vocabulary .