Package org.pentaho.di.core.xml
Class XMLHandlerCache
java.lang.Object
org.pentaho.di.core.xml.XMLHandlerCache
Singleton to help speed up lookups in an XML DOM tree.
The theory is that you often loop over occurrences of a certain tag in a Node.
If there are 20 occurrences, you go from index 0..19.
Every time we do the following
- found node 0
- found node 0, 1
- found node 0, 1, 2
- ...
So the time to search node index 19 is 20 times larger on average then index 0.
We can solve this by caching the position of index 18 and by starting back at that position.
This class is a singleton to keep everyting 100% compatible with the rest of the codebase.
The theory is that you often loop over occurrences of a certain tag in a Node.
If there are 20 occurrences, you go from index 0..19.
Every time we do the following
- found node 0
- found node 0, 1
- found node 0, 1, 2
- ...
So the time to search node index 19 is 20 times larger on average then index 0.
We can solve this by caching the position of index 18 and by starting back at that position.
This class is a singleton to keep everyting 100% compatible with the rest of the codebase.
- Since:
- 22-Apr-2006
- Author:
- Matt
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clears the cacheint
static XMLHandlerCache
int
Retrieve the last child were we left off...void
setCacheHits
(int cacheHits) Allows you to (re-)set the number of cache hitsvoid
storeCache
(XMLHandlerCacheEntry entry, int lastChildNr) Store a cache entry
-
Method Details
-
getInstance
-
storeCache
Store a cache entry- Parameters:
entry
- The cache entry to store
-
getLastChildNr
Retrieve the last child were we left off...- Parameters:
entry
- The cache entry to look for.- Returns:
- the last child position or -1 if nothing was found.
-
getCacheHits
public int getCacheHits()- Returns:
- the number of cache hits for your statistical pleasure.
-
setCacheHits
public void setCacheHits(int cacheHits) Allows you to (re-)set the number of cache hits- Parameters:
cacheHits
- the number of cache hits.
-
clear
public void clear()Clears the cache
-