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

  1. /*
  2.  * Copyright 1998 Symantec Corporation, All Rights Reserved.
  3.  */
  4.  
  5. package com.symantec.itools.vcafe.openapi;
  6.  
  7.  
  8. /**
  9.  * An api that stores named arbitrary data in either a <code>VisualProject</code> or global to the
  10.  * Visual Cafe environment.  The data can be persistent between sessions, or temporary.
  11.  * @see VisualCafe#getAttributes
  12.  * @see VisualProject#getAttributes
  13.  *
  14.  * @author Symantec Internet Tools Division
  15.  * @version 1.0
  16.  * @since VCafe 3.0
  17.  */
  18. public interface Attributes
  19. {
  20.     /**
  21.      * Sets the value of a session-duration attribute.  Once a value has been set, the Object's
  22.      * data cannot be changed without being re-set.
  23.      * The attribute/value persists only for the duration of the session.
  24.      * @param owner            The Class that conceptually owns this attribute/value <B>(can be <code>null</code>)</B>.
  25.      * @param attributeName    The locale-independent name of the attribute.
  26.      * @param value            The value.
  27.      * @see getSessionAttributeValue
  28.      * @see setPersistentAttributeValue
  29.      */
  30.     void setSessionAttributeValue(Class owner, String attributeName, Object value);
  31.  
  32.     /**
  33.      * Sets the value of a persistent attribute.  Once a value has been set, the Object's
  34.      * data cannot be changed without being re-set.
  35.      * The attribute/value is saved and restored between sessions.
  36.      *
  37.      * @param owner            The Class that conceptually owns this attribute/value <B>(cannot be <code>null</code>)</B>.
  38.      * @param attributeName    The locale-independent name of the attribute.
  39.      * @param value            The value.
  40.      * @exception InvalidPersistentAttributeException If the value can't be properly streamed in or out.
  41.      * @see getPersistentAttributeValue
  42.      * @see setSessionAttributeValue
  43.      */
  44.     void setPersistentAttributeValue(Class owner, String attributeName, java.io.Serializable value) throws InvalidPersistentAttributeException;
  45.  
  46.     /**
  47.      * Retrieve the value of a session-duration attribute.
  48.      * @param owner            The Class that conceptually owns this attribute/value <B>(can be <code>null</code>)</B>.
  49.      * @param attributeName    The locale-independent name of the attribute.
  50.      * @return                The value of the attribute, or <code>null</code> if the attribute is unknown.
  51.      * @see setSessionAttributeValue
  52.      * @see getPersistentAttributeValue
  53.      */
  54.     Object getSessionAttributeValue(Class owner, String attributeName);
  55.  
  56.  
  57.     /**
  58.      * Retrieve a named attribute from the list of persistent attributes.
  59.      * @param owner            The class that conceptually owns this attribute/value <B>(cannot be <code>null</code>)</B>.
  60.      * @param attributeName    The locale-independent name of the attribute
  61.      * @return                The value of the attribute, or <code>null</code> if the attribute is unknown.
  62.      * @exception InvalidPersistentAttributeException If the value can't be properly streamed in or out.
  63.      * @see setPersistentAttributeValue
  64.      * @see getSessionAttributeValue
  65.      */
  66.     Object getPersistentAttributeValue(Class owner, String attributeName) throws InvalidPersistentAttributeException;
  67.  
  68.  
  69.     /**
  70.      * Determine if an attribute is persistent.
  71.      * @param owner            The class that conceptually owns the attribute/value.
  72.      * @param attributeName    The locale-independent name of the attribute.
  73.      * @return  <code>true</code> if the attribute is persistent, <code>false</code> otherwise.
  74.      */
  75.     boolean isAttributePersistent(Class owner, String attributeName);
  76.  
  77.     /**
  78.      * Gets an enumeration used to cycle through the names of all attributes.
  79.      * The names are returned as String objects, formatted as owner.getName() + "#" + attributeName.
  80.      * If a session attribute was set without an owner, the attributeName is returned.
  81.      * @return An enumeration of the locale-independent names of all attributes that have
  82.      *            been registered.
  83.      * @see setSessionAttributeValue
  84.      * @see setPersistentAttributeValue
  85.      */
  86.     java.util.Enumeration attributeNames();
  87.  
  88.     /**
  89.      * Gets an enumeration used to cycle through the names of all attributes that
  90.      * belong to the specified owner.
  91.      * The names are returned as String objects set to the attributeName.
  92.      * @param owner        The Class that was specified when the attribute value was set.
  93.      * @return An enumeration of the locale-independent names of all attributes that have
  94.      *            been registered with the given owner.
  95.      * @see setSessionAttributeValue
  96.      * @see setPersistentAttributeValue
  97.      */
  98.     java.util.Enumeration attributeNames(Class owner);
  99. }
  100.