OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 19 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.jopenchart;

import java.util.ArrayList;
import java.util.List;

public class DataModel1D extends DataModel {
    private final List<Number> l = new ArrayList<>();

    public DataModel1D() {

    }

    public DataModel1D(Number[] data) {
        for (int i = 0; i < data.length; i++) {
            l.add(data[i]);
        }
    }

    public DataModel1D(List<Number> list) {
        this.addAll(list);
    }

    public synchronized void addAll(List<Number> data) {
        l.addAll(data);
    }

    public synchronized int getSize() {
        return l.size();
    }

    public synchronized void setValueAt(int index, Number value) {
        ensureCapacity(index);
        l.set(index, value);
    }

    private void ensureCapacity(int index) {
        for (int i = l.size(); i <= index; i++) {
            l.add(null);
        }
    }

    public synchronized Number getValueAt(int index) {
        ensureCapacity(index);
        return l.get(index);
    }

    public synchronized Number getMaxValue() {
        Number max = 0;
        for (Number b : this.l) {
            if (b != null && b.doubleValue() > max.doubleValue()) {
                max = b;
            }
        }
        return max;
    }

    public synchronized Number getMinValue() {
        Number min = 0;
        for (Number b : this.l) {
            if (b != null && b.doubleValue() < min.doubleValue()) {
                min = b;
            }
        }
        return min;
    }

    public synchronized void clear() {
        final int size = l.size();
        for (int i = 0; i < size; i++) {
            this.setValueAt(i, null);
        }
    }
}