public void update ( Map < Subscription , Long > subs , long currentTime , long expirationTime ) { // Update expiration time for existing subs and log new ones for ( Subscription sub : expressions ) { if ( subs . put ( sub , expirationTime ) == null ) { LOGGER . info ( "new subscription: {}" , sub ) ; } } // Remove any expired entries Iterator < Map . Entry < Subscription , Long > > it = subs . entrySet ( ) . iterator ( ) ; while ( it . hasNext ( ) ) { Map . Entry < Subscription , Long > entry = it . next ( ) ; if ( entry . getValue ( ) < currentTime ) { LOGGER . info ( "expired: {}" , entry . getKey ( ) ) ; it . remove ( ) ; } } }
Merge the subscriptions from this update into a map from subscriptions to expiration times .