8181 */
8282package org .exist .storage .btree ;
8383
84+ import org .exist .storage .btree .AbstractPagedFile .Page ;
8485import org .exist .storage .journal .Lsn ;
8586import org .exist .util .ByteConversion ;
8687
87- import java .io .IOException ;
88-
8988/**
9089 * Base class for page headers.
9190 *
9493 */
9594public abstract class AbstractPageHeader implements PageHeader {
9695
97- public static final int LENGTH_PAGE_STATUS = 1 ; //sizeof byte
96+ public static final int LENGTH_PAGE_TYPE = 1 ; //sizeof byte
9897 public static final int LENGTH_PAGE_DATA_LENGTH = 4 ; //sizeof int
9998 public static final int LENGTH_PAGE_NEXT_PAGE = 8 ; //sizeof long
10099 public static final int LENGTH_PAGE_LSN = Lsn .RAW_LENGTH ;
101100
102- private int dataLen = 0 ;
103- private long nextPage = Page .NO_PAGE ;
104- private boolean dirty = false ;
105-
106101 /**
107102 * The status of the current page.
108103 */
109- private PageStatus status = PageStatus .UNUSED ;
110-
104+ private PageType type = PageType .UNUSED ;
105+ private int dataLen = 0 ;
106+ private long nextPage = Page .NO_PAGE ;
111107 private Lsn lsn = Lsn .LSN_INVALID ;
112108
113- public AbstractPageHeader () {
114- }
115-
116- public AbstractPageHeader (final byte [] data , final int offset ) throws IOException {
117- read (data , offset );
118- }
109+ private boolean dirty = false ;
119110
120111 @ Override
121112 public int getDataLen () {
@@ -150,13 +141,13 @@ public void setDirty(final boolean dirty) {
150141 }
151142
152143 @ Override
153- public PageStatus getStatus () {
154- return this .status ;
144+ public PageType getType () {
145+ return this .type ;
155146 }
156147
157148 @ Override
158- public void updateStatus (final PageStatus newStatus ) {
159- this .status = newStatus ;
149+ public void updateType (final PageType newType ) {
150+ this .type = newType ;
160151 setDirty (true );
161152 }
162153
@@ -170,14 +161,15 @@ public void setLsn(final Lsn lsn) {
170161 this .lsn = lsn ;
171162 }
172163
173- public int read (final byte [] data , int offset ) throws IOException {
174- status = PageStatus .fromValue (data [offset ]);
175- offset += LENGTH_PAGE_STATUS ;
176- dataLen = ByteConversion .byteToInt (data , offset );
164+ @ Override
165+ public int read (final byte [] data , int offset ) {
166+ this .type = PageType .fromValue (data [offset ]);
167+ offset += LENGTH_PAGE_TYPE ;
168+ this .dataLen = ByteConversion .byteToInt (data , offset );
177169 offset += LENGTH_PAGE_DATA_LENGTH ;
178- nextPage = ByteConversion .byteToLong (data , offset );
170+ this . nextPage = ByteConversion .byteToLong (data , offset );
179171 offset += LENGTH_PAGE_NEXT_PAGE ;
180- lsn = Lsn .read (data , offset );
172+ this . lsn = Lsn .read (data , offset );
181173 offset += LENGTH_PAGE_LSN ;
182174
183175 // TODO(AR) should we mark this an non-dirty?
@@ -186,9 +178,10 @@ public int read(final byte[] data, int offset) throws IOException {
186178 return offset ;
187179 }
188180
189- public int write (final byte [] data , int offset ) throws IOException {
190- data [offset ] = status .getValue ();
191- offset += LENGTH_PAGE_STATUS ;
181+ @ Override
182+ public int write (final byte [] data , int offset ) {
183+ data [offset ] = type .getValue ();
184+ offset += LENGTH_PAGE_TYPE ;
192185 ByteConversion .intToByte (dataLen , data , offset );
193186 offset += LENGTH_PAGE_DATA_LENGTH ;
194187 ByteConversion .longToByte (nextPage , data , offset );
0 commit comments