org.h2.store

## Class PageFreeList

- java.lang.Object
- - org.h2.util.CacheObject
  - - org.h2.store.Page
    - - org.h2.store.PageFreeList

All Implemented Interfaces:
  java.lang.Comparable<CacheObject>

    public class PageFreeList
    extends Page

The list of free pages of a page store. The format of a free list trunk page is:

- page type: byte (0)
- checksum: short (1-2)
- data (3-)

### Field Summary

### Fields inherited from class org.h2.store.Page

`changeCount, FLAG_LAST, TYPE_BTREE_LEAF, TYPE_BTREE_NODE, TYPE_DATA_LEAF, TYPE_DATA_NODE, TYPE_DATA_OVERFLOW, TYPE_EMPTY, TYPE_FREE_LIST, TYPE_STREAM_DATA, TYPE_STREAM_TRUNK`

### Fields inherited from class org.h2.util.CacheObject

`cacheChained, cacheNext, cachePrevious`

### Method Summary

Methods
`boolean` `canMove()` If this page can be moved.
`boolean` `canRemove()` Check if the object can be removed from the cache.
`int` `getMemory()` Get the estimated memory size.
`static int` `getPagesAddressed(int pageSize)` Get the number of pages that can fit in a free list.
`void` `moveTo(Session session, int newPos)` Copy the data to a new location, change the parent to point to the new location, and free up the current page.
`java.lang.String` `toString()`
`void` `write()` Write the page.

### Methods inherited from class org.h2.store.Page

`add, insert, insert, insert, remove, remove, remove`

### Methods inherited from class org.h2.util.CacheObject

`compareTo, getPos, isChanged, isStream, setChanged, setPos`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### write

    public void write()

Description copied from class: `Page`
Write the page.

Specified by:
  `write` in class `Page`

#### getPagesAddressed

    public static int getPagesAddressed(int pageSize)

Get the number of pages that can fit in a free list.

Parameters:
  `pageSize` - the page size
Returns:
  the number of pages

#### getMemory

    public int getMemory()

Get the estimated memory size.

Specified by:
  `getMemory` in class `CacheObject`
Returns:
  number of double words (4 bytes)

#### moveTo

    public void moveTo(Session session,
              int newPos)

Description copied from class: `Page`
Copy the data to a new location, change the parent to point to the new location, and free up the current page.

Specified by:
  `moveTo` in class `Page`
Parameters:
  `session` - the session
  `newPos` - the new position

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### canRemove

    public boolean canRemove()

Description copied from class: `CacheObject`
Check if the object can be removed from the cache. For example pinned objects can not be removed.

Specified by:
  `canRemove` in class `CacheObject`
Returns:
  true if it can be removed

#### canMove

    public boolean canMove()

Description copied from class: `Page`
If this page can be moved. Transaction log and free-list pages can not.

Overrides:
  `canMove` in class `Page`
Returns:
  true if moving is allowed