3.3. The corresponding area tree

The structure of the area tree is as follows:

PageViewport
|
+-Page
  |
  +-RegionViewport
    |
    +-BodyRegion
      |
      +-MainReference
      | |
      | +-Span
      | | |
      | | +-Flow
      | |
      | +-Span
      | | |
      | | +-Flow
      | |   |
      | |   +-Block
      | |   | |
      | |   | +-LineArea
      | |   |   |
      | |   |   +-TextArea
      | |   |
      | |   +-Block
      | |
      | +-Span
      | | |
      | | +-Flow
      | |
      | +-Span
      | | |
      | | +-Flow
      | |
      | +-Span
      |   |
      |   +-Flow
      |
      +blocks
      |
      +CTM

In the listing below members of an arraylist are indicated by [n], which stands for get(n). If the arraylist is called children, the word children has been omitted, so that [n] then stands for children.get(n).

Type: org.apache.fop.area.PageViewport:

 curPage = "PageViewport: page=1"

 curPage = {
    page: instance of org.apache.fop.area.Page(id=1394)
    viewArea: instance of java.awt.Rectangle(id=1395)
    clip: false
    pageNumber: "1"
    idReferences: null
    unresolved: null
    pendingResolved: null
    markerFirstStart: null
    markerLastStart: null
    markerFirstAny: null
    markerLastEnd: null
    markerLastAny: null
}

Type: org.apache.fop.area.Page:

 curPage.page = {
    regionBefore: null
    regionStart: null
    regionBody: instance of org.apache.fop.area.RegionViewport(id=1397)
    regionEnd: null
    regionAfter: null
    unresolved: null
}

Type: org.apache.fop.area.RegionViewport:

 curPage.page.regionBody = {
    region: instance of org.apache.fop.area.BodyRegion(id=1077)
    viewArea: instance of java.awt.Rectangle(id=1399)
    clip: false
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.BodyRegion:

 curPage.page.regionBody.region = {
    beforeFloat: null
    mainReference: instance of org.apache.fop.area.MainReference(id=1401)
    footnote: null
    columnGap: 18000
    columnCount: 1
    refIPD: 0
    org.apache.fop.area.RegionReference.regionClass: 2
    org.apache.fop.area.RegionReference.ctm: instance of org.apache.fop.area.CTM(id=1402)
    org.apache.fop.area.RegionReference.blocks: instance of java.util.ArrayList(id=1403)
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.MainReference:

 curPage.page.regionBody.region.mainReference = {
    spanAreas: instance of java.util.ArrayList(id=1405)
    columnGap: 0
    width: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: null
}

The main reference contains five span areas. Four are empty. Number 1 contains the text of this page.

 curPage.page.regionBody.region.mainReference.spanAreas = "[
  org.apache.fop.area.Span@53c3f5
  org.apache.fop.area.Span@101ac93
  org.apache.fop.area.Span@125d61e
  org.apache.fop.area.Span@155d3a3
  org.apache.fop.area.Span@718242
]"

Type: org.apache.fop.area.Span:

 curPage.page.regionBody.region.mainReference.spanAreas[0] = {
    flowAreas: instance of java.util.ArrayList(id=1409)
    height: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[0].flowAreas = "[
  org.apache.fop.area.Flow@e33e18
]"

Type: org.apache.fop.area.Flow:

 curPage.page.regionBody.region.mainReference.spanAreas[0].flowAreas[0] = {
    stacking: 2
    width: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 0
    org.apache.fop.area.BlockParent.children: null
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.Span:

 curPage.page.regionBody.region.mainReference.spanAreas[1] = {
    flowAreas: instance of java.util.ArrayList(id=1412)
    height: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[0].flowAreas = "[
  org.apache.fop.area.Flow@e33e18
]"

Type: org.apache.fop.area.Flow:

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0] = {
    stacking: 2
    width: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 0
    org.apache.fop.area.BlockParent.children: instance of java.util.ArrayList(id=1416)
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].children = "[
  org.apache.fop.area.Block@61f533
  org.apache.fop.area.Block@12922f6
]"

Type: org.apache.fop.area.Block:

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0] = {
    stacking: 2
    positioning: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 481891
    org.apache.fop.area.BlockParent.height: 19200
    org.apache.fop.area.BlockParent.children: instance of java.util.ArrayList(id=1419)
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0].children = "[
  org.apache.fop.area.LineArea@9f0d
]"

Type: org.apache.fop.area.LineArea:

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0].[0] = {
    stacking: 0
    startIndent: 0
    length: 0
    lineHeight: 19200
    baseLine: 0
    inlineAreas: instance of java.util.ArrayList(id=1422)
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0].[0].inlineAreas = "[
  org.apache.fop.area.inline.TextArea@21d23b
]"

Type: org.apache.fop.area.inline.TextArea:

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0].[0].inlineAreas[0] = {
    text: "Test FO"
    iTSadjust: 0
    org.apache.fop.area.inline.InlineArea.height: 14800
    org.apache.fop.area.inline.InlineArea.contentIPD: 59568
    org.apache.fop.area.inline.InlineArea.verticalPosition: 13688
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: instance of java.util.HashMap(id=1426)
}

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[0].[0].inlineAreas[0].props = "{
  4=16000
  3=F3
  7=#000000
}"

3
org.apache.fop.area.Trait.FONT_NAME
4
org.apache.fop.area.Trait.FONT_SIZE
7
org.apache.fop.area.Trait.COLOR

Type: org.apache.fop.area.Block:

 curPage.page.regionBody.region.mainReference.spanAreas[1].flowAreas[0].[1] = {
    stacking: 2
    positioning: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 14173
    org.apache.fop.area.BlockParent.children: null
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 0
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.Span:

 curPage.page.regionBody.region.mainReference.spanAreas[2] = {
    flowAreas: instance of java.util.ArrayList(id=1429)
    height: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[2].flowAreas = "[
  org.apache.fop.area.Flow@c72243
]"

Type: org.apache.fop.area.Flow:

 curPage.page.regionBody.region.mainReference.spanAreas[2].flowAreas[0] = {
    stacking: 2
    width: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 0
    org.apache.fop.area.BlockParent.children: null
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.Span:

 curPage.page.regionBody.region.mainReference.spanAreas[3] = {
    flowAreas: instance of java.util.ArrayList(id=1433)
    height: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[3].flowAreas = "[
  org.apache.fop.area.Flow@dc9766
]"

Type: org.apache.fop.area.Flow:

 curPage.page.regionBody.region.mainReference.spanAreas[3].flowAreas[0] = {
    stacking: 2
    width: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 0
    org.apache.fop.area.BlockParent.children: null
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

Type: org.apache.fop.area.Span:

 curPage.page.regionBody.region.mainReference.spanAreas[4] = {
    flowAreas: instance of java.util.ArrayList(id=1436)
    height: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.mainReference.spanAreas[4].flowAreas = "[
  org.apache.fop.area.Flow@1ec58a
]"

Type: org.apache.fop.area.Flow:

 curPage.page.regionBody.region.mainReference.spanAreas[4].flowAreas[0] = {
    stacking: 2
    width: 0
    org.apache.fop.area.BlockParent.xOffset: 0
    org.apache.fop.area.BlockParent.yOffset: 0
    org.apache.fop.area.BlockParent.width: 0
    org.apache.fop.area.BlockParent.height: 0
    org.apache.fop.area.BlockParent.children: null
    org.apache.fop.area.BlockParent.orientation: 0
    org.apache.fop.area.Area.areaClass: 0
    org.apache.fop.area.Area.ipd: 481891
    org.apache.fop.area.Area.props: null
}

 curPage.page.regionBody.region.blocks = "[]"

Type: org.apache.fop.area.CTM:

 curPage.page.regionBody.region.ctm = {
    a: 1.0
    b: 0.0
    c: 0.0
    d: 1.0
    e: 56692.0
    f: 56692.0
    CTM_LRTB: instance of org.apache.fop.area.CTM(id=1439)
    CTM_RLTB: instance of org.apache.fop.area.CTM(id=1440)
    CTM_TBRL: instance of org.apache.fop.area.CTM(id=1441)
}