Package org.pentaho.reporting.libraries.repository.email

Source Code of org.pentaho.reporting.libraries.repository.email.EmailRepository

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.reporting.libraries.repository.email;

import java.io.OutputStream;
import java.io.IOException;

import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.Session;
import javax.mail.MessagingException;

import org.pentaho.reporting.libraries.repository.ContentIOException;
import org.pentaho.reporting.libraries.repository.ContentLocation;
import org.pentaho.reporting.libraries.repository.DefaultMimeRegistry;
import org.pentaho.reporting.libraries.repository.MimeRegistry;
import org.pentaho.reporting.libraries.repository.Repository;

/**
* Creation-Date: 17.09.2008, 15:00:00
*
* @author Pedro Alves - WebDetails
*/
public class EmailRepository implements Repository
{

  private MimeRegistry mimeRegistry;
  private EmailContentLocation root;
  private MimeMessage htmlEmail;
  private boolean treatHtmlContentAsBody;
  private MimeMultipart multipart;
  private MimeBodyPart bodypart;

  public EmailRepository(final MimeRegistry mimeRegistry,
                         final Session mailSession) throws ContentIOException, MessagingException
  {
    if (mimeRegistry == null)
    {
      throw new NullPointerException();
    }

    this.mimeRegistry = mimeRegistry;
    this.root = new EmailContentLocation(this, null, "");
    this.htmlEmail = new MimeMessage(mailSession);
    this.bodypart = new MimeBodyPart();
    this.multipart = new MimeMultipart("related");
    this.multipart.addBodyPart(bodypart);
    this.htmlEmail.setContent(multipart);
    this.treatHtmlContentAsBody = true;
  }

  public EmailRepository(final MimeMessage htmlEmail, final MimeRegistry mimeRegistry)
      throws ContentIOException, IOException, MessagingException
  {
    if (htmlEmail == null)
    {
      throw new NullPointerException();
    }
    if (mimeRegistry == null)
    {
      throw new NullPointerException();
    }
    this.htmlEmail = htmlEmail;

    final Object content = this.htmlEmail.getContent();
    if (content instanceof MimeMultipart == false)
    {
      this.multipart = new MimeMultipart("related");
    }
    else
    {
      this.multipart = (MimeMultipart) content;
    }
    this.treatHtmlContentAsBody = true;
    this.mimeRegistry = mimeRegistry;
    this.root = new EmailContentLocation(this, null, "");

  }

  public EmailRepository(final MimeMessage htmlEmail)
      throws ContentIOException, IOException, MessagingException
  {
    this(htmlEmail, new DefaultMimeRegistry());
  }

  public EmailRepository(final Session session) throws ContentIOException, MessagingException
  {
    this(new DefaultMimeRegistry(), session);
  }

  public ContentLocation getRoot() throws ContentIOException
  {
    return root;
  }

  public MimeRegistry getMimeRegistry()
  {
    return mimeRegistry;
  }

  public void writeEmail(final OutputStream out) throws ContentIOException
  {
    try
    {
      htmlEmail.writeTo(out);
    }
    catch (Exception ex)
    {
      throw new ContentIOException(ex.getMessage(), ex);
    }

  }

  public MimeMessage getEmail()
  {
    return htmlEmail;
  }

  public MimeMultipart getMultipart()
  {
    return multipart;
  }

  public boolean isTreatHtmlContentAsBody()
  {
    return treatHtmlContentAsBody;
  }

  public void setTreatHtmlContentAsBody(final boolean treatHtmlContentAsBody)
  {
    this.treatHtmlContentAsBody = treatHtmlContentAsBody;
  }

  public MimeBodyPart getBodypart()
  {
    return bodypart;
  }
}
TOP

Related Classes of org.pentaho.reporting.libraries.repository.email.EmailRepository

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.