class ThirdQuartileNumber implements AttributeColumnsMergeStrategy {

    private Table table;
    private Column[] columns;
    private String columnTitle;

    @Override
    public void setup(Table table, Column[] columns) {
        this.table = table;
        this.columns = columns;
    }

    @Override
    public void execute() {
        Lookup.getDefault().lookup(AttributeColumnsMergeStrategiesController.class)
            .thirdQuartileNumberMerge(table, columns, columnTitle);
    }

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

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

    @Override
    public boolean canExecute() {<FILL_FUNCTION_BODY>}

    @Override
    public ManipulatorUI getUI() {
        return new GeneralColumnTitleChooserUI();
    }

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

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

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

    public Table getTable() {
        return table;
    }

    public String getColumnTitle() {
        return columnTitle;
    }

    public void setColumnTitle(String columnTitle) {
        this.columnTitle = columnTitle;
    }
}

        for (Column column : columns) {
            if (!AttributeUtils.isNumberType(column.getTypeClass())) {
                return false;
            }
        }
        return true;
    
<no_super_class>