problem with ghost fragments appearing after generated files has been fixed
[mir.git] / source / mircoders / storage / DatabaseTopics.java
index 2b502cb..bb13cd3 100755 (executable)
 
 package mircoders.storage;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import mir.entity.Entity;
+import mir.entity.EntityBrowser;
 import mir.log.LoggerWrapper;
 import mir.storage.Database;
-import mir.storage.StorageObject;
-import mir.storage.StorageObjectFailure;
-import freemarker.template.SimpleList;
-
-/**
- * <b>Diese Klasse implementiert die Datenbankverbindung zur MetaObjekt-Tabelle
- *
- *
- */
-
-public class DatabaseTopics extends Database implements StorageObject{
+import mir.storage.DatabaseFailure;
 
+public class DatabaseTopics extends Database {
   private static DatabaseTopics instance;
 
-  // the following *has* to be sychronized cause this static method
-  // could get preemted and we could end up with 2 instances of DatabaseFoo..
-  // see the "Singletons with needles and thread" article at JavaWorld -mh
   public synchronized static DatabaseTopics getInstance() {
     if (instance == null) {
       instance = new DatabaseTopics();
@@ -56,17 +52,28 @@ public class DatabaseTopics extends Database implements StorageObject{
     return instance;
   }
 
-  private DatabaseTopics() throws StorageObjectFailure {
+  private DatabaseTopics() throws DatabaseFailure {
     super();
 
     logger = new LoggerWrapper("Database.Topics");
 
-    hasTimestamp = false;
-    theTable = "topic";
-    theEntityClass = mircoders.entity.EntityTopics.class;
+    mainTable = "topic";
+    entityClass = mircoders.entity.EntityTopics.class;
   }
 
-  public SimpleList getPopupData() throws StorageObjectFailure {
-    return getPopupData("title", true);
+  public List getPopupData() throws DatabaseFailure {
+    List result = new ArrayList();
+    Iterator i = new EntityBrowser(this, "", "title", 100, -1, 0);
+
+    while (i.hasNext()) {
+      Entity e = (Entity) i.next();
+      Map entry = new HashMap();
+      entry.put("key", e.getId());
+      entry.put("value", e.getFieldValue("title"));
+
+      result.add(entry);
+    }
+
+    return result;
   }
 }