public StorableIndex < S > uniquify ( StorableKey < S > key ) { if ( key == null ) { throw new IllegalArgumentException ( ) ; } if ( isUnique ( ) ) { return this ; } StorableIndex < S > index = this ; for ( OrderedProperty < S > keyProp : key . getProperties ( ) ) { index = index . addProperty ( keyProp . getChainedProperty ( ) . getPrimeProperty ( ) , keyProp . getDirection ( ) ) ; } return index . unique ( true ) ; }
Returns a StorableIndex which is unique possibly by appending properties from the given key . If index is already unique it is returned as - is .