--- /dev/null
+package mircoders.storage;
+
+import java.lang.*;
+import java.sql.*;
+import java.io.*;
+import java.util.*;
+
+import freemarker.template.*;
+
+import webdb.storage.*;
+import webdb.entity.*;
+import webdb.misc.*;
+
+import mir.entity.*;
+
+/**
+ * <b>this class implements the access to the content-table</b>
+ *
+ *
+ */
+
+public class DatabaseContent extends Database implements StorageObject {
+
+ private static DatabaseContent instance;
+ private static EntityRelation relationComments;
+ private static EntityRelation relationFeature;
+
+ // Contructors / Singleton
+
+ public static DatabaseContent getInstance()
+ throws StorageObjectException {
+
+ if (instance == null ) {
+ instance = new DatabaseContent();
+ instance.myselfDatabase = instance;
+ }
+ return instance;
+ }
+
+ private DatabaseContent()
+ throws StorageObjectException {
+
+ super();
+ this.theTable="content";
+ this.theCoreTable="media";
+ relationComments = new EntityRelation("id", "to_media", DatabaseComment.getInstance(), EntityRelation.TO_MANY);
+ relationFeature = new EntityRelation("id", "to_feature", DatabaseFeature.getInstance(), EntityRelation.TO_ONE);
+ try { this.theEntityClass = Class.forName("mir.entity.EntityContent"); }
+ catch (Exception e) { throw new StorageObjectException(e.toString()); }
+ }
+
+ // methods
+
+ /**
+ * sets the database flag is_produced to unproduced
+ */
+
+ public void setUnproduced(String where)
+ {
+ Connection con=null;Statement stmt=null;
+ String sql = "update content set is_produced=0 where " + where;
+ try {
+ con = getPooledCon();
+ // should be a preparedStatement because is faster
+ stmt = con.createStatement();
+ executeSql(stmt,sql);
+ }
+ catch (Exception e) {theLog.printDebugInfo("-- set unproduced failed");}
+ finally { freeConnection(con,stmt);}
+ }
+
+ /**
+ * returns the comments that belong to the article (via entityrelation)
+ */
+ public SimpleList getComments(EntityContent entC) {
+ SimpleList comments=null;
+ try {
+ comments = relationComments.getManyAsSimpleList(entC,"webdb_create");
+ }
+ catch (StorageObjectException e) {
+ theLog.printError("DatabaseComments :: failed to get comments");
+ }
+ return comments;
+ }
+
+ /**
+ * returns the features that belong to the article (via entityrelation)
+ */
+ public SimpleList getFeature(EntityContent entC) {
+ SimpleList feature=null;
+ try {
+ feature = relationFeature.getManyAsSimpleList(entC);
+ }
+ catch (StorageObjectException e) {
+ theLog.printError("DatabaseComments :: failed to get features");
+ }
+ return feature;
+ }
+
+ public boolean delete(String id)
+ throws StorageObjectException {
+ DatabaseComment.getInstance().deleteByContentId(id);
+ super.delete(id);
+ return true;
+ }
+
+}