01: /*
02:
03: Derby - Class org.apache.derby.impl.store.raw.data.ContainerActionOnCommit
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: 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, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derby.impl.store.raw.data;
23:
24: import org.apache.derby.iapi.store.raw.ContainerKey;
25:
26: import java.util.Observer;
27:
28: /**
29: An Observer that can be attached to a transaction to
30: implement some action when the transaction
31: commits or rollsback in some way.
32: */
33:
34: abstract class ContainerActionOnCommit implements Observer {
35:
36: protected ContainerKey identity;
37:
38: protected ContainerActionOnCommit(ContainerKey identity) {
39:
40: this .identity = identity;
41: }
42:
43: public int hashCode() {
44: return identity.hashCode();
45: }
46:
47: /**
48: An equals method that returns true if the other obejct
49: is a sub-class of this, and the container identities
50: are equal *and* it is the same class as this.
51: <BR>
52: This allows mutiple additions of value equality
53: obejcts to the observer list while only retaining one.
54: */
55: public boolean equals(Object other) {
56: if (other instanceof ContainerActionOnCommit) {
57: if (!identity
58: .equals(((ContainerActionOnCommit) other).identity))
59: return false;
60:
61: // the class of the types must match as well
62: return getClass().equals(other.getClass());
63: }
64: return false;
65: }
66: }
|