01: /* ====================================================================
02: Licensed to the Apache Software Foundation (ASF) under one or more
03: contributor license agreements. See the NOTICE file distributed with
04: this work for additional information regarding copyright ownership.
05: The ASF licenses this file to You under the Apache License, Version 2.0
06: (the "License"); you may not use this file except in compliance with
07: the License. You may obtain a copy of the License at
08:
09: http://www.apache.org/licenses/LICENSE-2.0
10:
11: Unless required by applicable law or agreed to in writing, software
12: distributed under the License is distributed on an "AS IS" BASIS,
13: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: See the License for the specific language governing permissions and
15: limitations under the License.
16: ==================================================================== */
17:
18: package org.apache.poi.hslf.record;
19:
20: import java.util.Hashtable;
21:
22: /**
23: * A special (and dangerous) kind of Record Atom that cares about where
24: * it lives on the disk, or who has other Atoms that care about where
25: * this is on the disk.
26: *
27: * @author Nick Burch
28: */
29:
30: public abstract class PositionDependentRecordAtom extends RecordAtom
31: implements PositionDependentRecord {
32: /** Our location on the disk, as of the last write out */
33: protected int myLastOnDiskOffset;
34:
35: /** Fetch our location on the disk, as of the last write out */
36: public int getLastOnDiskOffset() {
37: return myLastOnDiskOffset;
38: }
39:
40: /**
41: * Update the Record's idea of where on disk it lives, after a write out.
42: * Use with care...
43: */
44: public void setLastOnDiskOffset(int offset) {
45: myLastOnDiskOffset = offset;
46: }
47:
48: /**
49: * Offer the record the list of records that have changed their
50: * location as part of the writeout.
51: * Allows records to update their internal pointers to other records
52: * locations
53: */
54: public abstract void updateOtherRecordReferences(
55: Hashtable oldToNewReferencesLookup);
56: }
|