wt.workflow.forum
Class DiscussionForum

java.lang.Object
  extended bywt.fc.WTObject
      extended bywt.workflow.forum.Discussion
          extended bywt.workflow.forum.DiscussionForum
All Implemented Interfaces:
CollaborationContainer, DisplayIdentification, DomainAdministered, EventListener, Externalizable, Forum, Indexable, NetFactor, Notifiable, ObjectMappable, ObjectSubscriptionListener, Ownable, Persistable, RecentlyVisited, Serializable, WTContained

public class DiscussionForum
extends Discussion
implements Forum, Externalizable

A DiscussionForum is a container of discussions/comments on a business object. DiscussionForums can be instantiated based on a DiscussionForumTemplate. They can be subscribed to and unsubscribed from. DiscussionForums can also be made read only, so no new postings are made to them. The immediate children of a DiscussionForum must always be DiscussionTopics.Forums cannot be nested within forums.

Use the newDiscussionForum static factory method(s), not the DiscussionForum constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: false

Extendable: false

See Also:
Serialized Form

Field Summary
private static String CLASSNAME
           
private  boolean closed
           
static String CLOSED
          Label for the attribute; Indicates whether or not the DiscussionForum is read only.
private  String description
           
static String DESCRIPTION
          Label for the attribute; The description of the DiscussionForum.
private static int DESCRIPTION_UPPER_LIMIT
           
static long EXTERNALIZATION_VERSION_UID
           
private static String FORUM_NOTIFICATION_TEMPLATE
           
private  String name
           
static String NAME
          Label for the attribute; The name of the DiscussionForum.
private static int NAME_UPPER_LIMIT
           
protected static long OLD_FORMAT_VERSION_UID
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
(package private) static boolean SERVER
           
private static boolean VERBOSE
           
 
Fields inherited from class wt.workflow.forum.Discussion
CONTAINER, DEFINITION
 
Fields inherited from class wt.fc.WTObject
CREATE_TIMESTAMP, MODIFY_TIMESTAMP
 
Fields inherited from interface wt.fc.Persistable
IDENTITY, PERSIST_INFO, TYPE
 
Fields inherited from interface wt.ownership.Ownable
OWNERSHIP
 
Fields inherited from interface wt.workflow.collaboration.CollaborationContainer
DEFINITION_REFERENCE
 
Fields inherited from interface wt.notify.Notifiable
EVENT_SET
 
Fields inherited from interface wt.inf.container.WTContained
CONTAINER_ID, CONTAINER_NAME, CONTAINER_REFERENCE
 
Fields inherited from interface wt.index.Indexable
INDEXER_SET
 
Fields inherited from interface wt.admin.DomainAdministered
DOMAIN_REF, INHERITED_DOMAIN
 
Fields inherited from interface wt.identity.DisplayIdentification
DISPLAY_IDENTIFIER, DISPLAY_IDENTITY, DISPLAY_TYPE
 
Constructor Summary
DiscussionForum()
           
 
Method Summary
 DiscussionForum closeForum()
          Makes the Forum read only.
private  void definitionReferenceValidate(ObjectReference a_DefinitionReference)
           
private  void descriptionValidate(String a_Description)
           
 boolean equals(Object obj)
          Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers.
 Vector getChildren()
          Returns all objects that have the container as their parent object.
 Vector getChildren(boolean attachments)
          Returns all objects that have the container as their parent object.
 String getConceptualClassname()
          Deprecated.  
 String getDescription()
          Gets the value of the attribute: DESCRIPTION.
 String getName()
          Gets the value of the attribute: NAME.
 Vector getOnlyImmediateChildren()
          Returns all objects that have the container as their parent object.
 SubjectOfForum getSubject()
          

Supported API: false
 Enumeration getTopics()
          Retrieves all Topics that are direct children of this forum.
 Vector getUnreadPostings(Vector postings, Timestamp lastRead)
          

Supported API: false
 ForumCookie getUserCookie()
          Retrieves the ForumCookie for the current user.
 int hashCode()
          Returns a hash code for this object based upon its ObjectIdentifier.
 boolean hasPrimary()
          

Supported API: false
protected  void initialize(String forumName)
          Deprecated.  
protected  void initialize(String forumName, SubjectOfForum subject, WTContainerRef containerRef)
          Supports initialization, following construction of an instance.
 boolean isClosed()
          Gets the value of the attribute: CLOSED.
 void markPostingsRead(Vector readPostings, Timestamp lastRead)
          Marks the given postings as read by the current principal.
private  void nameValidate(String a_Name)
           
static DiscussionForum newDiscussionForum(String forumName)
          Deprecated. in 7.0 Creates a new forum instance and sets the name to the String passed in.
static DiscussionForum newDiscussionForum(String forumName, SubjectOfForum subject, WTContainerRef containerRef)
          Creates a new forum instance and sets the name to the String passed in.
protected  ForumCookie persistUserCookie(ForumCookie cookie)
          Inserts the cookie into the database if it is not already persistent and updates it otherwise.
 ObjectSubscription populateSubscription(ObjectSubscription subscription)
          

Supported API: false
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
 void readExternal(PersistentRetrieveIfc input)
          Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(DiscussionForum thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
 void setClosed(boolean a_Closed)
          Sets the value of the attribute: CLOSED.
 void setDefinitionReference(ObjectReference a_DefinitionReference)
          Sets the value of the attribute: DEFINITION_REFERENCE.
 void setDescription(String a_Description)
          Sets the value of the attribute: DESCRIPTION.
 void setName(String a_Name)
          Sets the value of the attribute: NAME.
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 void writeExternal(PersistentStoreIfc output)
          Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.
 
Methods inherited from class wt.workflow.forum.Discussion
addUserSubscription, getContainer, getContainerName, getContainerReference, getDefinition, getDefinitionReference, getDomainRef, getEventSet, getIndexerSet, getOwnership, getParent, isInheritedDomain, notifyObjectEvent, readVersion, setContainer, setContainerReference, setDefinition, setDomainRef, setEventSet, setIndexerSet, setInheritedDomain, setOwnership
 
Methods inherited from class wt.fc.WTObject
checkAttributes, duplicate, finalize, getClassInfo, getCreateTimestamp, getDisplayIdentifier, getDisplayIdentity, getDisplayType, getIdentity, getModifyTimestamp, getPersistInfo, getType, initialize, readVersion, setPersistInfo, toString
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface wt.fc.Persistable
checkAttributes, getIdentity, getPersistInfo, getType, setPersistInfo
 
Methods inherited from interface wt.fc.NetFactor
getClassInfo
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

CLOSED

public static final String CLOSED
Label for the attribute; Indicates whether or not the DiscussionForum is read only.

Supported API: false

See Also:
Constant Field Values

closed

private boolean closed

DESCRIPTION

public static final String DESCRIPTION
Label for the attribute; The description of the DiscussionForum.

Supported API: false

See Also:
Constant Field Values

DESCRIPTION_UPPER_LIMIT

private static int DESCRIPTION_UPPER_LIMIT

description

private String description

NAME

public static final String NAME
Label for the attribute; The name of the DiscussionForum.

Supported API: false

See Also:
Constant Field Values

NAME_UPPER_LIMIT

private static int NAME_UPPER_LIMIT

name

private String name

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values

VERBOSE

private static boolean VERBOSE

FORUM_NOTIFICATION_TEMPLATE

private static final String FORUM_NOTIFICATION_TEMPLATE
See Also:
Constant Field Values

SERVER

static final boolean SERVER
Constructor Detail

DiscussionForum

public DiscussionForum()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Overrides:
writeExternal in class Discussion
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class Discussion
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(DiscussionForum thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(PersistentStoreIfc output)
                   throws SQLException,
                          DatastoreException
Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
writeExternal in interface ObjectMappable
Overrides:
writeExternal in class Discussion
Parameters:
output -
Throws:
SQLException
DatastoreException

readExternal

public void readExternal(PersistentRetrieveIfc input)
                  throws SQLException,
                         DatastoreException
Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
readExternal in interface ObjectMappable
Overrides:
readExternal in class Discussion
Parameters:
input -
Throws:
SQLException
DatastoreException

getConceptualClassname

public String getConceptualClassname()
Deprecated.  

Returns the conceptual (modeled) name for the class.

Supported API: false

Specified by:
getConceptualClassname in interface NetFactor
Returns:
String

isClosed

public boolean isClosed()
Gets the value of the attribute: CLOSED. Indicates whether or not the DiscussionForum is read only.

Supported API: false

Returns:
boolean

setClosed

public void setClosed(boolean a_Closed)
               throws WTPropertyVetoException
Sets the value of the attribute: CLOSED. Indicates whether or not the DiscussionForum is read only.

Supported API: false

Parameters:
a_Closed -
Throws:
WTPropertyVetoException

getDescription

public String getDescription()
Gets the value of the attribute: DESCRIPTION. The description of the DiscussionForum.

Supported API: false

Returns:
String

setDescription

public void setDescription(String a_Description)
                    throws WTPropertyVetoException
Sets the value of the attribute: DESCRIPTION. The description of the DiscussionForum.

Supported API: false

Parameters:
a_Description -
Throws:
WTPropertyVetoException

descriptionValidate

private void descriptionValidate(String a_Description)
                          throws WTPropertyVetoException
Parameters:
a_Description -
Throws:
WTPropertyVetoException

getName

public String getName()
Gets the value of the attribute: NAME. The name of the DiscussionForum.

Supported API: false

Returns:
String

setName

public void setName(String a_Name)
             throws WTPropertyVetoException
Sets the value of the attribute: NAME. The name of the DiscussionForum.

Supported API: false

Parameters:
a_Name -
Throws:
WTPropertyVetoException

nameValidate

private void nameValidate(String a_Name)
                   throws WTPropertyVetoException
Parameters:
a_Name -
Throws:
WTPropertyVetoException

setDefinitionReference

public void setDefinitionReference(ObjectReference a_DefinitionReference)
                            throws WTPropertyVetoException
Sets the value of the attribute: DEFINITION_REFERENCE.

Supported API: false

Specified by:
setDefinitionReference in interface CollaborationContainer
Overrides:
setDefinitionReference in class Discussion
Parameters:
a_DefinitionReference -
Throws:
WTPropertyVetoException

definitionReferenceValidate

private void definitionReferenceValidate(ObjectReference a_DefinitionReference)
                                  throws WTPropertyVetoException
Parameters:
a_DefinitionReference -
Throws:
WTPropertyVetoException

newDiscussionForum

public static DiscussionForum newDiscussionForum(String forumName)
                                          throws WTException
Deprecated. in 7.0 Creates a new forum instance and sets the name to the String passed in.



Supported API: false

Parameters:
forumName -
Returns:
DiscussionForum
Throws:
WTException

initialize

protected void initialize(String forumName)
                   throws WTException
Deprecated.  

Supports initialization, following construction of an instance. Invoked by "new" factory having the same signature.

Supported API: false

Parameters:
forumName -
Throws:
WTException

getTopics

public Enumeration getTopics()
                      throws WTException
Retrieves all Topics that are direct children of this forum. Subtopics are not included.

Supported API: false

Returns:
Enumeration
Throws:
WTException

getUserCookie

public ForumCookie getUserCookie()
                          throws WTException
Retrieves the ForumCookie for the current user. Returns null if one doesnt exist.

Supported API: false

Returns:
ForumCookie
Throws:
WTException

getUnreadPostings

public Vector getUnreadPostings(Vector postings,
                                Timestamp lastRead)
                         throws WTException


Supported API: false

Parameters:
postings -
lastRead -
Returns:
Vector
Throws:
WTException

closeForum

public DiscussionForum closeForum()
                           throws NotAuthorizedException,
                                  WTException
Makes the Forum read only.

Supported API: false

Returns:
DiscussionForum
Throws:
NotAuthorizedException
WTException

markPostingsRead

public void markPostingsRead(Vector readPostings,
                             Timestamp lastRead)
                      throws WTException
Marks the given postings as read by the current principal.

Supported API: false

Parameters:
readPostings - The Positngs that must be marked as read.
lastRead - The time the user last accessed the forum.
Throws:
WTException

persistUserCookie

protected ForumCookie persistUserCookie(ForumCookie cookie)
                                 throws WTException
Inserts the cookie into the database if it is not already persistent and updates it otherwise. Returns the cookie that has been persisted.

Supported API: false

Parameters:
cookie - The ForumCookie to be persisted.
Returns:
ForumCookie
Throws:
WTException

populateSubscription

public ObjectSubscription populateSubscription(ObjectSubscription subscription)
                                        throws WTException


Supported API: false

Specified by:
populateSubscription in interface CollaborationContainer
Overrides:
populateSubscription in class Discussion
Parameters:
subscription -
Returns:
ObjectSubscription
Throws:
WTException

getChildren

public Vector getChildren()
                   throws WTException
Returns all objects that have the container as their parent object.

Supported API: false

Specified by:
getChildren in interface CollaborationContainer
Returns:
Vector
Throws:
WTException

newDiscussionForum

public static DiscussionForum newDiscussionForum(String forumName,
                                                 SubjectOfForum subject,
                                                 WTContainerRef containerRef)
                                          throws WTException
Creates a new forum instance and sets the name to the String passed in.

Supported API: false

Parameters:
forumName -
subject -
containerRef -
Returns:
DiscussionForum
Throws:
WTException

initialize

protected void initialize(String forumName,
                          SubjectOfForum subject,
                          WTContainerRef containerRef)
                   throws WTException
Supports initialization, following construction of an instance. Invoked by "new" factory having the same signature.

Supported API: false

Parameters:
forumName -
subject -
containerRef -
Throws:
WTException

getOnlyImmediateChildren

public Vector getOnlyImmediateChildren()
                                throws WTException
Returns all objects that have the container as their parent object.

Supported API: false

Specified by:
getOnlyImmediateChildren in class Discussion
Returns:
Vector
Throws:
WTException

getChildren

public Vector getChildren(boolean attachments)
                   throws WTException
Returns all objects that have the container as their parent object.

Supported API: false

Specified by:
getChildren in class Discussion
Parameters:
attachments -
Returns:
Vector
Throws:
WTException

hasPrimary

public boolean hasPrimary()
                   throws WTException


Supported API: false

Specified by:
hasPrimary in interface Forum
Returns:
boolean
Throws:
WTException

getSubject

public SubjectOfForum getSubject()
                          throws WTException


Supported API: false

Specified by:
getSubject in interface Forum
Returns:
SubjectOfForum
Throws:
WTException

equals

public boolean equals(Object obj)
Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers. Changed or stale copies are still considered equal by this method. Delegates to PersistenceHelper.equals(Persistable,Object).

Warning: Certain core Windchill operations may depend upon equals being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Overrides:
equals in class Discussion
Parameters:
obj -
Returns:
boolean

hashCode

public int hashCode()
Returns a hash code for this object based upon its ObjectIdentifier. Delegates to PersistenceHelper.hashCode(Persistable).

Warning: Certain core Windchill operations may depend upon hashCode being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Overrides:
hashCode in class Discussion
Returns:
int