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 
     

    Nested classes/interfaces inherited from class org.springframework.extensions.webscripts.AbstractWebScript

    org.springframework.extensions.webscripts.AbstractWebScript.ScriptDetails
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.alfresco.service.cmr.dictionary.DictionaryService
     
    protected String
     
    static final String
     
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract boolean
    If the format is requested as HTML, should an exception be raised, or should an HTML version be called?
    protected abstract List<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
    protected 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.CSVFormat
    Get the CSVFormat.
    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
    setCsvFormat(org.apache.commons.csv.CSVFormat csvFormat)
    Set the CSVFormat
    void
    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • DeclarativeSpreadsheetWebScript

      public DeclarativeSpreadsheetWebScript()
  • Method Details

    • 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<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
    • setCsvFormat

      public void setCsvFormat(org.apache.commons.csv.CSVFormat csvFormat)
      Set the CSVFormat
      Parameters:
      csvFormat - CSVFormat
    • getCsvFormat

      public org.apache.commons.csv.CSVFormat getCsvFormat()
      Get the CSVFormat. Returns CSVFormat.EXCEL if none was set.
      Returns:
      CSVFormat
    • executeImpl

      protected Map<String,Object> executeImpl(org.springframework.extensions.webscripts.WebScriptRequest req, org.springframework.extensions.webscripts.Status status)
      Overrides:
      executeImpl in class org.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 class org.springframework.extensions.webscripts.AbstractWebScript