Class ReportGenerator
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.apache.cocoon.xml.AbstractXMLProducer
-
- org.apache.cocoon.generation.AbstractGenerator
-
- org.apache.cocoon.generation.ServiceableGenerator
-
- org.ametys.plugins.workspaces.report.ReportGenerator
-
- All Implemented Interfaces:
Poolable
,Recyclable
,Disposable
,Component
,Contextualizable
,LogEnabled
,Serviceable
,Generator
,SitemapModelComponent
,XMLProducer
public class ReportGenerator extends ServiceableGenerator implements Contextualizable
Report projects with theirs managers/users
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ReportGenerator.ProjectMember
-
Field Summary
Fields Modifier and Type Field Description protected static SimpleDateFormat
__DATE_FORMATER
DateTime formatterprotected static String
__DATE_TIME_FORMAT
Time format for csv exportprotected static int
__REPORT_COLUMNS_SIZE_MEMBER
number of columns for a memberprotected static int
__REPORT_COLUMNS_SIZE_PROJECT
number of columns for a projectprotected static DateTimeFormatter
__ZONED_DATE_FORMATER
Zoned dateTime formatterprotected Context
_context
Avalon contextprotected GroupManager
_groupManager
Group Managerprotected I18nUtils
_i18nUtils
I18n Utilsprotected KeywordsDAO
_keywordsDAO
The keywords DAOprotected ProjectManager
_projectManager
The project managerprotected ProjectMemberManager
_projectMemberManager
Project Member Managerprotected ReportHelper
_reportProjectManager
Report Project Managerprotected Repository
_repository
Repositoryprotected SiteManager
_siteManager
Site managerprotected UserDirectoryHelper
_userDirectoryHelper
User Directory Helperprotected UserManager
_userManager
User Manager-
Fields inherited from class org.apache.cocoon.generation.ServiceableGenerator
manager
-
Fields inherited from class org.apache.cocoon.generation.AbstractGenerator
objectModel, parameters, resolver, source
-
Fields inherited from class org.apache.cocoon.xml.AbstractXMLProducer
contentHandler, EMPTY_CONTENT_HANDLER, lexicalHandler, xmlConsumer
-
-
Constructor Summary
Constructors Constructor Description ReportGenerator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
contextualize(Context context)
protected ReportGenerator.ProjectMember
createProjectMemberFromUser(UserIdentity userIdentity, String lang, List<String> projectLanguages)
Get aReportGenerator.ProjectMember
from a userprotected static String
formatToCsv(String... line)
Format a String to csvvoid
generate()
protected String
generateProjects(List<Project> projects, boolean reportWithMembers, boolean reportWithManagers, String lang)
Generate the list of projectsprotected List<String>
getCatalogSiteLangages()
Get the languages of the catalog siteprotected String
getKeywords(Project project, String lang)
Get the project's keywordsprivate String
getMemberCsvHeader(String lang)
protected String
getProjectCsvHeader(boolean reportWithMembers, boolean reportWithManagers, String lang)
Generate the header for projectsprotected String
getProjectLastActivityDate(Project project)
Get the last activity date of the projectprotected List<String>
getProjectMembersCsv(Project project, String lang, List<String> languages)
Get the csv for membersprivate String
projectToCsv(Project project, boolean reportWithMembers, boolean reportWithManagers, String lang, List<String> langages)
void
service(ServiceManager smanager)
protected String
translateKey(String key, String lang)
Small shortcut to translate a key-
Methods inherited from class org.apache.cocoon.generation.ServiceableGenerator
dispose
-
Methods inherited from class org.apache.cocoon.generation.AbstractGenerator
recycle, setup
-
Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer
setConsumer, setContentHandler, setLexicalHandler
-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cocoon.xml.XMLProducer
setConsumer
-
-
-
-
Field Detail
-
__DATE_TIME_FORMAT
protected static final String __DATE_TIME_FORMAT
Time format for csv export- See Also:
- Constant Field Values
-
__ZONED_DATE_FORMATER
protected static final DateTimeFormatter __ZONED_DATE_FORMATER
Zoned dateTime formatter
-
__DATE_FORMATER
protected static final SimpleDateFormat __DATE_FORMATER
DateTime formatter
-
__REPORT_COLUMNS_SIZE_PROJECT
protected static final int __REPORT_COLUMNS_SIZE_PROJECT
number of columns for a project- See Also:
- Constant Field Values
-
__REPORT_COLUMNS_SIZE_MEMBER
protected static final int __REPORT_COLUMNS_SIZE_MEMBER
number of columns for a member- See Also:
- Constant Field Values
-
_reportProjectManager
protected ReportHelper _reportProjectManager
Report Project Manager
-
_projectManager
protected ProjectManager _projectManager
The project manager
-
_siteManager
protected SiteManager _siteManager
Site manager
-
_repository
protected Repository _repository
Repository
-
_userManager
protected UserManager _userManager
User Manager
-
_groupManager
protected GroupManager _groupManager
Group Manager
-
_projectMemberManager
protected ProjectMemberManager _projectMemberManager
Project Member Manager
-
_userDirectoryHelper
protected UserDirectoryHelper _userDirectoryHelper
User Directory Helper
-
_i18nUtils
protected I18nUtils _i18nUtils
I18n Utils
-
_keywordsDAO
protected KeywordsDAO _keywordsDAO
The keywords DAO
-
-
Constructor Detail
-
ReportGenerator
public ReportGenerator()
-
-
Method Detail
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
service
public void service(ServiceManager smanager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classServiceableGenerator
- Throws:
ServiceException
-
generate
public void generate() throws IOException, SAXException, ProcessingException
- Specified by:
generate
in interfaceGenerator
- Throws:
IOException
SAXException
ProcessingException
-
generateProjects
protected String generateProjects(List<Project> projects, boolean reportWithMembers, boolean reportWithManagers, String lang)
Generate the list of projects- Parameters:
projects
- list of projects to generatereportWithMembers
- also report membersreportWithManagers
- also report managerslang
- language used to parse agents (if not available, another langage will still be used)- Returns:
- A String that will represent the csv
-
getCatalogSiteLangages
protected List<String> getCatalogSiteLangages()
Get the languages of the catalog site- Returns:
- the list of catalog site languages
-
formatToCsv
protected static String formatToCsv(String... line)
Format a String to csv- Parameters:
line
- strings to transform- Returns:
- a string representing the input strings
-
getProjectCsvHeader
protected String getProjectCsvHeader(boolean reportWithMembers, boolean reportWithManagers, String lang)
Generate the header for projects- Parameters:
reportWithMembers
- also report membersreportWithManagers
- also report managerslang
- language to use to create header- Returns:
- a String representing the csv header
-
getMemberCsvHeader
private String getMemberCsvHeader(String lang)
-
projectToCsv
private String projectToCsv(Project project, boolean reportWithMembers, boolean reportWithManagers, String lang, List<String> langages)
-
getKeywords
protected String getKeywords(Project project, String lang)
Get the project's keywords- Parameters:
project
- the projectlang
- the current language- Returns:
- the keywords as label
-
getProjectLastActivityDate
protected String getProjectLastActivityDate(Project project)
Get the last activity date of the project- Parameters:
project
- project to analyze- Returns:
- a formatted date
-
createProjectMemberFromUser
protected ReportGenerator.ProjectMember createProjectMemberFromUser(UserIdentity userIdentity, String lang, List<String> projectLanguages)
Get aReportGenerator.ProjectMember
from a user- Parameters:
userIdentity
- userlang
- language to use to parse userprojectLanguages
- languages of the catalog site- Returns:
- the user as a
ReportGenerator.ProjectMember
-
getProjectMembersCsv
protected List<String> getProjectMembersCsv(Project project, String lang, List<String> languages)
Get the csv for members- Parameters:
project
- project to uselang
- language to use to parse userlanguages
- languages of the catalog site- Returns:
- users as csv
-
translateKey
protected String translateKey(String key, String lang)
Small shortcut to translate a key- Parameters:
key
- i18n keylang
- requested language- Returns:
- the translated key
-
-