+/*
+ * 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 the com.oreilly.servlet library, 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 mircoders.storage;
import java.lang.*;
private static DatabaseContentToMedia instance;
- public static DatabaseContentToMedia getInstance()
+ // 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 DatabaseContentToMedia getInstance()
throws StorageObjectException {
if (instance == null) {
instance = new DatabaseContentToMedia();
String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
try {
- returnList = DatabaseMedia.getInstance().selectByWhereClause(subselect,-1);
+ // media should stay in uploaded order. this is especially important
+ // for photo stories which require a specific chronologic order.
+ // this is why we have the the second parameter "id"
+ returnList = DatabaseMedia.getInstance().selectByWhereClause(subselect,"id",-1);
} catch (Exception e) {
theLog.printDebugInfo("-- get media failed " + e.toString());
throw new StorageObjectException("-- get media failed " + e.toString());
String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
try {
- returnList = DatabaseAudio.getInstance().selectByWhereClause(subselect,-1);
+ // media should stay in uploaded order. this is especially important
+ // for photo stories which require a specific chronologic order.
+ // this is why we have the the second parameter "id"
+ returnList = DatabaseAudio.getInstance().selectByWhereClause(subselect,"id",-1);
} catch (Exception e) {
theLog.printDebugInfo("-- get audio failed " + e.toString());
throw new StorageObjectException("-- get audio failed " + e.toString());
String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
try {
- returnList = DatabaseVideo.getInstance().selectByWhereClause(subselect,-1);
+ // media should stay in uploaded order. this is especially important
+ // for photo stories which require a specific chronologic order.
+ // this is why we have the the second parameter "id"
+ returnList = DatabaseVideo.getInstance().selectByWhereClause(subselect,"id",-1);
} catch (Exception e) {
theLog.printDebugInfo("-- get video failed " + e.toString());
throw new StorageObjectException("-- get video failed " + e.toString());
String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
try {
- returnList = DatabaseImages.getInstance().selectByWhereClause(subselect,-1);
+ // media should stay in uploaded order. this is especially important
+ // for photo stories which require a specific chronologic order.
+ // this is why we have the the second parameter "id"
+ returnList = DatabaseImages.getInstance().selectByWhereClause(subselect,"id",-1);
} catch (Exception e) {
theLog.printDebugInfo("-- get images failed " + e.toString());
throw new StorageObjectException("-- get images failed " + e.toString());
" where content_id=" + id+")";
try {
+ // media should stay in uploaded order. this is especially important
+ // for photo stories which require a specific chronologic order.
+ // this is why we have the the second parameter "id"
returnList = DatabaseOther.getInstance().selectByWhereClause(subselect,
"id");
} catch (Exception e) {
}
- public EntityList getContent(EntityMedia media)
+ public EntityList getContent(EntityUploadedMedia media)
throws StorageObjectException {
EntityList returnList=null;
if (media != null) {