@SuppressWarnings("squid:S3346")
    private void filterFullDim(int bin, int dim) throws ContradictionException {

        for (int i = candidate.get(bin).nextSetBit(0); i >= 0; i = candidate.get(bin).nextSetBit(i + 1)) {
            if (prop.iSizes[dim][i] == 0) {
                continue;
            }
          // ISSUE 86: the event 'i removed from bin' can already been in the propagation stack but not yet considered
          // ie. !prop.bins[i].contains(bin) && candidate[bin].contains(i): in this case, do not process it yet
            if (prop.bins[i].removeValue(bin, prop)) {
                candidate.get(bin).clear(i);
              prop.updateLoads(i, bin);

                if (prop.bins[i].isInstantiated()) {
                    prop.assignItem(i, prop.bins[i].getValue());
                }
            }
        }
        if (candidate.get(bin).isEmpty()) {
            assert prop.potentialLoad[dim][bin].get() == prop.assignedLoad[dim][bin].get();
            assert prop.loads[dim][bin].getUB() == prop.potentialLoad[dim][bin].get();
        }
    }
@ SuppressWarnings ( "squid:S3346" ) private void filterFullDim ( int bin , int dim ) throws ContradictionException { for ( int i = candidate . get ( bin ) . nextSetBit ( 0 ) ; i >= 0 ; i = candidate . get ( bin ) . nextSetBit ( i + 1 ) ) { if ( prop . iSizes [ dim ] [ i ] == 0 ) { continue ; } if ( prop . bins [ i ] . removeValue ( bin , prop ) ) { candidate . get ( bin ) . clear ( i ) ; prop . updateLoads ( i , bin ) ; if ( prop . bins [ i ] . isInstantiated ( ) ) { prop . assignItem ( i , prop . bins [ i ] . getValue ( ) ) ; } } } if ( candidate . get ( bin ) . isEmpty ( ) ) { assert prop . potentialLoad [ dim ] [ bin ] . get ( ) == prop . assignedLoad [ dim ] [ bin ] . get ( ) ; assert prop . loads [ dim ] [ bin ] . getUB ( ) == prop . potentialLoad [ dim ] [ bin ] . get ( ) ; } }
remove all candidate items from a bin that is full
then synchronize potentialLoad and sup(binLoad) accordingly
if an item becomes instantiated then propagate the newly assigned bin

@param bin the full bin
@throws ContradictionException