Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id: DefaultEnvelope.java 22 2009-05-18 17:20:44Z mitcje $
   * $URL: https://ikasaneip.svn.sourceforge.net/svnroot/ikasaneip/tags/ikasan-0.7.3/common/src/main/java/org/ikasan/common/component/DefaultEnvelope.java $
   * 
   * ====================================================================
   * Ikasan Enterprise Integration Platform
   * Copyright (c) 2003-2008 Mizuho International plc and individual contributors as indicated
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software 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.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the 
  * Free Software Foundation Europe e.V. Talstrasse 110, 40217 Dusseldorf, Germany 
  * or see the FSF site: http://www.fsfeurope.org/.
  * ====================================================================
  */
 package org.ikasan.common.component;
 
 import java.util.List;
 
 
Default implementation of the Envelope interface.

Author(s):
Ikasan Development Team
 
 public class DefaultEnvelope extends MetaData implements Envelope
 {
    
Serialise ID
 
     private static final long serialVersionUID = 1L;

    
The logger instance
 
     private static Logger logger = Logger.getLogger(DefaultEnvelope.class);

    
Payloads transported within this envelope
 
     private List<Payloadpayloads;

    
Make sure the default constructor cannot be invoked
 
     @SuppressWarnings("unused")
     private DefaultEnvelope()
     {
         // empty
     }

    
Creates a new instance of Payload with the specified data content.

Parameters:
payload The payload to use
 
     public DefaultEnvelope(final Payload payload)
     {
         if (payload == null)
         {
             throw new CommonRuntimeException("Envelope constructor called with " //$NON-NLS-1$
                     + "null Payload.".); //$NON-NLS-1$
         }
         // Specific to the envelope
         this. = null;
         // Create a list of payloads for the payloads setter
         List<PayloadpayloadList = new ArrayList<Payload>();
         payloadList.add(payload);
         // Setting the payloads also updates the envelope header
         // Primary Payload populated fields
         this.setPayloads(payloadList);
         // These values are _not_ already set by the setPayloads call above
         this. = new Long(payload.toString().length());
         this. = null;
         this. = ..toString();
         this. = null;
         this. = Charset.defaultCharset().toString();
         this. = ;
         this. = this.calculateChecksum();
         this. = null;
         .debug("Envelope constructor created envelope."); //$NON-NLS-1$
     }

    
Creates a new instance of DefaultEnvelope with the existing payloads.

Parameters:
payloads List of payloads to use
Throws:
java.lang.InstantiationException Exception if we could not create envelope
    public DefaultEnvelope(final List<Payloadpayloadsthrows InstantiationException
    {
        if (payloads.size() == 0)
        {
            throw new InstantiationException("Envelope constructor called with " //$NON-NLS-1$
                    + "an empty payload list."); //$NON-NLS-1$
        }
        // specific to the envelope
        this. = null;
        // setting the payloads also updates the envelope header
        // Primary Payload populated fields
        this.setPayloads(payloads);
        for (Payload pl : payloads)
        {
            this. = this. + (pl.toString().length());
        }
        // These values are _not_ already set by the setPayloads call above
        this. = null;
        this. = ..toString();
        this. = null;
        this. = Charset.defaultCharset().toString();
        this. = ;
        this. = this.calculateChecksum();
        this. = null;
        .debug("Envelope constructor created envelope."); //$NON-NLS-1$
    }

    
Getter for Payloads

Returns:
Payload List
    public List<PayloadgetPayloads()
    {
        .debug("Returning Envelope payloads."); //$NON-NLS-1$
        return this.;
    }

    
Setter for Payloads This setter will also update the Primary Payload populated fields on the Envelope header.

Parameters:
payloads list of payloads to set
    public void setPayloads(List<Payloadpayloads)
    {
        // Check that payloads currently in the envelope are present in some form...
        // create new payloads list OR remove any existing payload entries
        if (this. == null || this..size() == 0)
        {
            this. = new ArrayList<Payload>();
        }
        else
        {
            this..clear();
        }
        // Check that payloads parameter to this method present in some form...
        // if the incoming payloads are null or empty then
        // clear down the current payload list and warn that the meta-data on
        // the envelope has not been updated.
        if (payloads == null || payloads.size() == 0)
        {
            this. = new ArrayList<Payload>();
            
                .warn("Setting empty 'Payloads' on the envelope. Envelope meta-data cannot be updated as the is no primary payload. Returning envelope meta-data unchanged.");
            return;
        }
        // else add the new ones
        this..addAll(payloads);
        // update the envelope header for the possibly changed primary payload
        this. = this..get().getId();
        this.setTimezone(this..get().getTimezone());
        this. = this..get().getTimestamp();
        this. = this..get().getPriority();
        this. = this..get().getName();
        this. = this..get().getSrcSystem();
        this. = this..get().getProcessIds();
        .debug("Setting Envelope payloads."); //$NON-NLS-1$
    }

    
Test equality of two envelope instances based on the lifetime identifier. Only the identifiers are compared as the payload content and associated attributes can change over the life of the payload, however, the originally assigned id never changes.

Parameters:
envelope Envelope to check against
Returns:
true if we can convert, else false
    public boolean equals(Envelope envelope)
    {
        if (this..equals(envelope.getId()))
        {
            return true;
        }
        return false;
    }
    /*
     * (non-Javadoc)
     * 
     * @see org.ikasan.common.component.MetaData#calculateChecksum()
     */
    @Override
    protected String calculateChecksum()
    {
        return null;
    }
    /*
     * (non-Javadoc)
     * 
     * @see org.ikasan.common.component.MetaData#idToString()
     */
    @Override
    public String idToString()
    {
        return "Envelope Id[" + this.getId() + "] "//$NON-NLS-1$ //$NON-NLS-2$
    }
    /*
     * (non-Javadoc)
     * 
     * @see org.ikasan.common.component.MetaData#setSize()
     */
    @Override
    public void setSize()
    {
        this. = 0L;
        .debug("Size set to [" + this. + "]. To be Implemented"); //$NON-NLS-1$//$NON-NLS-2$
    }
New to GrepCode? Check out our FAQ X