From 67fd4e93a948fc6d177eebc127de7f37d90cc033 Mon Sep 17 00:00:00 2001 From: Robert Tansley Date: Thu, 30 May 2002 14:50:46 +0000 Subject: [PATCH] Made some changes to the DB. ContentTest fails - will check when I have time git-svn-id: http://scm.dspace.org/svn/repo/trunk@52 9c30dcfa-912a-0410-8fc2-9e0234be79fd --- dspace/etc/database_schema.sql | 74 +++++++++---------- dspace/src/org/dspace/content/Bitstream.java | 16 ++-- .../org/dspace/content/BitstreamFormat.java | 32 ++++---- .../src/org/dspace/content/WorkflowItem.java | 10 +-- .../src/org/dspace/content/WorkspaceItem.java | 53 ++++++------- 5 files changed, 91 insertions(+), 94 deletions(-) diff --git a/dspace/etc/database_schema.sql b/dspace/etc/database_schema.sql index 85a188a487..47cf1164a0 100644 --- a/dspace/etc/database_schema.sql +++ b/dspace/etc/database_schema.sql @@ -49,19 +49,19 @@ -- ------------------------------------------------------- --- BitstreamTypeRegistry table +-- BitstreamFormatRegistry table ------------------------------------------------------- -DROP TABLE BitstreamTypeRegistry; +DROP TABLE BitstreamFormatRegistry; -CREATE TABLE BitstreamTypeRegistry +CREATE TABLE BitstreamFormatRegistry ( - bitstream_type_id INTEGER PRIMARY KEY, - mimetype VARCHAR(48), - short_description VARCHAR(128) UNIQUE, - description TEXT, - support_level INTEGER, + bitstream_format_id INTEGER PRIMARY KEY, + mimetype VARCHAR(48), + short_description VARCHAR(128) UNIQUE, + description TEXT, + support_level INTEGER, -- Identifies internal types - internal BOOL + internal BOOL ); ------------------------------------------------------- @@ -71,18 +71,17 @@ DROP TABLE Bitstream; CREATE TABLE Bitstream ( - bitstream_id INTEGER PRIMARY KEY, - bitstream_type_id INTEGER REFERENCES -BitstreamTypeRegistry(bitstream_type_id), - name VARCHAR(256), - size INTEGER, - checksum VARCHAR(64), - checksum_algorithm VARCHAR(32), - description TEXT, - user_type_description TEXT, - source VARCHAR(256), - internal_id VARCHAR(256), - deleted BOOL + bitstream_id INTEGER PRIMARY KEY, + bitstream_format_id INTEGER REFERENCES BitstreamFormatRegistry(bitstream_format_id), + name VARCHAR(256), + size INTEGER, + checksum VARCHAR(64), + checksum_algorithm VARCHAR(32), + description TEXT, + user_format_description TEXT, + source VARCHAR(256), + internal_id VARCHAR(256), + deleted BOOL ); ------------------------------------------------------- @@ -300,21 +299,21 @@ CREATE TABLE Handle ); ------------------------------------------------------- --- PersonalWorkspace table +-- WorkspaceItem table ------------------------------------------------------- -DROP TABLE PersonalWorkspace; +DROP TABLE WorkspaceItem; -CREATE TABLE PersonalWorkspace +CREATE TABLE WorkspaceItem ( - personal_workspace_id INTEGER PRIMARY KEY, - item_id INTEGER REFERENCES Item(item_id), - collection_id INTEGER REFERENCES Collection(collection_id), + workspace_item_id INTEGER PRIMARY KEY, + item_id INTEGER REFERENCES Item(item_id), + collection_id INTEGER REFERENCES Collection(collection_id), -- Answers to questions on first page of submit UI - multiple_titles BOOL, - published_before BOOL, - multiple_files BOOL, + multiple_titles BOOL, + published_before BOOL, + multiple_files BOOL, -- How for the user has got in the submit process - stage_reached INTEGER + stage_reached INTEGER ); ------------------------------------------------------- @@ -352,8 +351,6 @@ CREATE TABLE TasklistItem ); - - ------------------------------------------------------- -- RegistrationData table ------------------------------------------------------- @@ -362,15 +359,12 @@ DROP TABLE RegistrationData; CREATE TABLE RegistrationData ( registrationdata_id INTEGER PRIMARY KEY, - lookup_key VARCHAR(64) UNIQUE, - creator VARCHAR(64), - created TIMESTAMP, - expires TIMESTAMP, - table_name VARCHAR(64), - column_name VARCHAR(64), - table_id INTEGER + eperson_id INTEGER REFERENCES EPerson(eperson_id), + token VARCHAR(48), + expires TIMESTAMP ); + ------------------------------------------------------- -- History table ------------------------------------------------------- diff --git a/dspace/src/org/dspace/content/Bitstream.java b/dspace/src/org/dspace/content/Bitstream.java index adcf118bf9..7220c81555 100644 --- a/dspace/src/org/dspace/content/Bitstream.java +++ b/dspace/src/org/dspace/content/Bitstream.java @@ -90,16 +90,16 @@ public class Bitstream bRow = row; // Get the bitstream format - int bfID = row.getIntColumn("bitstream_type_id"); + int bfID = row.getIntColumn("bitstream_format_id"); TableRow formatRow = DatabaseManager.find(context, - "bitstreamtyperegistry", bfID); + "bitstreamformatregistry", bfID); if (formatRow == null) { // No format: use "Unknown" formatRow = DatabaseManager.findByUnique(context, - "bitstreamtyperegistry", "short_description", "Unknown"); + "bitstreamformatregistry", "short_description", "Unknown"); // Panic if we can't find it if (formatRow == null) @@ -309,7 +309,7 @@ public class Bitstream // FIXME: Would be better if this didn't throw an SQLException, // but we need to find the unknown format! setFormat(null); - bRow.setColumn("user_type_description", desc); + bRow.setColumn("user_format_description", desc); } @@ -321,7 +321,7 @@ public class Bitstream */ public String getUserFormatDescription() { - return bRow.getStringColumn("user_type_description"); + return bRow.getStringColumn("user_format_description"); } @@ -335,7 +335,7 @@ public class Bitstream { if (bitstreamFormat.getShortDescription().equals("Unknown")) { - return bRow.getStringColumn("user_type_description"); + return bRow.getStringColumn("user_format_description"); } else { @@ -379,10 +379,10 @@ public class Bitstream } // Remove user type description - bRow.setColumnNull("user_type_description"); + bRow.setColumnNull("user_format_description"); // Update the ID in the table row - bRow.setColumn("bitstream_type_id", bitstreamFormat.getID()); + bRow.setColumn("bitstream_format_id", bitstreamFormat.getID()); } diff --git a/dspace/src/org/dspace/content/BitstreamFormat.java b/dspace/src/org/dspace/content/BitstreamFormat.java index 9ec8e6d4eb..7f852a7c5e 100644 --- a/dspace/src/org/dspace/content/BitstreamFormat.java +++ b/dspace/src/org/dspace/content/BitstreamFormat.java @@ -116,7 +116,7 @@ public class BitstreamFormat throws SQLException { TableRow row = DatabaseManager.find(context, - "bitstreamtyperegistry", + "bitstreamformatregistry", id); if (row == null) @@ -125,7 +125,7 @@ public class BitstreamFormat { log.debug(LogManager.getHeader(context, "find_bitstream_format", - "not_found,bitstream_type_id=" + id)); + "not_found,bitstream_format_id=" + id)); } return null; @@ -136,7 +136,7 @@ public class BitstreamFormat { log.debug(LogManager.getHeader(context, "find_bitstream", - "bitstream_type_id=" + id)); + "bitstream_format_id=" + id)); } return new BitstreamFormat(context, row); @@ -158,7 +158,7 @@ public class BitstreamFormat throws SQLException { TableRow formatRow = DatabaseManager.findByUnique(context, - "bitstreamtyperegistry", "short_description", "Unknown"); + "bitstreamformatregistry", "short_description", "Unknown"); if (formatRow == null) { @@ -171,8 +171,8 @@ public class BitstreamFormat { log.debug(LogManager.getHeader(context, "find_bitstream", - "bitstream_type_id=" + formatRow.getIntColumn( - "bitstream_type_id"))); + "bitstream_format_id=" + formatRow.getIntColumn( + "bitstream_format_id"))); } return new BitstreamFormat(context, formatRow); @@ -194,8 +194,8 @@ public class BitstreamFormat List formats = new ArrayList(); TableRowIterator tri = DatabaseManager.query(context, - "bitstreamtyperegistry", - "SELECT * FROM bitstreamtyperegistry;"); + "bitstreamformatregistry", + "SELECT * FROM bitstreamformatregistry;"); while (tri.hasNext()) { @@ -222,11 +222,12 @@ public class BitstreamFormat // FIXME: Check authorisation // Create a table row - TableRow row = DatabaseManager.create(context, "bitstreamtyperegistry"); + TableRow row = DatabaseManager.create(context, + "bitstreamformatregistry"); log.info(LogManager.getHeader(context, "create_bitstream_format", - "bitstream_type_id=" + row.getIntColumn("bitstream_type_id"))); + "bitstream_format_id=" + row.getIntColumn("bitstream_format_id"))); return new BitstreamFormat(context, row); } @@ -239,7 +240,7 @@ public class BitstreamFormat */ public int getID() { - return bfRow.getIntColumn("bitstream_type_id"); + return bfRow.getIntColumn("bitstream_format_id"); } @@ -379,7 +380,7 @@ public class BitstreamFormat log.info(LogManager.getHeader(bfContext, "update_bitstream_format", - "bitstream_type_id=" + getID())); + "bitstream_format_id=" + getID())); DatabaseManager.update(bfContext, bfRow); } @@ -399,16 +400,15 @@ public class BitstreamFormat // Set bitstreams with this format to "unknown" int numberChanged = DatabaseManager.updateQuery(bfContext, - "UPDATE bitstreams SET bitstream_type_id=" + unknown.getID() + - " WHERE bitstream_type_id=" + getID()); + "UPDATE bitstreams SET bitstream_format_id=" + unknown.getID() + + " WHERE bitstream_format_id=" + getID()); // Delete this format from database DatabaseManager.delete(bfContext, bfRow); log.info(LogManager.getHeader(bfContext, "delete_bitstream_format", - "bitstream_type_id=" + getID() + ",bitstreams_changed=" + + "bitstream_format_id=" + getID() + ",bitstreams_changed=" + numberChanged)); } - } diff --git a/dspace/src/org/dspace/content/WorkflowItem.java b/dspace/src/org/dspace/content/WorkflowItem.java index b493f5b1bf..09a8ff4b4f 100644 --- a/dspace/src/org/dspace/content/WorkflowItem.java +++ b/dspace/src/org/dspace/content/WorkflowItem.java @@ -147,10 +147,10 @@ public class WorkflowItem implements InProgressSubmission /** - * Return the workflow item to the personal workspace of the submitter. + * Return the workflow item to the workspace of the submitter. * The workflow item is removed, and a workspace item created. * - * @return the personal workspace item + * @return the workspace item */ public WorkspaceItem returnToWorkspace() throws SQLException, AuthorizeException @@ -163,8 +163,8 @@ public class WorkflowItem implements InProgressSubmission item.clearDC("date", "accessioned", Item.ANY); item.update(); - // Create the new personal workspace row - TableRow row = DatabaseManager.create(ourContext, "personalworkspace"); + // Create the new workspace item row + TableRow row = DatabaseManager.create(ourContext, "workspaceitem"); row.setColumn("item_id", item.getID()); row.setColumn("collection_id", collection.getID()); @@ -176,7 +176,7 @@ public class WorkflowItem implements InProgressSubmission log.info(LogManager.getHeader(ourContext, "return_to_workspace", - "workflow_item_id=" + getID() + "workspace_id=" + wi.getID())); + "workflow_item_id=" + getID() + "workspace_item_id=" + wi.getID())); // Now remove the workflow object DatabaseManager.delete(ourContext, wfRow); diff --git a/dspace/src/org/dspace/content/WorkspaceItem.java b/dspace/src/org/dspace/content/WorkspaceItem.java index 930ca8867f..611583b99f 100644 --- a/dspace/src/org/dspace/content/WorkspaceItem.java +++ b/dspace/src/org/dspace/content/WorkspaceItem.java @@ -74,7 +74,7 @@ public class WorkspaceItem implements InProgressSubmission private Context ourContext; /** The table row corresponding to this workspace item */ - private TableRow pwRow; + private TableRow wiRow; /** The collection the item is being submitted to */ private Collection collection; @@ -90,11 +90,11 @@ public class WorkspaceItem implements InProgressSubmission throws SQLException { ourContext = context; - pwRow = row; + wiRow = row; - item = Item.find(context, pwRow.getIntColumn("item_id")); + item = Item.find(context, wiRow.getIntColumn("item_id")); collection = Collection.find(context, - pwRow.getIntColumn("collection_id")); + wiRow.getIntColumn("collection_id")); } @@ -111,7 +111,7 @@ public class WorkspaceItem implements InProgressSubmission throws SQLException { TableRow row = DatabaseManager.find(context, - "personalworkspace", + "workspaceitem", id); if (row == null) @@ -161,15 +161,15 @@ public class WorkspaceItem implements InProgressSubmission i.setSubmitter(sub); i.update(); - // Create the personal workspace row - TableRow row = DatabaseManager.create(context, "personalworkspace"); + // Create the workspace item row + TableRow row = DatabaseManager.create(context, "workspaceitem"); row.setColumn("item_id", i.getID()); row.setColumn("collection_id", coll.getID()); log.info(LogManager.getHeader(context, "create_workspace_item", - "workspace_item_id=" + row.getIntColumn("personal_workspace_id") + + "workspace_item_id=" + row.getIntColumn("workspace_item_id") + "item_id=" + i.getID() + "collection_id=" + coll.getID())); DatabaseManager.update(context, row ); @@ -179,7 +179,9 @@ public class WorkspaceItem implements InProgressSubmission /** - * Get all workspace items for a particular e-person + * Get all workspace items for a particular e-person. These are ordered by + * workspace item ID, since this should likely keep them in the order in + * which they were created. * * @param context the context object * @param ep the eperson @@ -192,10 +194,11 @@ public class WorkspaceItem implements InProgressSubmission List wsItems = new ArrayList(); TableRowIterator tri = DatabaseManager.query(context, - "personalworkspace", - "SELECT personalworkspace.* FROM personalworkspace, item WHERE " + - "personalworkspace.item_id=item.item_id AND " + - "item.submitter_id=" + ep.getID() + ";"); + "workspaceitem", + "SELECT workspaceitem.* FROM workspaceitem, item WHERE " + + "workspaceitem.item_id=item.item_id AND " + + "item.submitter_id=" + ep.getID() + + " ORDER BY workspaceitem.workspace_item_id;"); while (tri.hasNext()) { @@ -218,13 +221,13 @@ public class WorkspaceItem implements InProgressSubmission */ public int getID() { - return pwRow.getIntColumn("personal_workspace_id"); + return wiRow.getIntColumn("workspace_item_id"); } /** * Start the relevant workflow for this workspace item. The entry in - * PersonalWorkspace is removed, a workflow item is created, and the + * workspaceitem is removed, a workflow item is created, and the * relevant workflow initiated. If there is no workflow, i.e. the * item goes straight into the archive, null is returned. *

@@ -291,12 +294,12 @@ public class WorkspaceItem implements InProgressSubmission item.update(); // Update ourselves - DatabaseManager.update(ourContext, pwRow); + DatabaseManager.update(ourContext, wiRow); } /** - * Delete the workspace item. The entry in PersonalWorkspace, the + * Delete the workspace item. The entry in workspaceitem, the * unarchived item and its contents are all removed (multiple inclusion * notwithstanding.) */ @@ -311,9 +314,9 @@ public class WorkspaceItem implements InProgressSubmission "item_id=" + item.getID() + "collection_id=" + collection.getID())); - // Need to delete the personalworkspace row first since it refers + // Need to delete the workspaceitem row first since it refers // to item ID - DatabaseManager.delete(ourContext, pwRow); + DatabaseManager.delete(ourContext, wiRow); // Delete item item.deleteWithContents(); @@ -342,36 +345,36 @@ public class WorkspaceItem implements InProgressSubmission public boolean hasMultipleFiles() { - return pwRow.getBooleanColumn("multiple_files"); + return wiRow.getBooleanColumn("multiple_files"); } public void setMultipleFiles(boolean b) { - pwRow.setColumn("multiple_files", b); + wiRow.setColumn("multiple_files", b); } public boolean hasMultipleTitles() { - return pwRow.getBooleanColumn("multiple_titles"); + return wiRow.getBooleanColumn("multiple_titles"); } public void setMultipleTitles(boolean b) { - pwRow.setColumn("multiple_titles", b); + wiRow.setColumn("multiple_titles", b); } public boolean isPublishedBefore() { - return pwRow.getBooleanColumn("published_before"); + return wiRow.getBooleanColumn("published_before"); } public void setPublishedBefore(boolean b) { - pwRow.setColumn("published_before", b); + wiRow.setColumn("published_before", b); } }