this.theTable="content_x_media";
}
-
- public EntityList getMedia(EntityContent content) {
+ /**
+ * get all the media-files belonging to a content entity
+ *
+ */
+ public EntityList getMedia(EntityContent content)
+ throws StorageObjectException {
EntityList returnList=null;
if (content != null) {
// get all to_topic from media_x_topic
returnList = DatabaseMedia.getInstance().selectByWhereClause(subselect,-1);
} catch (Exception e) {
theLog.printDebugInfo("-- get media failed " + e.toString());
+ throw new StorageObjectException("-- get media failed " + e.toString());
+ }
+ }
+ return returnList;
+ }
+
+ /**
+ * get all the images belonging to a content entity
+ *
+ */
+ public EntityList getImages(EntityContent content)
+ throws StorageObjectException {
+ EntityList returnList=null;
+ if (content != null) {
+ // get all to_topic from media_x_topic
+ String id = content.getId();
+ //this is not supported by mysql
+ String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
+
+ try {
+ returnList = DatabaseImages.getInstance().selectByWhereClause(subselect,-1);
+ } catch (Exception e) {
+ theLog.printDebugInfo("-- get images failed " + e.toString());
+ throw new StorageObjectException("-- get images failed " + e.toString());
+ }
+ }
+ return returnList;
+ }
+
+
+ /**
+ * get all the uploaded Media belonging to a content entity
+ *
+ */
+ public EntityList getUploadedMedia(EntityContent content)
+ throws StorageObjectException {
+ EntityList returnList=null;
+ if (content != null) {
+ // get all to_topic from media_x_topic
+ String id = content.getId();
+ //this is not supported by mysql
+ String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
+
+ try {
+ returnList = DatabaseMedia.getInstance().selectByWhereClause(subselect,"id");
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printDebugInfo("-- get uploadedMedia failed " + e.toString());
+ throw new StorageObjectException("-- get uploadedMedia failed " + e.toString());
}
}
return returnList;
}
- public void setMedia(String contentId, String[] mediaId) {
+ public void setMedia(String contentId, String[] mediaId)
+ throws StorageObjectException {
if (contentId == null){
return;
}
}
//first delete all row with content_id=contentId
String sql = "delete from "+ theTable +" where content_id=" + contentId;
-
+
Connection con=null;Statement stmt=null;
try {
con = getPooledCon();
ResultSet rs = executeSql(stmt,sql);
} catch (Exception e) {
theLog.printDebugInfo("-- set media failed -- delete");
+ throw new StorageObjectException("-- set media failed -- delete"+e.toString());
} finally {
freeConnection(con,stmt);
}
-
+
//now insert
//first delete all row with content_id=contentId
for (int i=0;i<mediaId.length;i++) {
con = getPooledCon();
// should be a preparedStatement because is faster
stmt = con.createStatement();
- ResultSet rs = executeSql(stmt,sql);
+ int rs = executeUpdate(stmt,sql);
} catch (Exception e) {
theLog.printDebugInfo("-- set topics failed -- insert");
+ throw new StorageObjectException("-- set topics failed -- insert "+e.toString());
} finally {
freeConnection(con,stmt);
}
}
}
+ public void addMedia(String contentId, String mediaId)
+ throws StorageObjectException {
+ if (contentId == null && mediaId == null) {
+ return;
+ }
+
+ Connection con=null;Statement stmt=null;
+ //now insert
- public void setMedia(String contentId, String mediaId) {
+ String sql = "insert into "+ theTable +" (content_id,media_id) values ("
+ + contentId + "," + mediaId + ")";
+ try {
+ con = getPooledCon();
+ // should be a preparedStatement because is faster
+ stmt = con.createStatement();
+ int rs = executeUpdate(stmt,sql);
+ } catch (Exception e) {
+ theLog.printDebugInfo("-- add media failed -- insert");
+ throw new StorageObjectException("-- add media failed -- insert "
+ +e.toString());
+ } finally {
+ freeConnection(con,stmt);
+ }
+ }
+
+ public void setMedia(String contentId, String mediaId)
+ throws StorageObjectException {
if (contentId == null && mediaId == null) {
return;
}
int rs = executeUpdate(stmt,sql);
} catch (Exception e) {
theLog.printDebugInfo("-- set media failed -- delete");
+ throw new StorageObjectException("-- set media failed -- delete "
+ +e.toString());
} finally {
freeConnection(con,stmt);
}
int rs = executeUpdate(stmt,sql);
} catch (Exception e) {
theLog.printDebugInfo("-- set media failed -- insert");
+ throw new StorageObjectException("-- set media failed -- insert "
+ +e.toString());
} finally {
freeConnection(con,stmt);
}
}
- public void deleteByContentId(String contentId) {
+ public void deleteByContentId(String contentId)
+ throws StorageObjectException {
if (contentId == null) {
//theLog.printDebugInfo("-- delete topics failed -- no content id");
return;
con = getPooledCon();
// should be a preparedStatement because is faster
stmt = con.createStatement();
- ResultSet rs = executeSql(stmt,sql);
+ int rs = executeUpdate(stmt,sql);
} catch (Exception e) {
- //theLog.printDebugInfo("-- delete topics failed ");
+ theLog.printDebugInfo("-- delete by contentId failed ");
+ throw new StorageObjectException("-- delete by content id failed -- delete "
+ +e.toString());
} finally {
freeConnection(con,stmt);
}
}
- public void deleteByMediaId(String mediaId) {
+ public void deleteByMediaId(String mediaId)
+ throws StorageObjectException {
if (mediaId == null) {
//theLog.printDebugInfo("-- delete topics failed -- no topic id");
return;
}
//delete all row with content_id=contentId
- String sql = "delete from "+ theTable +" where topic_id=" + mediaId;
+ String sql = "delete from "+ theTable +" where media_id=" + mediaId;
Connection con=null;Statement stmt=null;
try {
con = getPooledCon();
// should be a preparedStatement because is faster
stmt = con.createStatement();
- ResultSet rs = executeSql(stmt,sql);
+ int rs = executeUpdate(stmt,sql);
theLog.printDebugInfo("-- delete media success ");
} catch (Exception e) {
theLog.printDebugInfo("-- delete media failed ");
+ throw new StorageObjectException("-- delete by media id failed -- "
+ +e.toString());
} finally {
freeConnection(con,stmt);
}
}
+ public void delete(String contentId, String mediaId)
+ throws StorageObjectException {
+ if (mediaId == null || contentId==null) {
+ theLog.printDebugInfo("-- delete media failed -- missing parameter");
+ return;
+ }
+ //delete all row with content_id=contentId and media_id=mediaId
+ String sql = "delete from "+ theTable +" where media_id=" + mediaId + " and content_id= "+contentId;
- public EntityList getContent(EntityMedia media) {
+ Connection con=null;Statement stmt=null;
+ try {
+ con = getPooledCon();
+ // should be a preparedStatement because is faster
+ stmt = con.createStatement();
+ int rs = executeUpdate(stmt,sql);
+ theLog.printDebugInfo("-- delete content_x_media success ");
+ } catch (Exception e) {
+ theLog.printDebugInfo("-- delete content_x_media failed ");
+ throw new StorageObjectException("-- delete content_x_media failed -- "
+ +e.toString());
+ } finally {
+ freeConnection(con,stmt);
+ }
+ }
+
+
+ public EntityList getContent(EntityMedia media)
+ throws StorageObjectException {
EntityList returnList=null;
if (media != null) {
String id = media.getId();
returnList = DatabaseContent.getInstance().selectByWhereClause(mediaSelect,-1);
}
}
- catch (Exception e) {theLog.printDebugInfo("-- get content failed");}
+ catch (Exception e) {
+ theLog.printDebugInfo("-- get content failed");
+ throw new StorageObjectException("-- get content failed -- "
+ +e.toString());
+ }
finally { freeConnection(con,stmt);}
}
return returnList;
}
+/**
+ * Returns a EntityList with all content-objects having a relation to a media
+ */
+
+public EntityList getContent()
+ throws StorageObjectException {
+ EntityList returnList=null;
+
+ String select = "select distinct content_id from " + theTable;
+ // execute select statement
+ Connection con=null;Statement stmt=null;
+ try {
+ con = getPooledCon();
+ // should be a preparedStatement because is faster
+ stmt = con.createStatement();
+ ResultSet rs = executeSql(stmt,select);
+ if (rs!=null) {
+ String mediaSelect= "id IN (";
+ boolean first=true;
+ while (rs.next()) {
+ if (first==false) mediaSelect+=",";
+ mediaSelect += rs.getString(1);
+ first=false;
+ }
+ mediaSelect+=")";
+ if (first==false)
+ returnList = DatabaseContent.getInstance().selectByWhereClause(mediaSelect,"webdb_lastchange desc");
+ }
+ }
+ catch (Exception e) {
+ theLog.printDebugInfo("-- get content failed");
+ throw new StorageObjectException("-- get content failed -- "
+ +e.toString());
+ }
+ finally { freeConnection(con,stmt);}
+
+ return returnList;
+ }
+
}