class InterQuartileRangeNumber implements AttributeRowsMergeStrategy {

    private Element[] rows;
    private Column column;
    private BigDecimal result;

    @Override
    public void setup(Element[] rows, Element selectedRow, Column column) {
        this.rows = rows;
        this.column = column;
    }

    @Override
    public Object getReducedValue() {
        return result;
    }

    @Override
    public void execute() {<FILL_FUNCTION_BODY>}

    @Override
    public String getName() {
        return NbBundle.getMessage(FirstQuartileNumber.class, "InterQuartileRangeNumber.name");
    }

    @Override
    public String getDescription() {
        return NbBundle.getMessage(FirstQuartileNumber.class, "InterQuartileRangeNumber.description");
    }

    @Override
    public boolean canExecute() {
        return AttributeUtils.isNumberType(column.getTypeClass());
    }

    @Override
    public ManipulatorUI getUI() {
        return null;
    }

    @Override
    public int getType() {
        return 100;
    }

    @Override
    public int getPosition() {
        return 400;
    }

    @Override
    public Icon getIcon() {
        return null;
    }
}

        BigDecimal Q1, Q3;
        Number[] numbers =
            Lookup.getDefault().lookup(AttributeColumnsController.class).getRowsColumnNumbers(rows, column);
        Q3 = StatisticsUtils.quartile3(numbers);
        Q1 = StatisticsUtils.quartile1(numbers);
        if (Q3 != null && Q1 != null) {
            result = Q3.subtract(Q1);
        } else {
            result = null;
        }
    
<no_super_class>