1 package org.apache.jcs.auxiliary.disk;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.jcs.auxiliary.AbstractAuxiliaryCacheAttributes;
23 import org.apache.jcs.auxiliary.AuxiliaryCacheAttributes;
24 import org.apache.jcs.auxiliary.disk.behavior.IDiskCacheAttributes;
25
26 /***
27 * This has common attributes that any conceivable disk cache would need.
28 * <p>
29 * @author aaronsm
30 */
31 public abstract class AbstractDiskCacheAttributes
32 extends AbstractAuxiliaryCacheAttributes
33 implements IDiskCacheAttributes
34 {
35 /*** path to disk */
36 protected String diskPath;
37
38 /*** if this is false, we will not execute remove all */
39 private boolean allowRemoveAll = true;
40
41 /*** default to 5000 */
42 protected int maxPurgatorySize = MAX_PURGATORY_SIZE_DEFUALT;
43
44 /*** Default amount of time to allow for keypersistence on shutdown */
45 private static final int DEFAULT_shutdownSpoolTimeLimit = 60;
46
47 /***
48 * This default determines how long the shutdown will wait for the key spool and data defrag to
49 * finish.
50 */
51 protected int shutdownSpoolTimeLimit = DEFAULT_shutdownSpoolTimeLimit;
52
53 /***
54 * Sets the diskPath attribute of the IJISPCacheAttributes object
55 * <p>
56 * @param path The new diskPath value
57 */
58 public void setDiskPath( String path )
59 {
60 this.diskPath = path.trim();
61 }
62
63 /***
64 * Gets the diskPath attribute of the attributes object
65 * <p>
66 * @return The diskPath value
67 */
68 public String getDiskPath()
69 {
70 return this.diskPath;
71 }
72
73 /***
74 * Gets the maxKeySize attribute of the DiskCacheAttributes object
75 * <p>
76 * @return The maxPurgatorySize value
77 */
78 public int getMaxPurgatorySize()
79 {
80 return maxPurgatorySize;
81 }
82
83 /***
84 * Sets the maxPurgatorySize attribute of the DiskCacheAttributes object
85 * <p>
86 * @param maxPurgatorySize The new maxPurgatorySize value
87 */
88 public void setMaxPurgatorySize( int maxPurgatorySize )
89 {
90 this.maxPurgatorySize = maxPurgatorySize;
91 }
92
93 /***
94 * Get the amount of time in seconds we will wait for elements to move to disk during shutdown
95 * for a particular region.
96 * <p>
97 * @return the time in seconds.
98 */
99 public int getShutdownSpoolTimeLimit()
100 {
101 return this.shutdownSpoolTimeLimit;
102 }
103
104 /***
105 * Sets the amount of time in seconds we will wait for elements to move to disk during shutdown
106 * for a particular region.
107 * <p>
108 * This is how long we give the event queue to empty.
109 * <p>
110 * The default is 60 seconds.
111 * <p>
112 * @param shutdownSpoolTimeLimit the time in seconds
113 */
114 public void setShutdownSpoolTimeLimit( int shutdownSpoolTimeLimit )
115 {
116 this.shutdownSpoolTimeLimit = shutdownSpoolTimeLimit;
117 }
118
119 /***
120 * Simple clone.
121 * <p>
122 * @return AuxiliaryCacheAttributes
123 */
124 public AuxiliaryCacheAttributes copy()
125 {
126 try
127 {
128 return (AuxiliaryCacheAttributes) this.clone();
129 }
130 catch ( Exception e )
131 {
132
133 }
134 return this;
135 }
136
137 /***
138 * @param allowRemoveAll The allowRemoveAll to set.
139 */
140 public void setAllowRemoveAll( boolean allowRemoveAll )
141 {
142 this.allowRemoveAll = allowRemoveAll;
143 }
144
145 /***
146 * @return Returns the allowRemoveAll.
147 */
148 public boolean isAllowRemoveAll()
149 {
150 return allowRemoveAll;
151 }
152
153 /***
154 * Includes the common attributes for a debug message.
155 * <p>
156 * @return String
157 */
158 public String toString()
159 {
160 StringBuffer str = new StringBuffer();
161 str.append( "AbstractDiskCacheAttributes " );
162 str.append( "\n diskPath = " + diskPath );
163 str.append( "\n maxPurgatorySize = " + maxPurgatorySize );
164 str.append( "\n allowRemoveAll = " + allowRemoveAll );
165 return str.toString();
166 }
167 }