if ( (end_time - start_time) < SMALLEST_THREAT_INTERVAL_MS/2 ) { logWarning( "updateBeliefState(): Found miniscule update interval." + "[ " + start_time + ", " + end_time + "]" + " for asset " + start_belief.getAssetID() + ". Rounding to zero and ignoring threats." ); return next_belief; }  if ( (end_time - start_time) < SMALLEST_THREAT_INTERVAL_MS ) { logWarning( "updateBeliefState(): Found small update interval." + "[ " + start_time + ", " + end_time + "]" + " for asset " + start_belief.getAssetID() + ". Rounding to " + SMALLEST_THREAT_INTERVAL_MS + "." ); start_time = end_time - SMALLEST_THREAT_INTERVAL_MS; }
    BeliefState updateBeliefState( BeliefState start_belief,                                    long end_time )            throws BelievabilityException    {        if ( start_belief == null )            throw new BelievabilityException                    ( "POMDPModelManager.updateBeliefState()",                      "NULL starting belief passed in." );        logDebug( "Belief before threats: " + start_belief.toString() );        BeliefState next_belief = (BeliefState) start_belief.clone();                // Set this to null to indicate that no diagnosis was        // responsible for this update.        //        next_belief.setUpdateTrigger( null );        next_belief.setTimestamp( end_time );        // FIXME: verify that this is the corect change in time.  In        // particular, make sure it does not need to be computed on a        // state dimension by state dimnesion basis.        //        long start_time = start_belief.getTimestamp();        if ( start_time > end_time )        {            logWarning( "updateBeliefState(): Found a negative update interval."                     + "[ " + start_time + ", " + end_time + "]"                     + " for asset " + start_belief.getAssetID()                     + ". Ignoring threats." );            return next_belief;        }        // Here we will be updating all the state dimensions.        //        for ( int dim_idx = 0;              dim_idx < _dimension_pomdp_model.length;              dim_idx++ )        {            POMDPAssetDimensionModel pomdp_model_dim                    = _dimension_pomdp_model[dim_idx];            String state_dim_name = _asset_type_model.getStateDimName(dim_idx);            // ..and then the appropriate start belief state dimension...            BeliefStateDimension start_belief_dim                    = start_belief.getBeliefStateDimension( state_dim_name );                        // ...and then the approrpiate next belief state dimension...            BeliefStateDimension next_belief_dim                    = next_belief.getBeliefStateDimension( state_dim_name );            // ...then finally we do the belief update proper.            pomdp_model_dim.updateBeliefStateThreatTrans( start_belief_dim,                                                          start_time,                                                          end_time,                                                          next_belief_dim );        } // for dim_idx        logDebug( "Belief after threats: " + next_belief.toString() );        return next_belief;    } // method updateBeliefState