public ChainedProperty < ? > tail ( ) { if ( getChainCount ( ) == 0 ) { throw new IllegalStateException ( ) ; } if ( getChainCount ( ) == 1 ) { if ( ! isOuterJoin ( 1 ) ) { return get ( mChain [ 0 ] ) ; } else { return get ( mChain [ 0 ] , null , new boolean [ ] { true } ) ; } } StorableProperty < ? > [ ] newChain = new StorableProperty [ getChainCount ( ) - 1 ] ; System . arraycopy ( mChain , 1 , newChain , 0 , newChain . length ) ; boolean [ ] newOuterJoin = mOuterJoin ; if ( newOuterJoin != null ) { newOuterJoin = new boolean [ newChain . length + 1 ] ; System . arraycopy ( mOuterJoin , 1 , newOuterJoin , 0 , mOuterJoin . length - 1 ) ; } return get ( mChain [ 0 ] , newChain , newOuterJoin ) ; }
Returns a new ChainedProperty which contains everything that follows this ChainedProperty s prime property .