// Path: classes/ch/loway/oss/slicedbread/containers/PID.java
// public class PID {
// 
//     private static int nextPid = 0;
// 
//     private PID() {
//         // no public constructor
//         // use the static build method
//     }
// 
//     private  int pid = 0;
//     private  String descr = "";
// 
// 
//     @Override
//     public String toString() {
// 
//         StringBuilder sb = new StringBuilder();
//         sb.append( descr )
//            .append( '#' )
//            .append( pid );
// 
//         return  sb.toString();
//     }
// 
//     // gettr e setter
//     public int getPid() {
//         return pid;
//     }
// 
//     public void setPid(int pid) {
//         this.pid = pid;
//     }
// 
//     public void setDescr(String descr) {
//         this.descr = descr;
//     }
// 
//     public String getDescr() {
//         return descr;
//     }
// 
// 
// 
// 
//     /**
//      * Metodo builder.
//      * 
//      * @param myPid
//      * @return Oggetto PID
//      */
// 
//     public static PID build( int myPid, String description ) {
//         PID p = new PID();
//         p.setPid(myPid);
//         p.setDescr(description);
//         return p;
//     }
// 
//     /**
//      * Ottiene un nuovo PID unico.
//      * 
//      * @return the new PID.
//      */
// 
//     public static synchronized PID getNextPid( String description) {
// 
//         nextPid += 1;
//         return build(nextPid, description);
// 
//     }
// 
//     public static PID systemPid() {
//         return PID.build(0, "SYSTEM");
//     }
// 
//     /**
//      * \todo vedi Effective Java
//      * @param obj
//      * @return equality
//      */
// 
//     @Override
//     public boolean equals(Object obj) {
// 
//         if ( obj instanceof PID ) {
//             PID pObj = (PID) obj;
//             return ( pObj.getPid() == this.getPid() );
//         } else {
//             return false;
//         }
// 
//     }
// 
//     /**
//      * Per l'hashCode, uso il PID corrente
//      * \todo vedi Effective Java
//      *
//      * @return hashcode
//      */
// 
//     @Override
//     public int hashCode() {
//         return pid;
//     }
// 
//     // \todo Metodo Compare e Hash - vedi Effective Java
//     // \todo rendere final la classe?
// }
// 
// Path: classes/ch/loway/oss/slicedbread/messages/Msg.java
// public class Msg {
// 
//     private PID  fromPid   = null;
//     private PID  toPid     = null;
//     private long sentOn    = 0L;
//     private int  replyTo   = 0;
// 
//     // ======================================================
//     //        m e t o d i     d i     a c c e s s o
//     // ======================================================
// 
// 
//     /**
//      * @return the sender Pid
//      */
//     public PID getFromPid() {
//         return fromPid;
//     }
// 
//     /**
//      * @param fromPid the fromPid to set
//      */
//     public void setFromPid(PID fromPid) {
//         this.fromPid = fromPid;
//     }
// 
//     /**
//      * @return the toPid
//      */
//     public PID getToPid() {
//         return toPid;
//     }
// 
//     /**
//      * @param toPid the toPid to set
//      */
//     public void setToPid(PID toPid) {
//         this.toPid = toPid;
//     }
// 
//     /**
//      * @return the sentOn
//      */
//     public long getSentOn() {
//         return sentOn;
//     }
// 
//     /**
//      * @param sentOn the sentOn to set
//      */
//     public void setSentOn(long sentOn) {
//         this.sentOn = sentOn;
//     }
// 
//     /**
//      * @return the replyTo
//      */
//     public int getReplyTo() {
//         return replyTo;
//     }
// 
//     /**
//      * @param replyTo the replyTo to set
//      */
//     public void setReplyTo(int replyTo) {
//         this.replyTo = replyTo;
//     }
// 
// 
// 
//     // metodi comuni
// 
//     /**
//      * Use only for debug - the builder is pretty unefficient.
//      * 
//      * @return a serialized view.
//      */
// 
//     @Override
//     public String toString() {
//         return "F:" + fromPid
//                 + " T:" + toPid
//                 + ( replyTo > 0 ? " R: " + replyTo : "");
//     }
// 
// 
//     /**
//      * Imposta i recipients.
//      * 
//      * @param from
//      * @param to
//      */
//     public void setRecipients( PID from, PID to) {
//         setFromPid(from);
//         setToPid(to);
//     }
// 
// }
// 
// Path: classes/ch/loway/oss/slicedbread/messages/MsgError.java
// public class MsgError  extends Msg {
// 
//     private Throwable cause = null;
// 
//     public void setCause(Throwable cause) {
//         this.cause = cause;
//     }
// 
//     public Throwable getCause() {
//         return cause;
//     }
//     
// 
//     @Override
//     public String toString() {
//         return "E-" + super.toString();
//     }
// 
// }


import ch.loway.oss.slicedbread.containers.PID;
import ch.loway.oss.slicedbread.messages.Msg;
import ch.loway.oss.slicedbread.messages.MsgError;


package ch.loway.oss.slicedbread.messages.error;


/**
 * MsgErrProcessDied
 *
 *
 * @author   l3nz
 * @since    1.0.0 - Nov 1, 2011
 */
public class MsgErrUndeliverable extends MsgError {

    private Msg originalMessage = null;

    public void setOriginalMessage(Msg originalMessage) {
        this.originalMessage = originalMessage;
    }

    public Msg getOriginalMessage() {
        return originalMessage;
    }

    
// Path: classes/ch/loway/oss/slicedbread/containers/PID.java
// public class PID {
// 
//     private static int nextPid = 0;
// 
//     private PID() {
//         // no public constructor
//         // use the static build method
//     }
// 
//     private  int pid = 0;
//     private  String descr = "";
// 
// 
//     @Override
//     public String toString() {
// 
//         StringBuilder sb = new StringBuilder();
//         sb.append( descr )
//            .append( '#' )
//            .append( pid );
// 
//         return  sb.toString();
//     }
// 
//     // gettr e setter
//     public int getPid() {
//         return pid;
//     }
// 
//     public void setPid(int pid) {
//         this.pid = pid;
//     }
// 
//     public void setDescr(String descr) {
//         this.descr = descr;
//     }
// 
//     public String getDescr() {
//         return descr;
//     }
// 
// 
// 
// 
//     /**
//      * Metodo builder.
//      * 
//      * @param myPid
//      * @return Oggetto PID
//      */
// 
//     public static PID build( int myPid, String description ) {
//         PID p = new PID();
//         p.setPid(myPid);
//         p.setDescr(description);
//         return p;
//     }
// 
//     /**
//      * Ottiene un nuovo PID unico.
//      * 
//      * @return the new PID.
//      */
// 
//     public static synchronized PID getNextPid( String description) {
// 
//         nextPid += 1;
//         return build(nextPid, description);
// 
//     }
// 
//     public static PID systemPid() {
//         return PID.build(0, "SYSTEM");
//     }
// 
//     /**
//      * \todo vedi Effective Java
//      * @param obj
//      * @return equality
//      */
// 
//     @Override
//     public boolean equals(Object obj) {
// 
//         if ( obj instanceof PID ) {
//             PID pObj = (PID) obj;
//             return ( pObj.getPid() == this.getPid() );
//         } else {
//             return false;
//         }
// 
//     }
// 
//     /**
//      * Per l'hashCode, uso il PID corrente
//      * \todo vedi Effective Java
//      *
//      * @return hashcode
//      */
// 
//     @Override
//     public int hashCode() {
//         return pid;
//     }
// 
//     // \todo Metodo Compare e Hash - vedi Effective Java
//     // \todo rendere final la classe?
// }
// 
// Path: classes/ch/loway/oss/slicedbread/messages/Msg.java
// public class Msg {
// 
//     private PID  fromPid   = null;
//     private PID  toPid     = null;
//     private long sentOn    = 0L;
//     private int  replyTo   = 0;
// 
//     // ======================================================
//     //        m e t o d i     d i     a c c e s s o
//     // ======================================================
// 
// 
//     /**
//      * @return the sender Pid
//      */
//     public PID getFromPid() {
//         return fromPid;
//     }
// 
//     /**
//      * @param fromPid the fromPid to set
//      */
//     public void setFromPid(PID fromPid) {
//         this.fromPid = fromPid;
//     }
// 
//     /**
//      * @return the toPid
//      */
//     public PID getToPid() {
//         return toPid;
//     }
// 
//     /**
//      * @param toPid the toPid to set
//      */
//     public void setToPid(PID toPid) {
//         this.toPid = toPid;
//     }
// 
//     /**
//      * @return the sentOn
//      */
//     public long getSentOn() {
//         return sentOn;
//     }
// 
//     /**
//      * @param sentOn the sentOn to set
//      */
//     public void setSentOn(long sentOn) {
//         this.sentOn = sentOn;
//     }
// 
//     /**
//      * @return the replyTo
//      */
//     public int getReplyTo() {
//         return replyTo;
//     }
// 
//     /**
//      * @param replyTo the replyTo to set
//      */
//     public void setReplyTo(int replyTo) {
//         this.replyTo = replyTo;
//     }
// 
// 
// 
//     // metodi comuni
// 
//     /**
//      * Use only for debug - the builder is pretty unefficient.
//      * 
//      * @return a serialized view.
//      */
// 
//     @Override
//     public String toString() {
//         return "F:" + fromPid
//                 + " T:" + toPid
//                 + ( replyTo > 0 ? " R: " + replyTo : "");
//     }
// 
// 
//     /**
//      * Imposta i recipients.
//      * 
//      * @param from
//      * @param to
//      */
//     public void setRecipients( PID from, PID to) {
//         setFromPid(from);
//         setToPid(to);
//     }
// 
// }
// 
// Path: classes/ch/loway/oss/slicedbread/messages/MsgError.java
// public class MsgError  extends Msg {
// 
//     private Throwable cause = null;
// 
//     public void setCause(Throwable cause) {
//         this.cause = cause;
//     }
// 
//     public Throwable getCause() {
//         return cause;
//     }
//     
// 
//     @Override
//     public String toString() {
//         return "E-" + super.toString();
//     }
// 
// }


// Path: classes/ch/loway/oss/slicedbread/messages/error/MsgErrUndeliverable.java
import ch.loway.oss.slicedbread.containers.PID;
import ch.loway.oss.slicedbread.messages.Msg;
import ch.loway.oss.slicedbread.messages.MsgError;



package ch.loway.oss.slicedbread.messages.error;


/**
 * MsgErrProcessDied
 *
 *
 * @author   l3nz
 * @since    1.0.0 - Nov 1, 2011
 */
public class MsgErrUndeliverable extends MsgError {

    private Msg originalMessage = null;

    public void setOriginalMessage(Msg originalMessage) {
        this.originalMessage = originalMessage;
    }

    public Msg getOriginalMessage() {
        return originalMessage;
    }

    
    @Override