com.ptc.windchill.enterprise.search.server
Class SearchableAttributesCache

java.lang.Object
  extended bycom.ptc.windchill.enterprise.search.server.SearchableAttributesCache
All Implemented Interfaces:
Externalizable, Serializable

public final class SearchableAttributesCache
extends Object
implements Externalizable

In memory representation of SearchableAttributes.properties file.

Supported API: false

Extendable: false

See Also:
Serialized Form

Field Summary
private static Map attributeCache
           
private static String CLASSNAME
           
static long EXTERNALIZATION_VERSION_UID
           
protected static long OLD_FORMAT_VERSION_UID
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
 
Constructor Summary
SearchableAttributesCache()
           
 
Method Summary
private static void createSearchableAttributesCache(Properties props)
          Populate searchable attributes cache with key = attributeName and value = AttributeTypeIdentifier[].
protected static void dump()
          Print cache contents.
protected static AttributeTypeIdentifier[] getAttributeTypeIdentifiers(String attributeName)
          Gets AttributeTypeIdentifiers with a wt.fc.Persistable context from the cache.
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
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(SearchableAttributesCache thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

attributeCache

private static Map attributeCache

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
Constructor Detail

SearchableAttributesCache

public SearchableAttributesCache()
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
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
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(SearchableAttributesCache 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

getAttributeTypeIdentifiers

protected static AttributeTypeIdentifier[] getAttributeTypeIdentifiers(String attributeName)
Gets AttributeTypeIdentifiers with a wt.fc.Persistable context from the cache. This method is necessary because when a search is performed against multiple types an AttributeTypeIdentifier must be constructed with a Persistable context. The IdentifierFactory cannot be used in this case, but the type of AttributeTypeIdentifier to construct must be known at this point. Since the only information present at the time is attributeName we get the AttributeTypeIdentifier from a predefined set of attributeNames and their AttributeTypeIdentifier types in SearchableAttributes.properties.

Supported API: false

Parameters:
attributeName - The attribute value passed on a where clause. Typically the logical form, e.g. "creator.id". Multiple AttributeTypeIdentifiers are returned for logical forms like "creator.id" that map to different types and have different values, e.g. "iterationInfo.creator" if from an Iterated type or "creator" if from a non-Iterated type. Each returned attribute will have a Persistable context, e.g. "WCTYPE|wt.fc.Persistable~MBA|iterationInfo.creator^WCTYPE|wt.org.WTPrincipal" and "WCTYPE|wt.fc.Persistable~MBA|creator^WCTYPE|wt.org.WTPrincipal".
Returns:
AttributeTypeIdentifier[]

createSearchableAttributesCache

private static void createSearchableAttributesCache(Properties props)
                                             throws WTException
Populate searchable attributes cache with key = attributeName and value = AttributeTypeIdentifier[]. The cache supports multiple AttributeTypeIdentifiers being mapped to a single type name.

Parameters:
props -
Throws:
WTException

dump

protected static void dump()
Print cache contents.