/**
*
*/
package com.grendelscan.commons.flex.output;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import com.grendelscan.commons.flex.AmfOutputStream;
/**
* @author david
*
*/
public class AmfOutputStreamRegistry
{
private static AmfOutputStreamRegistry instance;
/**
* @return the registry
*/
public static AmfOutputStream getStream(final OutputStream out)
{
if (out instanceof AmfOutputStream)
{
return (AmfOutputStream) out;
}
if (instance.registry.containsKey(out))
{
return instance.registry.get(out);
}
AmfOutputStream amfOut = new AmfOutputStream(out);
;
instance.registry.put(out, amfOut);
return amfOut;
}
public static void initialize()
{
instance = new AmfOutputStreamRegistry();
}
public static void register(final OutputStream out, final AmfOutputStream amf)
{
instance.registry.put(out, amf);
}
public static void unregister(final OutputStream out)
{
instance.registry.remove(out);
}
private final Map<OutputStream, AmfOutputStream> registry;
private AmfOutputStreamRegistry()
{
registry = new HashMap<OutputStream, AmfOutputStream>();
}
}