Package org.dspace.app.bulkedit
Class DSpaceCSV
- java.lang.Object
-
- org.dspace.app.bulkedit.DSpaceCSV
-
- All Implemented Interfaces:
Serializable
public class DSpaceCSV extends Object implements Serializable
Utility class to read and write CSV files ************** Important Note ************** This class has been made serializable, as it is stored in a Session. Is it wise to: a) be putting this into a user's session? b) holding an entire CSV upload in memory?- Author:
- Stuart Lewis
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected StringauthoritySeparatorThe authority separator (defaults to double colon '::')protected AuthorityValueServiceauthorityValueServiceprotected intcounterA counter of how many CSV lines this object holdsprotected StringescapedAuthoritySeparatorThe authority separator in an escaped form for using in regexesprotected StringescapedFieldSeparatorThe field separator in an escaped form for using in regexesprotected StringescapedValueSeparatorThe value separator in an escaped form for using in regexesprotected booleanexportAllWhether to export all metadata such as handles and provenance informationprotected StringfieldSeparatorThe field separator (defaults to comma)protected List<String>headingsThe headings of the CSV fileprotected Map<String,String>ignoreA list of metadata elements to ignoreprotected ItemServiceitemServiceprotected List<DSpaceCSVLine>linesAn array list of CSV linesprotected MetadataFieldServicemetadataFieldServiceprotected MetadataSchemaServicemetadataSchemaServiceprotected StringvalueSeparatorThe value separator (defaults to double pipe '||')
-
Constructor Summary
Constructors Constructor Description DSpaceCSV(boolean exportAll)Create a new instance of a CSV line holderDSpaceCSV(InputStream inputStream, Context c)Create a new instance, reading the lines in from file
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddItem(String line)Add an item to the CSV file, from a CSV line of elementsvoidaddItem(Item i)Add a DSpace item to the CSV fileStringgetAuthoritySeparator()List<DSpaceCSVLine>getCSVLines()Get the lines in CSV holdersString[]getCSVLinesAsStringArray()Get the CSV lines as an array of CSV formatted stringsStringgetEscapedAuthoritySeparator()List<String>getHeadings()Get the headings used in this CSV fileInputStreamgetInputStream()Creates and returns an InputStream from the CSV Lines in this DSpaceCSVbooleanhasActions()Decide if this CSV file has an 'action' (case-dependent!) header.protected voidinit()Initialise this class with values from dspace.cfgprotected booleanokToExport(MetadataField md)Is it okay to export this value? When exportAll is set to false, we don't export some of the metadata elements.StringtoString()Return the csv file as one long formatted string
-
-
-
Field Detail
-
lines
protected List<DSpaceCSVLine> lines
An array list of CSV lines
-
counter
protected int counter
A counter of how many CSV lines this object holds
-
valueSeparator
protected String valueSeparator
The value separator (defaults to double pipe '||')
-
escapedValueSeparator
protected String escapedValueSeparator
The value separator in an escaped form for using in regexes
-
fieldSeparator
protected String fieldSeparator
The field separator (defaults to comma)
-
escapedFieldSeparator
protected String escapedFieldSeparator
The field separator in an escaped form for using in regexes
-
authoritySeparator
protected String authoritySeparator
The authority separator (defaults to double colon '::')
-
escapedAuthoritySeparator
protected String escapedAuthoritySeparator
The authority separator in an escaped form for using in regexes
-
itemService
protected final transient ItemService itemService
-
metadataSchemaService
protected final transient MetadataSchemaService metadataSchemaService
-
metadataFieldService
protected final transient MetadataFieldService metadataFieldService
-
authorityValueService
protected final transient AuthorityValueService authorityValueService
-
exportAll
protected boolean exportAll
Whether to export all metadata such as handles and provenance information
-
-
Constructor Detail
-
DSpaceCSV
public DSpaceCSV(boolean exportAll)
Create a new instance of a CSV line holder- Parameters:
exportAll- Whether to export all metadata such as handles and provenance information
-
DSpaceCSV
public DSpaceCSV(InputStream inputStream, Context c) throws Exception
Create a new instance, reading the lines in from file- Parameters:
inputStream- the input stream to read fromc- The DSpace Context- Throws:
Exception- thrown if there is an error reading or processing the file
-
-
Method Detail
-
init
protected void init()
Initialise this class with values from dspace.cfg
-
hasActions
public boolean hasActions()
Decide if this CSV file has an 'action' (case-dependent!) header.- Returns:
- Whether or not there is an 'action' header
-
addItem
public final void addItem(Item i) throws Exception
Add a DSpace item to the CSV file- Parameters:
i- The DSpace item- Throws:
Exception- if something goes wrong with adding the Item
-
addItem
public final void addItem(String line) throws Exception
Add an item to the CSV file, from a CSV line of elements- Parameters:
line- The line of elements- Throws:
Exception- Thrown if an error occurs when adding the item
-
getCSVLines
public final List<DSpaceCSVLine> getCSVLines()
Get the lines in CSV holders- Returns:
- The lines
-
getCSVLinesAsStringArray
public final String[] getCSVLinesAsStringArray()
Get the CSV lines as an array of CSV formatted strings- Returns:
- the array of CSV formatted Strings
-
getInputStream
public InputStream getInputStream()
Creates and returns an InputStream from the CSV Lines in this DSpaceCSV- Returns:
- The InputStream created from the CSVLines in this DSpaceCSV
-
okToExport
protected boolean okToExport(MetadataField md)
Is it okay to export this value? When exportAll is set to false, we don't export some of the metadata elements. The list can be configured via the key ignore-on-export inbulkedit.cfg.- Parameters:
md- The MetadataField to examine- Returns:
- Whether or not it is OK to export this element
-
getHeadings
public List<String> getHeadings()
Get the headings used in this CSV file- Returns:
- The headings
-
toString
public final String toString()
Return the csv file as one long formatted string
-
getAuthoritySeparator
public String getAuthoritySeparator()
-
getEscapedAuthoritySeparator
public String getEscapedAuthoritySeparator()
-
-