protected final < S extends ImmutableTerm > void registerTerm ( S term ) { checkStatus ( Status . INITIALIZING ) ; checkInitializationPrecondition ( this . nameOrdinal . containsKey ( term . name ( ) ) , "Term '%s' has not been reserved" , term . name ( ) ) ; checkInitializationPrecondition ( term . ordinal ( ) >= 0 && term . ordinal ( ) <= this . ordinal , "Invalid ordinal '%d' for reserved name '%s'" , term . ordinal ( ) , term . name ( ) ) ; this . terms . put ( term . ordinal ( ) , this . termClass . cast ( term ) ) ; }
Upon reservation the method enables registering the properly built immutable term instance .