package com.fitbank.arreglos;

import java.util.Collection;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.TreeSet;

import javax.swing.AbstractListModel;

import com.fitbank.util.Servicios;
import com.fitbank.webpages.util.Validator;

/**
 * TableModel de clases de arreglos
 *
 * @author FitBank CI
 */
public class ArreglosListModel extends AbstractListModel {

    private List arreglos = new LinkedList();

    public ArreglosListModel() {
        Collection c = new TreeSet<Validator>(new Comparator<Validator>() {

            public int compare(Validator o1, Validator o2) {
                return o1.getClass().getName().compareTo(o2.getClass().getName());
            }

        });
        c.addAll(Servicios.load(Validator.class));
        arreglos.addAll(c);
        arreglos.addAll(Servicios.load(ArregloFormulario.class));
    }

    public int getSize() {
        return arreglos.size();
    }

    public Object getElementAt(int index) {
        return new Item(arreglos.get(index));
    }

    public static class Item {

        private final Object value;

        public Item(Object value) {
            this.value = value;
        }

        public Object getValue() {
            return value;
        }

        @Override
        public String toString() {
            return value.getClass().getName();
        }

    }

}
