Blame src/libbluray/bdj/java/org/dvb/user/Preference.java

Packit 5e46da
/*
Packit 5e46da
 * This file is part of libbluray
Packit 5e46da
 * Copyright (C) 2010  William Hahne
Packit 5e46da
 *
Packit 5e46da
 * This library is free software; you can redistribute it and/or
Packit 5e46da
 * modify it under the terms of the GNU Lesser General Public
Packit 5e46da
 * License as published by the Free Software Foundation; either
Packit 5e46da
 * version 2.1 of the License, or (at your option) any later version.
Packit 5e46da
 *
Packit 5e46da
 * This library is distributed in the hope that it will be useful,
Packit 5e46da
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 5e46da
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 5e46da
 * Lesser General Public License for more details.
Packit 5e46da
 *
Packit 5e46da
 * You should have received a copy of the GNU Lesser General Public
Packit 5e46da
 * License along with this library. If not, see
Packit 5e46da
 * <http://www.gnu.org/licenses/>.
Packit 5e46da
 */
Packit 5e46da
Packit 5e46da
package org.dvb.user;
Packit 5e46da
Packit 5e46da
import java.util.Iterator;
Packit 5e46da
import java.util.Vector;
Packit 5e46da
Packit 5e46da
public class Preference {
Packit 5e46da
    protected Preference() {
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public Preference(String name, String value) {
Packit 5e46da
        this.name = name;
Packit 5e46da
        if (value != null)
Packit 5e46da
            values.add(value);
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public Preference(String name, String value[]) {
Packit 5e46da
        this.name = name;
Packit 5e46da
        for (int i = 0; i < value.length; i++)
Packit 5e46da
            values.add(value[i]);
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void add(String value) {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            values.remove(value);
Packit 5e46da
            values.add(value);
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void add(String value[]) {
Packit 5e46da
        for (int i = 0; i < value.length; i++)
Packit 5e46da
            add(value[i]);
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void add(int position, String value) {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            values.remove(value);
Packit 5e46da
            if (position < 0)
Packit 5e46da
                position = 0;
Packit 5e46da
            else if (position > values.size())
Packit 5e46da
                position = values.size();
Packit 5e46da
            values.add(position, value);
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public String[] getFavourites() {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            if (values.isEmpty())
Packit 5e46da
                return new String[0];
Packit 5e46da
            String[] result = new String[values.size()];
Packit 5e46da
            values.copyInto(result);
Packit 5e46da
            return result;
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public String getMostFavourite() {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            if (values.isEmpty())
Packit 5e46da
                return null;
Packit 5e46da
            return (String)values.get(0);
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public String getName() {
Packit 5e46da
        return name;
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public int getPosition(String value) {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            return values.indexOf(value);
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public boolean hasValue() {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            return !values.isEmpty();
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void remove(String value) {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            values.remove(value);
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void removeAll() {
Packit 5e46da
        synchronized (values) {
Packit 5e46da
            values.clear();
Packit 5e46da
        }
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public void setMostFavourite(String value) {
Packit 5e46da
        add(0, value);
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    public String toString() {
Packit 5e46da
        StringBuffer result = new StringBuffer();
Packit 5e46da
        String comma = "";
Packit 5e46da
Packit 5e46da
        result.append("Preference:");
Packit 5e46da
        result.append(name);
Packit 5e46da
        result.append("[");
Packit 5e46da
Packit 5e46da
        Iterator it = values.iterator();
Packit 5e46da
        while (it.hasNext()) {
Packit 5e46da
            result.append(comma);
Packit 5e46da
            result.append((String)it.next());
Packit 5e46da
            comma = ",";
Packit 5e46da
        }
Packit 5e46da
        result.append("]");
Packit 5e46da
        return result.toString();
Packit 5e46da
    }
Packit 5e46da
Packit 5e46da
    private String name;
Packit 5e46da
    private Vector values = new Vector();
Packit 5e46da
}