KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > dna > impl > AbstractFreezable


1 /*
2  * Copyright (C) The DNA Group. All rights reserved.
3  *
4  * This software is published under the terms of the DNA
5  * Software License version 1.1, a copy of which has been included
6  * with this distribution in the LICENSE.txt file.
7  */

8 package org.codehaus.dna.impl;
9
10 /**
11  * Abstract utility class for resources that can be "frozen"
12  * and made read-only after being constructed.
13  *
14  * @version $Revision: 1.2 $ $Date: 2004/05/01 09:51:48 $
15  */

16 abstract class AbstractFreezable
17     implements Freezable
18 {
19     /**
20      * Flag indicating whether resource has been
21      * made read-only yet.
22      */

23     private boolean m_readOnly;
24
25     /**
26      * Mark the resource as read only.
27      */

28     public void makeReadOnly()
29     {
30         m_readOnly = true;
31     }
32
33     /**
34      * Check if the resource has been "frozen"
35      * and thus is read only. If read-only then
36      * throw an IllegalStateException.
37      *
38      * @throws IllegalStateException if resource is read-only
39      */

40     protected final void checkWriteable()
41     {
42         if( m_readOnly )
43         {
44             final String JavaDoc message =
45                 "Resource (" + this + ") is read only and can not be modified";
46             throw new IllegalStateException JavaDoc( message );
47         }
48     }
49
50     /**
51      * Return true if resource has been made read-only or frozen.
52      *
53      * @return true if resource has been made read-only or
54      * frozen, false otherwise.
55      */

56     protected final boolean isReadOnly()
57     {
58         return m_readOnly;
59     }
60 }
61
Popular Tags