| Package: MachII.caching.strategies |
| A caching strategy. This is abstract and must be extended by a concrete strategy implementation. |
<!--- License: Copyright 2008 GreatBizTools, LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Copyright: GreatBizTools, LLC Author: Kurt Wiersma (kurt@mach-ii.com) $Id: AbstractCacheStrategy.cfc 679 2008-03-14 00:58:40Z peterfarrell $ Created version: 1.6.0 Updated version: 1.6.0 Notes: Caching strategies: * Are not Mach-II framework aware and do not have any access to the Mach-II AppManager or other Mach-II Managers. All configuration data should be passed into the strategy via the parameters. * Are not required to implement all the public methods, however you need to override the abstract methods if you do not want to have errors thrown. * Must make use the the CacheStats if you want caching stats available in the Mach-II dashboard. ---> |
| Method Summary | |
|---|---|
| public AbstractCacheStrategy |
init(struct parameters)
Initializes the caching strategy. Do not override. |
| public void |
configure()
Configures the strategy. Override to provide custom functionality. |
| public void |
flush()
Flushes all elements from the cache. |
| public any |
get(string key)
Gets an element by key from the cache. |
| public CacheStats |
getCacheStats()
Gets the cache stats for this caching strategy. |
| public Log |
getLog()
Gets the log. |
| public any |
getParameter(string name, [string defaultValue=""])
Gets a configuration parameter value, or a default value if not defined. |
| public struct |
getParameters()
Gets the full set of configuration parameters for the component. |
| public boolean |
isParameterDefined(string name)
Checks to see whether or not a configuration parameter is defined. |
| public boolean |
keyExists(string key)
Checks if an element exists by key in the cache. |
| public void |
put(string key, any data)
Puts an element by key into the cache. |
| public void |
reap()
Reaps 'expired' cache elements. |
| public void |
remove(string key)
Removes a cached element by key. |
| public void |
setLog(LogFactory logFactory)
Uses the log factory to create a log. |
| public void |
setParameter(string name, any value)
Sets a configuration parameter. |
| public void |
setParameters(struct parameters)
Sets the full set of configuration parameters for the component. |
| Method Detail |
|---|
| configure |
|---|
public void configure( )
Configures the strategy. Override to provide custom functionality.
Parameters:
Code:
<cffunction name="configure" access="public" returntype="void" output="false" hint="Configures the strategy. Override to provide custom functionality."> </cffunction>
| flush |
|---|
public void flush( )
Flushes all elements from the cache.
Parameters:
Code:
<cffunction name="flush" access="public" returntype="void" output="false" hint="Flushes all elements from the cache."> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| get |
|---|
Gets an element by key from the cache.
Parameters:
| string key |
Code:
<cffunction name="get" access="public" returntype="any" output="false" hint="Gets an element by key from the cache."> <cfargument name="key" type="string" required="true" /> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| getCacheStats |
|---|
public CacheStats getCacheStats( )
Gets the cache stats for this caching strategy.
Parameters:
Code:
<cffunction name="getCacheStats" access="public" returntype="MachII.caching.CacheStats" output="false" hint="Gets the cache stats for this caching strategy."> <cfreturn variables.cacheStats /> </cffunction>
| getLog |
|---|
public Log getLog( )
Gets the log.
Parameters:
Code:
<cffunction name="getLog" access="public" returntype="MachII.logging.Log" output="false" hint="Gets the log."> <cfreturn variables.log /> </cffunction>
| getParameter |
|---|
public any getParameter( string name, [string defaultValue=""] )
Gets a configuration parameter value, or a default value if not defined.
Parameters:
| string name |
| [string defaultValue=""] |
Code:
<cffunction name="getParameter" access="public" returntype="any" output="false" hint="Gets a configuration parameter value, or a default value if not defined."> <cfargument name="name" type="string" required="true" hint="The parameter name." /> <cfargument name="defaultValue" type="string" required="false" default="" hint="The default value to return if the parameter is not defined. Defaults to a blank string." /> <cfif isParameterDefined(arguments.name)> <cfreturn variables.parameters[arguments.name] /> <cfelse> <cfreturn arguments.defaultValue /> </cfif> </cffunction>
| getParameters |
|---|
public struct getParameters( )
Gets the full set of configuration parameters for the component.
Parameters:
Code:
<cffunction name="getParameters" access="public" returntype="struct" output="false" hint="Gets the full set of configuration parameters for the component."> <cfreturn variables.parameters /> </cffunction>
| init |
|---|
public AbstractCacheStrategy init( struct parameters )
Initializes the caching strategy. Do not override.
Parameters:
| struct parameters |
Code:
<cffunction name="init" access="public" returntype="AbstractCacheStrategy" output="false" hint="Initializes the caching strategy. Do not override."> <cfargument name="parameters" type="struct" required="true" /> <cfset setParameters(arguments.parameters) /> <cfreturn this /> </cffunction>
| isParameterDefined |
|---|
public boolean isParameterDefined( string name )
Checks to see whether or not a configuration parameter is defined.
Parameters:
| string name |
Code:
<cffunction name="isParameterDefined" access="public" returntype="boolean" output="false" hint="Checks to see whether or not a configuration parameter is defined."> <cfargument name="name" type="string" required="true" hint="The parameter name." /> <cfreturn StructKeyExists(variables.parameters, arguments.name) /> </cffunction>
| keyExists |
|---|
public boolean keyExists( string key )
Checks if an element exists by key in the cache.
Parameters:
| string key |
Code:
<cffunction name="keyExists" access="public" returntype="boolean" output="false" hint="Checks if an element exists by key in the cache."> <cfargument name="key" type="string" required="true" /> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| put |
|---|
public void put( string key, any data )
Puts an element by key into the cache.
Parameters:
| string key |
| any data |
Code:
<cffunction name="put" access="public" returntype="void" output="false" hint="Puts an element by key into the cache."> <cfargument name="key" type="string" required="true" /> <cfargument name="data" type="any" required="true" /> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| reap |
|---|
public void reap( )
Reaps 'expired' cache elements.
Parameters:
Code:
<cffunction name="reap" access="public" returntype="void" output="false" hint="Reaps 'expired' cache elements."> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| remove |
|---|
public void remove( string key )
Removes a cached element by key.
Parameters:
| string key |
Code:
<cffunction name="remove" access="public" returntype="void" output="false" hint="Removes a cached element by key."> <cfargument name="key" type="string" required="true" /> <cfabort showerror="This method is abstract and must be overrided." /> </cffunction>
| setLog |
|---|
public void setLog( LogFactory logFactory )
Uses the log factory to create a log.
Parameters:
| LogFactory logFactory |
Code:
<cffunction name="setLog" access="public" returntype="void" output="false" hint="Uses the log factory to create a log."> <cfargument name="logFactory" type="MachII.logging.LogFactory" required="true" /> <cfset variables.log = arguments.logFactory.getLog(getMetadata(this).name) /> </cffunction>
| setParameter |
|---|
public void setParameter( string name, any value )
Sets a configuration parameter.
Parameters:
| string name |
| any value |
Code:
<cffunction name="setParameter" access="public" returntype="void" output="false" hint="Sets a configuration parameter."> <cfargument name="name" type="string" required="true" hint="The parameter name." /> <cfargument name="value" required="true" hint="The parameter value." /> <cfset variables.parameters[arguments.name] = arguments.value /> </cffunction>
| setParameters |
|---|
public void setParameters( struct parameters )
Sets the full set of configuration parameters for the component.
Parameters:
| struct parameters |
Code:
<cffunction name="setParameters" access="public" returntype="void" output="false" hint="Sets the full set of configuration parameters for the component."> <cfargument name="parameters" type="struct" required="true" /> <cfset var key = "" /> <cfloop collection="#arguments.parameters#" item="key"> <cfset setParameter(key, parameters[key]) /> </cfloop> </cffunction>