marți, 5 iunie 2012

Transformare baza

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class Baza2Transformer implements Transformer
{
    int numar;
    @SuppressWarnings("unchecked")
    List listenerList = new ArrayList();
   
    @SuppressWarnings("unchecked")
    public void addNumarChangeListener(NumarChangeListener listener)
    {
        listenerList.add(listener);
    }
       
    public void setNumar(int numar)
    {
        this.numar=numar;
        for(Object o:listenerList)
        {
            NumarChangeListener listener = (NumarChangeListener) o;
            listener.numarChanged(numar);
        }
    }
   
    public String toString ()
    {
        return Integer.toBinaryString(numar);
    }
   
    public NumarChangeListener createOwnListener()
    {
        return new ListenerBaza2();
    }
   
    public class ListenerBaza2 implements NumarChangeListener
    {
        public void numarChanged(int numar)
        {
            Baza2Transformer.this.numar=numar;
        }
    }
}
................................................
import java.util.ArrayList;
import java.util.List;


public class Baza3Transformer implements Transformer
{
    int numar;
    List listenerList = new ArrayList();
   
    @SuppressWarnings("unchecked")
    public void addNumarChangeListener(NumarChangeListener listener)
    {
        listenerList.add(listener);
    }
   
    public void setNumar(int numar)
    {
        this.numar=numar;
        for(Object o:listenerList)
        {
            NumarChangeListener listener = (NumarChangeListener) o;
            listener.numarChanged(numar);
        }
    }
   
    public String toString ()
    {
        return Integer.toString(numar,3);
    }
   
    public NumarChangeListener createOwnListener()
    {
        return new ListenerBaza3();
    }
   
    public class ListenerBaza3 implements NumarChangeListener
    {
        public void numarChanged(int numar)
        {
            Baza3Transformer.this.numar=numar;
        }
    }
}
..........................................
import java.util.ArrayList;
import java.util.List;




public class Baza4Transformer implements Transformer
{
    int numar;
    List listenerList = new ArrayList();
   
    public void addNumarChangeListener(NumarChangeListener listener)
    {       
        listenerList.add(listener);
    }
   
    public void setNumar(int numar)
    {
        this.numar=numar;
        for(Object o:listenerList)
        {
            NumarChangeListener listener = (NumarChangeListener) o;
            listener.numarChanged(numar);
        }
    }
   
    public String toString ()
    {
        return Integer.toString(numar,4);
    }
   
    public NumarChangeListener createOwnListener()
    {
        return new ListenerBaza4();
    }
   
    public class ListenerBaza4 implements NumarChangeListener
    {
        public void numarChanged(int numar)
        {
            Baza4Transformer.this.numar=numar;
        }
    }
}
..........................................

public class Main
{
    public static void main(String[] args)
    {
        Transformer trans2 = TransformerFactory.createTransformer(2);
        Transformer trans3 = TransformerFactory.createTransformer(3);
        Transformer trans4 = TransformerFactory.createTransformer(4);
       
       
        NumarChangeListener listener2 = trans2.createOwnListener();
        NumarChangeListener listener3 = trans3.createOwnListener();
        NumarChangeListener listener4 = trans4.createOwnListener();
       
        trans2.addNumarChangeListener(listener3);
        trans2.addNumarChangeListener(listener4);
        trans3.addNumarChangeListener(listener2);
        trans3.addNumarChangeListener(listener4);
        trans4.addNumarChangeListener(listener2);
        trans4.addNumarChangeListener(listener3);
       
        trans3.setNumar(5);
       
        System.out.println("Numarul initial: 5");
        System.out.println("Numarul in baza 2: " + trans2.toString());
        System.out.println("Numarul in baza 3: " + trans3.toString());
        System.out.println("Numarul in baza 4: " + trans4.toString());
       
        trans2.setNumar(13);
        System.out.println("Numarul initial: 13");
        System.out.println("Numarul in baza 2: " + trans2.toString());
        System.out.println("Numarul in baza 3: " + trans3.toString());
        System.out.println("Numarul in baza 4: " + trans4.toString());
    }

}
.........................

public interface NumarChangeListener
{
    void numarChanged(int numar);
}
........................

public interface Transformer
{
    public void setNumar(int numar);
    public void addNumarChangeListener(NumarChangeListener listener);
    public NumarChangeListener createOwnListener();
}
........................

public class TransformerFactory
{
    public static Transformer createTransformer(int baza)
    {
        switch(baza)
        {
        case 2: return new Baza2Transformer();
        case 3: return new Baza3Transformer();
        case 4: return new Baza4Transformer();
        default: throw new RuntimeException();
        }
       
    }
}

Niciun comentariu:

Trimiteți un comentariu