package org.jboss.media.registry;
import java.util.Iterator;
import java.util.Map;
import javax.emb.FormatAlreadyBoundException;
import javax.emb.FormatNotFoundException;
import javax.emb.MediaFormat;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import org.jboss.media.format.audio.mpeg.MpegAudioFormat;
import org.jboss.media.format.image.iio.IIOMediaFormatFactory;
import org.jboss.mx.util.MBeanProxy;
import org.jboss.mx.util.MBeanProxyCreationException;
public class JBossMediaFormatRegistry
{
private SimpleMediaFormatRegistry mediaFormatRegistry;
private static final String OBJECT_NAME =
"jboss.emb:service=ManagedMediaFormatRegistry";
private static boolean INITIALIZED = false;
private static MBeanServer SERVER;
public JBossMediaFormatRegistry() throws FormatAlreadyBoundException
{
Map mediaFormats = createMediaFormats();
mediaFormatRegistry = new SimpleMediaFormatRegistry(mediaFormats);
}
public void bind(String fileExtension, MediaFormat mediaFormat)
throws FormatAlreadyBoundException
{
mediaFormatRegistry.bind(fileExtension, mediaFormat);
}
public void rebind(String fileExtension, MediaFormat mediaFormat)
{
mediaFormatRegistry.rebind(fileExtension, mediaFormat);
}
public void unbind(String fileExtension) throws FormatNotFoundException
{
mediaFormatRegistry.unbind(fileExtension);
}
public MediaFormat lookup(String fileExtension)
throws FormatNotFoundException
{
return mediaFormatRegistry.lookup(fileExtension);
}
public Iterator getFileExtensions()
{
return mediaFormatRegistry.fileExtensions();
}
private static ManagedMediaFormatRegistryMBean getInstance()
{
try
{
ObjectName objectName = new ObjectName(OBJECT_NAME);
return (ManagedMediaFormatRegistryMBean) MBeanProxy.get(
ManagedMediaFormatRegistryMBean.class,
objectName,
SERVER);
}
catch (MalformedObjectNameException e)
{
return null;
}
catch (MBeanProxyCreationException e)
{
return null;
}
}
public static Map createMediaFormats()
{
Map mediaFormats = IIOMediaFormatFactory.createMediaFormats();
mediaFormats.put("mp3", new MpegAudioFormat());
return mediaFormats;
}
}