home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / InvalidPersistentAttributeException.java < prev    next >
Text File  |  1998-10-25  |  2KB  |  65 lines

  1. /*
  2.  * Copyright 1998 Symantec Corporation, All Rights Reserved.
  3.  */
  4.  
  5. package com.symantec.itools.vcafe.openapi;
  6.  
  7. /**
  8.  * Indicates the setting or getting of persistent <code>Attributes</code> which can't be properly streamed
  9.  * in or out. This can happen if the attribute doesn't properly implement java.io.Serializable, for example.
  10.  *
  11.  * @see     Attributes#getPersistentAttributeValue
  12.  * @see     Attributes#setPersistentAttributeValue
  13.  *
  14.  * @author Symantec Internet Tools Division
  15.  * @version 1.0
  16.  * @since VCafe 3.0
  17.  */
  18.  
  19. public class InvalidPersistentAttributeException extends RuntimeException
  20. {
  21.     /**
  22.      * Constructs an InvalidPersistentAttributeException that encapsulates the original
  23.      * Exception that occurred when trying to set or get the persistent attribute.
  24.      * @param owner            The Class that conceptually owns this attribute/value (cannot be null).
  25.      * @param attributeName    The locale-independent name of the attribute.
  26.      * @param exc            The original problem exception.
  27.      */
  28.     public InvalidPersistentAttributeException(Class owner, String attributeName, Exception exc) {
  29.         super(owner.getName() + "[" + attributeName + "]");
  30.         this.owner = owner;
  31.         this.attributeName = attributeName;
  32.         originalException = exc;
  33.     }
  34.  
  35.     /**
  36.      * Gets a <code>String</code> that represents this object.  This <code>String</code> includes the stack trace
  37.      * of the original Exception that triggered this InvalidPersistentAttributeException.
  38.      *
  39.      * @return  the <code>String</code>
  40.      */
  41.     public String toString() {
  42.         java.io.StringWriter sw = new java.io.StringWriter();
  43.         java.io.PrintWriter pw = new java.io.PrintWriter(sw);
  44.         pw.println(super.toString());
  45.         originalException.printStackTrace(pw);
  46.         
  47.         return sw.toString();
  48.     }
  49.  
  50.     /**
  51.      * The Class that conceptually owns the attribute that triggered the Exception
  52.      */
  53.     private Class owner;
  54.     
  55.     /**
  56.      * The locale-independent name of the attribute that triggered the Exception
  57.      */
  58.     private String attributeName;
  59.  
  60.     /**
  61.      * The actual Exception that occurred when trying to set or get the persistent attribute
  62.      */
  63.     private Exception originalException;
  64. }
  65.