Package com.config

Source Code of com.config.Configuracao

package com.config;

import com.musica.MusicaS;
import com.musica.autor.AutorS;
import java.awt.Rectangle;
import java.util.ArrayList;

/**
*
* @author rudieri
* @param <E>
*/
public class Configuracao<E> {

    private E valor;
    private final ArrayList<ConfiguracaoListener> listeners = new ArrayList<ConfiguracaoListener>(3);

    public Configuracao() {
    }

    public Configuracao(E valorPadrao) {
        this.valor = valorPadrao;
    }

    public E getValor() {
        return valor;
    }

    public void setValor(E valor, boolean gravarAgora) {
        setValor(valor);
        if (gravarAgora) {
            Configuracoes.gravar();
        }
    }

    public void setValor(E valor) {
        this.valor = valor;
        for (int i = 0; i < listeners.size(); i++) {
            listeners.get(i).configuracaoModificada(this);
        }
    }

    protected String converteValorParaGravavel() {
        if (valor == null) {
            return null;
        } else if (valor instanceof ArrayList) {
            return valor.toString().replaceAll("[\\[\\]]", "");
        } else if (valor instanceof MusicaS) {
            MusicaS musica = (MusicaS) valor;
            AutorS autor = musica.getAlbum().getAutor();
            return autor.getNome() + "/" + musica.getAlbum().getNome() + "/" + musica.getNome();
        } else if (valor instanceof Enum) {
            return ((Enum) valor).name();
        } else if (valor instanceof Rectangle) {
            Rectangle rec = (Rectangle) valor;
            return "[" + rec.x + "," + rec.y + "," + rec.width + "," + rec.height + "]";
        } else if (valor instanceof String || valor instanceof Long || valor instanceof Double || valor instanceof Boolean || valor instanceof Byte) {
            return valor.toString();
        } else {
            throw new UnsupportedOperationException("Classe " + valor.getClass().toString() + " não tratada.");
        }
    }

    public void addConfiguracaoListener(ConfiguracaoListener configuracaoListener) {
        listeners.add(configuracaoListener);
    }
}
TOP

Related Classes of com.config.Configuracao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.