1 package org.apache.commons.jcs.auxiliary.disk.jdbc;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.Serializable;
23
24 /**
25 * This is used by various elements of the JDBC disk cache to indicate the
26 * status of a table. The MySQL disk cache, for instance, marks the status as
27 * optimizing when a scheduled optimization is taking place. This allows the
28 * cache to balk rather than block during long running optimizations.
29 * <p>
30 * @author Aaron Smuts
31 */
32 public class TableState
33 implements Serializable
34 {
35 /** Don't change. */
36 private static final long serialVersionUID = -6625081552084964885L;
37
38 /** Name of the table whose state this reflects. */
39 private String tableName;
40
41 /**
42 * The table is free. It can be accessed and no potentially table locking
43 * jobs are running.
44 */
45 public static final int FREE = 0;
46
47 /** A potentially table locking deletion is running */
48 public static final int DELETE_RUNNING = 1;
49
50 /** A table locking optimization is running. */
51 public static final int OPTIMIZATION_RUNNING = 2;
52
53 /** we might want to add error */
54 private int state = FREE;
55
56 /**
57 * Construct a usable table state.
58 * <p>
59 * @param tableName
60 */
61 public TableState( String tableName )
62 {
63 this.setTableName( tableName );
64 }
65
66 /**
67 * @param tableName
68 * The tableName to set.
69 */
70 public void setTableName( String tableName )
71 {
72 this.tableName = tableName;
73 }
74
75 /**
76 * @return Returns the tableName.
77 */
78 public String getTableName()
79 {
80 return tableName;
81 }
82
83 /**
84 * @param state
85 * The state to set.
86 */
87 public void setState( int state )
88 {
89 this.state = state;
90 }
91
92 /**
93 * @return Returns the state.
94 */
95 public int getState()
96 {
97 return state;
98 }
99
100 /**
101 * Write out the values for debugging purposes.
102 * <p>
103 * @return String
104 */
105 @Override
106 public String toString()
107 {
108 StringBuilder str = new StringBuilder();
109 str.append( "TableState " );
110 str.append( "\n TableName = " + getTableName() );
111 str.append( "\n State = " + getState() );
112 return str.toString();
113 }
114 }