o_store fixx
[mir.git] / source / mir / storage / store / StoreUtil.java
index fdebb89..d9b4d72 100755 (executable)
@@ -1,5 +1,36 @@
+/*
+ * Copyright (C) 2001, 2002 The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Mir is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with  any library licensed under the Apache Software License, 
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
+ * (or with modified versions of the above that use the same license as the above), 
+ * and distribute linked combinations including the two.  You must obey the 
+ * GNU General Public License in all respects for all of the code used other than 
+ * the above mentioned libraries.  If you modify this file, you may extend this 
+ * exception to your version of the file, but you are not obligated to do so.  
+ * If you do not wish to do so, delete this exception statement from your version.
+ */
 package mir.storage.store;
 
+import mir.entity.StorableObjectEntity;
+
 /**
  * Title:
  * Description:
@@ -25,10 +56,11 @@ public final class StoreUtil {
     return null;
   }
 
-  public static final String getEntityListUniqueIdentifierFor(String where, String order,
-    int offset, int limit)
+  public static final String getEntityListUniqueIdentifierFor( String table,
+    String where, String order, int offset, int limit)
   {
-    StringBuffer sb = new StringBuffer("@");
+    StringBuffer sb = new StringBuffer(table);
+    sb.append("@");
     if ( where!=null ) sb.append(where);
     sb.append("@");
     if ( order!=null ) sb.append(order);
@@ -37,25 +69,29 @@ public final class StoreUtil {
     return sb.toString();
   }
 
-       /**
-        *  Method:       implementsStorableObject
-        *  Description:  internall helper method to find out if a class implements
-        *                interface StorableObject.
-        *
-        *  @return       true if yes, otherwise no.
-        */
-       public final static boolean implementsStorableObject(Class aClass) {
-               if (aClass!=null) {
-                       Class[] interfaces = aClass.getInterfaces();
-                       if (interfaces.length>0) {
-                               for (int i=0;i<interfaces.length;i++) {
-                                       if (interfaces[i]==storableObjectInterface) return true;
-                               }
-                       }
-               }
-               return false;
-       }
+  /**
+   * Description:  internall helper method to find out if a class extends
+   * class StorableEntity.
+   *
+   * @param aClass DOCUMENT ME!
+   *
+   * @return true if yes, otherwise no.
+   */
+  public static final boolean extendsStorableEntity(Class aClass) {
+     if (aClass != null) {
+        Class superclass = aClass.getSuperclass();
 
+        if (superclass != null) {
+           if (superclass == StorableObjectEntity.class) {
+              return true;
+           } else {
+              return extendsStorableEntity(superclass);
+           }
+        }
+     }
+
+     return false;
+  }
 
 
 }
\ No newline at end of file