/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.mail; import java.util.Date; import java.util.Set; import org.apache.commons.lang.StringUtils; import com.enonic.cms.core.AdminConsoleTranslationService; import com.enonic.cms.core.content.ContentEntity; import com.enonic.cms.core.content.ContentKey; import com.enonic.cms.core.mail.AbstractMailTemplate; import com.enonic.cms.core.security.user.UserEntity; import com.enonic.cms.store.dao.ContentDao; /** * Created by IntelliJ IDEA. * User: rmh * Date: Oct 26, 2010 * Time: 12:38:34 PM */ public class ImportedContentAssignmentMailTemplate extends AbstractMailTemplate { private Set<ContentKey> importedContent; private ContentDao contentDao; private String assignmentDescription; private Date assignmentDueDate; private UserEntity assigner; public ImportedContentAssignmentMailTemplate( Set<ContentKey> importedContent, ContentDao contentDao ) { this.importedContent = importedContent; this.contentDao = contentDao; } @Override public String getBody() { final String languageCode = AdminConsoleTranslationService.getInstance().getDefaultLanguageCode(); StringBuffer body = new StringBuffer(); applyAssignmentInfo( languageCode, body ); addNewLine( body ); addNewLine( body ); appendContentListHeading( languageCode, body ); addNewLine( body ); appendContentList( body ); return body.toString(); } private void appendContentList( StringBuffer body ) { for ( ContentKey contentKey : importedContent ) { ContentEntity content = contentDao.findByKey( contentKey ); addNewLine( body ); body.append( content.getCategory().getPathAsString() + "/" ); body.append( content.getMainVersion().getTitle() ); body.append( " (" + content.getKey() + ")" ); } } private void applyAssignmentInfo( String languageCode, StringBuffer body ) { if ( StringUtils.isNotBlank( assignmentDescription ) ) { body.append( assignmentDescription ); } if ( assigner != null ) { addNewLine( body ); body.append( " - " ); body.append( createUserName( assigner ) ); } if ( assignmentDueDate != null ) { addNewLine( body ); final String date = DATE_FORMAT.print( assignmentDueDate.getTime() ); body.append( getTranslation( "%contentAssignmentDuedate%", languageCode ) + ": " + date ); } } private void appendContentListHeading( String languageCode, StringBuffer body ) { String contentListHeading = getTranslation( "%contentAssignmentImportedContentHeading%", languageCode ); int contentListMsgLength = contentListHeading.length(); body.append( contentListHeading ); addNewLine( body ); body.append( StringUtils.rightPad( "", contentListMsgLength, '-' ) ); } @Override public String getSubject() { return getTranslation( "%contentAssignmentImportedContentSubject%", AdminConsoleTranslationService.getInstance().getDefaultLanguageCode() ); } public void setAssignmentDescription( String assignmentDescription ) { this.assignmentDescription = assignmentDescription; } public void setAssignmentDueDate( Date assignmentDueDate ) { this.assignmentDueDate = assignmentDueDate; } public void setAssigner( UserEntity assigner ) { this.assigner = assigner; } public String getAssignmentDescription() { return assignmentDescription; } public Date getAssignmentDueDate() { return assignmentDueDate; } public UserEntity getAssigner() { return assigner; } }