Package org.alfresco.repo.web.scripts
Class DeclarativeSpreadsheetWebScript
- java.lang.Object
-
- org.springframework.extensions.webscripts.AbstractWebScript
-
- org.springframework.extensions.webscripts.DeclarativeWebScript
-
- org.alfresco.repo.web.scripts.DeclarativeSpreadsheetWebScript
-
- All Implemented Interfaces:
org.springframework.extensions.webscripts.WebScript
- Direct Known Subclasses:
UserCSVUploadGet
public abstract class DeclarativeSpreadsheetWebScript extends org.springframework.extensions.webscripts.DeclarativeWebScript
Parent of Declarative Webscripts that generate Excel files, usually based on some sort of dictionary model.- Author:
- Nick Burch
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DeclarativeSpreadsheetWebScript.WriteExcel
-
Field Summary
Fields Modifier and Type Field Description protected org.alfresco.service.cmr.dictionary.DictionaryService
dictionaryService
protected String
filenameBase
static String
MODEL_CSV
static String
MODEL_EXCEL
static String
PARAM_REQ_DELIMITER
-
Constructor Summary
Constructors Constructor Description DeclarativeSpreadsheetWebScript()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract boolean
allowHtmlFallback()
If the format is requested as HTML, should an exception be raised, or should an HTML version be called?protected abstract List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,Boolean>>
buildPropertiesForHeader(Object resource, String format, org.springframework.extensions.webscripts.WebScriptRequest req)
Returns the QNames of the model properties to be output in the header, and if they're required or notprotected Map<String,Object>
createTemplateParameters(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.WebScriptResponse res, Map<String,Object> customParams)
protected Map<String,Object>
executeImpl(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.Status status)
void
generateSpreadsheet(Object resource, String format, org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.Status status, Map<String,Object> model)
Generates the spreadsheet, based on the properties in the header and a callback for the body.org.apache.commons.csv.CSVStrategy
getCsvStrategy()
Get the CSVStrategy.protected abstract Object
identifyResource(String format, org.springframework.extensions.webscripts.WebScriptRequest req)
Identifies the resource for the webscript.protected abstract void
populateBody(Object resource, org.apache.commons.csv.CSVPrinter csv, List<org.alfresco.service.namespace.QName> properties)
Populates the body of the CSV file, once the header has been output.protected abstract void
populateBody(Object resource, org.apache.poi.ss.usermodel.Workbook workbook, org.apache.poi.ss.usermodel.Sheet sheet, List<org.alfresco.service.namespace.QName> properties)
Populates the body of the Excel Workbook, once the header has been output.void
setCsvStrategy(org.apache.commons.csv.CSVStrategy csvStrategy)
Set the CSVStrategyvoid
setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
-
Methods inherited from class org.springframework.extensions.webscripts.DeclarativeWebScript
execute, executeFinallyImpl, executeImpl, executeImpl, getTemplateModel, renderFormatTemplate
-
Methods inherited from class org.springframework.extensions.webscripts.AbstractWebScript
addModuleBundleToCache, checkModuleBundleCache, createArgs, createArgsM, createHeaders, createHeadersM, createScriptParameters, createStatusException, executeScript, getContainer, getDescription, getExecuteScript, getResources, getStatusTemplate, init, renderString, renderString, renderTemplate, sendStatus, setURLModelFactory, toString
-
-
-
-
Field Detail
-
MODEL_CSV
public static final String MODEL_CSV
- See Also:
- Constant Field Values
-
MODEL_EXCEL
public static final String MODEL_EXCEL
- See Also:
- Constant Field Values
-
PARAM_REQ_DELIMITER
public static final String PARAM_REQ_DELIMITER
- See Also:
- Constant Field Values
-
dictionaryService
protected org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService
-
filenameBase
protected String filenameBase
-
-
Method Detail
-
setDictionaryService
public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
- Parameters:
dictionaryService
- the DictionaryService to set
-
identifyResource
protected abstract Object identifyResource(String format, org.springframework.extensions.webscripts.WebScriptRequest req)
Identifies the resource for the webscript.
-
allowHtmlFallback
protected abstract boolean allowHtmlFallback()
If the format is requested as HTML, should an exception be raised, or should an HTML version be called?
-
buildPropertiesForHeader
protected abstract List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,Boolean>> buildPropertiesForHeader(Object resource, String format, org.springframework.extensions.webscripts.WebScriptRequest req)
Returns the QNames of the model properties to be output in the header, and if they're required or not
-
populateBody
protected abstract void populateBody(Object resource, org.apache.poi.ss.usermodel.Workbook workbook, org.apache.poi.ss.usermodel.Sheet sheet, List<org.alfresco.service.namespace.QName> properties) throws IOException
Populates the body of the Excel Workbook, once the header has been output. This is called if the format is .xls or .xlsx- Throws:
IOException
-
populateBody
protected abstract void populateBody(Object resource, org.apache.commons.csv.CSVPrinter csv, List<org.alfresco.service.namespace.QName> properties) throws IOException
Populates the body of the CSV file, once the header has been output. This is called if the format is .csv- Throws:
IOException
-
setCsvStrategy
public void setCsvStrategy(org.apache.commons.csv.CSVStrategy csvStrategy)
Set the CSVStrategy- Parameters:
csvStrategy
- CSVStrategy
-
getCsvStrategy
public org.apache.commons.csv.CSVStrategy getCsvStrategy()
Get the CSVStrategy. ReturnsCSVStrategy.EXCEL_STRATEGY
if none was set.- Returns:
- CSVStrategy
-
executeImpl
protected Map<String,Object> executeImpl(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.Status status)
- Overrides:
executeImpl
in classorg.springframework.extensions.webscripts.DeclarativeWebScript
- See Also:
DeclarativeWebScript.executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, org.springframework.extensions.webscripts.Status)
-
generateSpreadsheet
public void generateSpreadsheet(Object resource, String format, org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.Status status, Map<String,Object> model) throws IOException
Generates the spreadsheet, based on the properties in the header and a callback for the body.- Throws:
IOException
-
createTemplateParameters
protected Map<String,Object> createTemplateParameters(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.WebScriptResponse res, Map<String,Object> customParams)
- Overrides:
createTemplateParameters
in classorg.springframework.extensions.webscripts.AbstractWebScript
-
-