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

org.jamon.render.html.AbstractSelect Maven / Gradle / Ivy

The newest version!
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.jamon.render.html;

import java.util.Iterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Deprecated public abstract class AbstractSelect
    extends AbstractInput
    implements Select
{

    @SuppressWarnings({ "hiding", "deprecation", "unchecked" })
    public abstract static class Item
        implements Select.Item
    {
        public final String getName()
        {
            return m_select.getName();
        }
        protected AbstractSelect getSelect()
        {
            return m_select;
        }
        private void setSelect(AbstractSelect p_select)
        {
            m_select = p_select;
        }
        private AbstractSelect m_select;
    }

    public Item[] getItems()
    {
        return m_items.clone();
    }


    @SuppressWarnings({"hiding", "deprecation"})
    @Deprecated
    public interface ItemMaker
    {
        Select.Item makeItem(DataType p_data);
    }

    protected  AbstractSelect(
        String p_name,
        DataType[] p_data,
        ItemMaker p_maker)
    {
        this(p_name, Arrays.asList(p_data).iterator(), p_maker);
    }

    protected  AbstractSelect(
        String p_name,
        Iterator p_data,
        ItemMaker p_maker)
    {
        this(p_name, create(p_data, p_maker));
    }

    protected AbstractSelect(String p_name,
                             Item[] p_items)
    {
        super(p_name);
        m_items = p_items;
        for(int i = 0; i < m_items.length; ++i)
        {
            m_items[i].setSelect(this);
        }
    }

    @SuppressWarnings("unchecked")
    private static Item[] create(
       Iterator p_data,
       ItemMaker p_maker)
    {
        List items = new ArrayList();
        while( p_data.hasNext() )
        {
            items.add(p_maker.makeItem( p_data.next()));
        }
        return items.toArray(new Item[items.size()]);
    }

    private final Item[] m_items;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy