From edbc344227c3cbbb027be93b34eb2a51e3a1983c Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 7 Feb 2002 10:04:02 +0000 Subject: [PATCH 1/1] Media helper to modularize the invocation and getting of handlers. all the reflection stuff happens here. --- source/mir/media/MediaHelper.java | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 source/mir/media/MediaHelper.java diff --git a/source/mir/media/MediaHelper.java b/source/mir/media/MediaHelper.java new file mode 100755 index 00000000..a9d31273 --- /dev/null +++ b/source/mir/media/MediaHelper.java @@ -0,0 +1,52 @@ +package mir.media; + +import java.lang.reflect.*; +import java.lang.*; + +import mir.entity.Entity; +import mir.storage.Database; + +/** + * helper class to resolve media handlers using reflection + * + * @author mh + * @version 2002 + */ + +public final class MediaHelper { + + static String _classPrefix = "mir.media.MediaHandler"; + + public static MirMedia getHandler( Entity mediaType ) + throws MirMediaException { + + MirMedia mediaHandler; + String handlerName = mediaType.getValue("classname"); + try { + Class handlerClass = Class.forName(_classPrefix+handlerName); + return mediaHandler = (MirMedia)handlerClass.newInstance(); + } catch (Exception e) { + throw new MirMediaException ("getHandler -- error in reflection " + +e.toString()); + } + } + + public static Database getStorage(Entity mediaType, String classPrefix) + throws MirMediaException { + + Database mediaStorage; + String storageName = mediaType.getValue("tablename"); + try { + Class storageClass = Class.forName(classPrefix+storageName); + Method m = storageClass.getMethod("getInstance", null); + return mediaStorage = (Database)m.invoke(null, null); + } catch (Exception e) { + throw new MirMediaException ("getStorage -- error in reflection " + +e.toString()); + } + } + +} + + + -- 2.11.0