Merging in DSpace Event Mechanism Branch

git-svn-id: http://scm.dspace.org/svn/repo/trunk@2074 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
Mark Diggory
2007-07-19 19:40:11 +00:00
parent e8b21b6760
commit b835f46d7d
34 changed files with 3201 additions and 171 deletions

View File

@@ -52,6 +52,7 @@ import org.dspace.core.ConfigurationManager;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.core.LogManager;
import org.dspace.event.Event;
import org.dspace.storage.bitstore.BitstreamStorageManager;
import org.dspace.storage.rdbms.DatabaseManager;
import org.dspace.storage.rdbms.TableRow;
@@ -81,6 +82,12 @@ public class Bitstream extends DSpaceObject
/** The bitstream format corresponding to this bitstream */
private BitstreamFormat bitstreamFormat;
/** Flag set when data is modified, for events */
private boolean modified;
/** Flag set when metadata is modified, for events */
private boolean modifiedMetadata;
/**
* Private constructor for creating a Bitstream object based on the contents
* of a DB table row.
@@ -114,6 +121,9 @@ public class Bitstream extends DSpaceObject
// Cache ourselves
context.cache(this, row.getIntColumn("bitstream_id"));
modified = modifiedMetadata = false;
clearDetails();
}
/**
@@ -190,6 +200,8 @@ public class Bitstream extends DSpaceObject
Bitstream bitstream = find(context, bitstreamID);
bitstream.setFormat(null);
context.addEvent(new Event(Event.CREATE, Constants.BITSTREAM, bitstreamID, null));
return bitstream;
}
@@ -223,6 +235,8 @@ public class Bitstream extends DSpaceObject
Bitstream bitstream = find(context, bitstreamID);
bitstream.setFormat(null);
context.addEvent(new Event(Event.CREATE, Constants.BITSTREAM, bitstreamID, "REGISTER"));
return bitstream;
}
@@ -261,6 +275,8 @@ public class Bitstream extends DSpaceObject
public void setSequenceID(int sid)
{
bRow.setColumn("sequence_id", sid);
modifiedMetadata = true;
addDetails("SequenceID");
}
/**
@@ -283,6 +299,8 @@ public class Bitstream extends DSpaceObject
public void setName(String n)
{
bRow.setColumn("name", n);
modifiedMetadata = true;
addDetails("Name");
}
/**
@@ -306,6 +324,8 @@ public class Bitstream extends DSpaceObject
public void setSource(String n)
{
bRow.setColumn("source", n);
modifiedMetadata = true;
addDetails("Source");
}
/**
@@ -328,6 +348,8 @@ public class Bitstream extends DSpaceObject
public void setDescription(String n)
{
bRow.setColumn("description", n);
modifiedMetadata = true;
addDetails("Description");
}
/**
@@ -374,6 +396,8 @@ public class Bitstream extends DSpaceObject
// but we need to find the unknown format!
setFormat(null);
bRow.setColumn("user_format_description", desc);
modifiedMetadata = true;
addDetails("UserFormatDescription");
}
/**
@@ -451,6 +475,7 @@ public class Bitstream extends DSpaceObject
// Update the ID in the table row
bRow.setColumn("bitstream_format_id", bitstreamFormat.getID());
modified = true;
}
/**
@@ -468,6 +493,18 @@ public class Bitstream extends DSpaceObject
log.info(LogManager.getHeader(bContext, "update_bitstream",
"bitstream_id=" + getID()));
if (modified)
{
bContext.addEvent(new Event(Event.MODIFY, Constants.BITSTREAM, getID(), null));
modified = false;
}
if (modifiedMetadata)
{
bContext.addEvent(new Event(Event.MODIFY_METADATA, Constants.BITSTREAM, getID(), getDetails()));
modifiedMetadata = false;
clearDetails();
}
DatabaseManager.update(bContext, bRow);
}
@@ -490,6 +527,8 @@ public class Bitstream extends DSpaceObject
log.info(LogManager.getHeader(bContext, "delete_bitstream",
"bitstream_id=" + getID()));
bContext.addEvent(new Event(Event.DELETE, Constants.BITSTREAM, getID(), String.valueOf(getSequenceID())));
// Remove from cache
bContext.removeCached(this, getID());
@@ -541,7 +580,7 @@ public class Bitstream extends DSpaceObject
bRow.getIntColumn("bitstream_id"));
// Build a list of Bundle objects
List bundles = new ArrayList();
List<Bundle> bundles = new ArrayList<Bundle>();
while (tri.hasNext())
{