com.atlassian.jira.propertyset
Class JiraCachingPropertySet

java.lang.Object
  extended by com.atlassian.jira.propertyset.JiraCachingPropertySet
All Implemented Interfaces:
com.opensymphony.module.propertyset.PropertySet, Serializable

public class JiraCachingPropertySet
extends Object
implements com.opensymphony.module.propertyset.PropertySet, Serializable

A PropertySet which decorates another PropertySet and caches the results. Must be correctly initialised via the init(Map, Map) before use.

Similar to com.opensymphony.module.propertyset.cached.CachingPropertySet class but does more caching.

This class is threadsafe. It uses a Lock to co-ordinate concurrent access. This means that improper publication is avoided as long as init(Map, Map) is called from the creating thread before use.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.opensymphony.module.propertyset.PropertySet
BOOLEAN, DATA, DATE, DOUBLE, INT, LONG, OBJECT, PROPERTIES, STRING, TEXT, XML
 
Constructor Summary
JiraCachingPropertySet()
           
 
Method Summary
 void clearCache()
          Clears any cached properties.
 boolean exists(String key)
           
 Object getAsActualType(String key)
           
 boolean getBoolean(String key)
           
 byte[] getData(String key)
           
 Date getDate(String key)
           
 double getDouble(String key)
           
 int getInt(String key)
           
 Collection getKeys()
           
 Collection getKeys(int type)
           
 Collection getKeys(String prefix)
           
 Collection getKeys(String prefix, int type)
           
 long getLong(String key)
           
 Object getObject(String key)
           
 Properties getProperties(String key)
           
 com.opensymphony.module.propertyset.PropertySetSchema getSchema()
           
 String getString(String key)
           
 String getText(String key)
           
 int getType(String key)
           
 Document getXML(String key)
           
 void init(Map config, Map args)
          Initialises this JiraCachingPropertySet.
 boolean isSettable(String property)
           
 void remove()
           
 void remove(String key)
           
 void setAsActualType(String key, Object value)
           
 void setBoolean(String key, boolean value)
           
 void setData(String key, byte[] value)
           
 void setDate(String key, Date value)
           
 void setDouble(String key, double value)
           
 void setInt(String key, int value)
           
 void setLong(String key, long value)
           
 void setObject(String key, Object value)
           
 void setProperties(String key, Properties value)
           
 void setSchema(com.opensymphony.module.propertyset.PropertySetSchema schema)
           
 void setString(String key, String value)
           
 void setText(String key, String value)
           
 void setXML(String key, Document value)
           
 boolean supportsType(int type)
           
 boolean supportsTypes()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JiraCachingPropertySet

public JiraCachingPropertySet()
Method Detail

setAsActualType

public void setAsActualType(String key,
                            Object value)
Specified by:
setAsActualType in interface com.opensymphony.module.propertyset.PropertySet

getAsActualType

public Object getAsActualType(String key)
Specified by:
getAsActualType in interface com.opensymphony.module.propertyset.PropertySet

setBoolean

public void setBoolean(String key,
                       boolean value)
Specified by:
setBoolean in interface com.opensymphony.module.propertyset.PropertySet

getBoolean

public boolean getBoolean(String key)
Specified by:
getBoolean in interface com.opensymphony.module.propertyset.PropertySet

setData

public void setData(String key,
                    byte[] value)
Specified by:
setData in interface com.opensymphony.module.propertyset.PropertySet

getData

public byte[] getData(String key)
Specified by:
getData in interface com.opensymphony.module.propertyset.PropertySet

setDate

public void setDate(String key,
                    Date value)
Specified by:
setDate in interface com.opensymphony.module.propertyset.PropertySet

getDate

public Date getDate(String key)
Specified by:
getDate in interface com.opensymphony.module.propertyset.PropertySet

setDouble

public void setDouble(String key,
                      double value)
Specified by:
setDouble in interface com.opensymphony.module.propertyset.PropertySet

getDouble

public double getDouble(String key)
Specified by:
getDouble in interface com.opensymphony.module.propertyset.PropertySet

setInt

public void setInt(String key,
                   int value)
Specified by:
setInt in interface com.opensymphony.module.propertyset.PropertySet

getInt

public int getInt(String key)
Specified by:
getInt in interface com.opensymphony.module.propertyset.PropertySet

getKeys

public Collection getKeys()
Specified by:
getKeys in interface com.opensymphony.module.propertyset.PropertySet

getKeys

public Collection getKeys(int type)
Specified by:
getKeys in interface com.opensymphony.module.propertyset.PropertySet

getKeys

public Collection getKeys(String prefix)
Specified by:
getKeys in interface com.opensymphony.module.propertyset.PropertySet

getKeys

public Collection getKeys(String prefix,
                          int type)
Specified by:
getKeys in interface com.opensymphony.module.propertyset.PropertySet

setLong

public void setLong(String key,
                    long value)
Specified by:
setLong in interface com.opensymphony.module.propertyset.PropertySet

getLong

public long getLong(String key)
Specified by:
getLong in interface com.opensymphony.module.propertyset.PropertySet

setObject

public void setObject(String key,
                      Object value)
Specified by:
setObject in interface com.opensymphony.module.propertyset.PropertySet

getObject

public Object getObject(String key)
Specified by:
getObject in interface com.opensymphony.module.propertyset.PropertySet

setProperties

public void setProperties(String key,
                          Properties value)
Specified by:
setProperties in interface com.opensymphony.module.propertyset.PropertySet

getProperties

public Properties getProperties(String key)
Specified by:
getProperties in interface com.opensymphony.module.propertyset.PropertySet

setSchema

public void setSchema(com.opensymphony.module.propertyset.PropertySetSchema schema)
Specified by:
setSchema in interface com.opensymphony.module.propertyset.PropertySet

getSchema

public com.opensymphony.module.propertyset.PropertySetSchema getSchema()
Specified by:
getSchema in interface com.opensymphony.module.propertyset.PropertySet

isSettable

public boolean isSettable(String property)
Specified by:
isSettable in interface com.opensymphony.module.propertyset.PropertySet

setString

public void setString(String key,
                      String value)
Specified by:
setString in interface com.opensymphony.module.propertyset.PropertySet

getString

public String getString(String key)
Specified by:
getString in interface com.opensymphony.module.propertyset.PropertySet

setText

public void setText(String key,
                    String value)
Specified by:
setText in interface com.opensymphony.module.propertyset.PropertySet

getText

public String getText(String key)
Specified by:
getText in interface com.opensymphony.module.propertyset.PropertySet

getType

public int getType(String key)
Specified by:
getType in interface com.opensymphony.module.propertyset.PropertySet

setXML

public void setXML(String key,
                   Document value)
Specified by:
setXML in interface com.opensymphony.module.propertyset.PropertySet

getXML

public Document getXML(String key)
Specified by:
getXML in interface com.opensymphony.module.propertyset.PropertySet

exists

public boolean exists(String key)
Specified by:
exists in interface com.opensymphony.module.propertyset.PropertySet

init

public void init(Map config,
                 Map args)
Initialises this JiraCachingPropertySet. PropertySetManager first constructs an instance of a PropertySet, and then calls init().

The args parameter must always contain an entry of type PropertySet under the key "PropertySet". If args contains a Boolean entry under the key of "bulkload" which is set to true, then all the values in the underlying PropertySet will be preloaded into the cache.

Specified by:
init in interface com.opensymphony.module.propertyset.PropertySet
Parameters:
config - Config from PropertySetConfig
args - Map of args passed to PropertySetManager.getInstance()
See Also:
PropertySet.init(java.util.Map,java.util.Map), PropertySetManager.getInstance(String,java.util.Map)

remove

public void remove(String key)
Specified by:
remove in interface com.opensymphony.module.propertyset.PropertySet

supportsType

public boolean supportsType(int type)
Specified by:
supportsType in interface com.opensymphony.module.propertyset.PropertySet

supportsTypes

public boolean supportsTypes()
Specified by:
supportsTypes in interface com.opensymphony.module.propertyset.PropertySet

remove

public void remove()
            throws com.opensymphony.module.propertyset.PropertyException
Specified by:
remove in interface com.opensymphony.module.propertyset.PropertySet
Throws:
com.opensymphony.module.propertyset.PropertyException

clearCache

public void clearCache()
Clears any cached properties. Does not affect the decorated PropertySet.

Since:
6.1


Copyright © 2002-2014 Atlassian. All Rights Reserved.