01: /* Licensed to the Apache Software Foundation (ASF) under one or more
02: * contributor license agreements. See the NOTICE file distributed with
03: * this work for additional information regarding copyright ownership.
04: * The ASF licenses this file to You under the Apache License, Version 2.0
05: * (the "License"); you may not use this file except in compliance with
06: * the License. You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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:
17: package java.nio.channels.spi;
18:
19: import java.nio.channels.SelectionKey;
20:
21: /**
22: * Abstract class for selection key.
23: * <p>
24: * The class takes charge of the validation and cancellation of key.
25: * </p>
26: */
27: public abstract class AbstractSelectionKey extends SelectionKey {
28:
29: /*
30: * Package private for deregister method in AbstractSelector.
31: */
32: boolean isValid = true;
33:
34: /**
35: * Constructor for this class.
36: */
37: protected AbstractSelectionKey() {
38: super ();
39: }
40:
41: /**
42: * @see java.nio.channels.SelectionKey#isValid()
43: */
44: @Override
45: public final boolean isValid() {
46: return isValid;
47: }
48:
49: /**
50: * Cancels this key and adds it to the cancelled key set.
51: *
52: * @see java.nio.channels.SelectionKey#cancel()
53: */
54: @Override
55: public final void cancel() {
56: if (isValid) {
57: isValid = false;
58: ((AbstractSelector) selector()).cancel(this);
59: }
60: }
61: }
|