KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > attributes > DefaultSealable


1 /*
2  * Copyright 2003-2004 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.attributes;
17
18 /**
19  * Implementation of the {@link Sealable} interface. Subclasses should call
20  * {@link #checkSealed()} before setting any bean properties.
21  */

22 public class DefaultSealable implements Sealable {
23     
24     /**
25      * Boolean flag indicating whether the {@link seal()} method
26      * has been called.
27      */

28     private boolean sealed = false;
29     
30     public DefaultSealable () {
31     }
32     
33     /**
34      * Checks if the {@link #seal()} method has been called and throws a
35      * <code>IllegalStateException</code> if it has.
36      *
37      * @throws IllegalStateException if this attribute has been sealed.
38      */

39     protected void checkSealed () throws IllegalStateException JavaDoc {
40         if (sealed) {
41             throw new IllegalStateException JavaDoc ("sealed");
42         }
43     }
44     
45     /**
46      * Seals this attribute. Any future calls to the
47      * {@link #checkSealed()} method will result in an
48      * <code>IllegalStateException</code> being thrown.
49      */

50     public void seal () {
51         this.sealed = true;
52     }
53 }
Popular Tags