All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ca.odell.glazedlists.calculation.Sum Maven / Gradle / Ivy

/* Glazed Lists                                                 (c) 2003-2007 */
/* http://publicobject.com/glazedlists/                      publicobject.com,*/
/*                                                     O'Dell Engineering Ltd.*/
package ca.odell.glazedlists.calculation;

import ca.odell.glazedlists.EventList;

/**
 * Reports the sum total of the numeric elements within the backing EventList
 * as the value of these Calculations.
 *
 * @author James Lemieux
 */
final class Sum {

    static final class SumFloat extends AbstractEventListCalculation {
        public SumFloat(EventList source) {
            super(new Float(0), source);
        }

        @Override
        protected void inserted(Number element) { setValue(new Float(getValue().floatValue() + element.floatValue())); }
        @Override
        protected void deleted(Number element) { setValue(new Float(getValue().floatValue() - element.floatValue())); }
        @Override
        protected void updated(Number oldElement, Number newElement) { setValue(new Float(getValue().floatValue() - oldElement.floatValue() + newElement.floatValue())); }
    }

    static final class SumDouble extends AbstractEventListCalculation {
        public SumDouble(EventList source) {
            super(new Double(0), source);
        }

        @Override
        protected void inserted(Number element) { setValue(new Double(getValue().doubleValue() + element.doubleValue())); }
        @Override
        protected void deleted(Number element) { setValue(new Double(getValue().doubleValue() - element.doubleValue())); }
        @Override
        protected void updated(Number oldElement, Number newElement) { setValue(new Double(getValue().doubleValue() - oldElement.doubleValue() + newElement.doubleValue())); }
    }

    static final class SumInteger extends AbstractEventListCalculation {
        public SumInteger(EventList source) {
            super(new Integer(0), source);
        }

        @Override
        protected void inserted(Number element) { setValue(new Integer(getValue().intValue() + element.intValue())); }
        @Override
        protected void deleted(Number element) { setValue(new Integer(getValue().intValue() - element.intValue())); }
        @Override
        protected void updated(Number oldElement, Number newElement) { setValue(new Integer(getValue().intValue() - oldElement.intValue() + newElement.intValue())); }
    }

    static final class SumLong extends AbstractEventListCalculation {
        public SumLong(EventList source) {
            super(new Long(0), source);
        }

        @Override
        protected void inserted(Number element) { setValue(new Long(getValue().longValue() + element.longValue())); }
        @Override
        protected void deleted(Number element) { setValue(new Long(getValue().longValue() - element.longValue())); }
        @Override
        protected void updated(Number oldElement, Number newElement) { setValue(new Long(getValue().longValue() - oldElement.longValue() + newElement.longValue())); }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy