public class SectionEditor extends LineEditor
Section based editing is a two phase process of parsing the editor's input into a corresponding hierarchy of
Section
instances, followed by rendering the parsed sections to produce the output of the editor. Method
editLine
returns null
during parsing and the output of the editor on end of input, rendered by
calling method getOutput
. Parsing is backed by methods getSection
and isSectionFinished
.
LineEditor.edit(java.lang.String)
Constructor and Description |
---|
SectionEditor()
Creates a new
SectionEditor instance. |
SectionEditor(LineEditor editor)
Creates a new
SectionEditor instance taking an editor to chain. |
SectionEditor(LineEditor editor,
String lineSeparator)
Creates a new
SectionEditor instance taking an editor to chain and a string to use for separating lines. |
SectionEditor(String lineSeparator)
Creates a new
SectionEditor instance taking a string to use for separating lines. |
Modifier and Type | Method and Description |
---|---|
protected String |
editLine(String line)
Edits a line.
|
protected void |
editSection(Section section)
Edits a section.
|
protected String |
getOutput(Section section)
Gets the output of the editor.
|
protected Section |
getSection(String line)
Parses the given line to mark the start of a new section.
|
protected boolean |
isSectionFinished(String line)
Parses the given line to mark the end of a section.
|
boolean |
isSectionPresent(String sectionName)
Gets a flag indicating that the input of the editor contained a named section.
|
edit, getLineNumber, getLineSeparator
public SectionEditor()
SectionEditor
instance.public SectionEditor(String lineSeparator)
SectionEditor
instance taking a string to use for separating lines.lineSeparator
- String to use for separating lines.public SectionEditor(LineEditor editor)
SectionEditor
instance taking an editor to chain.editor
- The editor to chain.public SectionEditor(LineEditor editor, String lineSeparator)
SectionEditor
instance taking an editor to chain and a string to use for separating lines.editor
- The editor to chain.lineSeparator
- String to use for separating lines.protected final String editLine(String line) throws IOException
LineEditor
editLine
in class LineEditor
line
- The line to edit or null
, indicating the end of input.line
with or null
, to replace line
with nothing.IOException
- if editing fails.protected Section getSection(String line) throws IOException
line
- The line to parse or null
.line
or null
, if line
does not mark the start of a
section.IOException
- if parsing fails.protected boolean isSectionFinished(String line) throws IOException
line
- The line to parse or null
.true
, if line
marks the end of a section; false
, if line
does not mark
the end of a section.IOException
- if parsing fails.protected void editSection(Section section) throws IOException
This method does not change any content by default. Overriding classes may use this method for editing sections prior to rendering.
section
- The section to edit.NullPointerException
- if section
is null
.IOException
- if editing fails.protected String getOutput(Section section) throws IOException
This method calls method editSection()
for each section of the editor prior to rendering the sections
to produce the output of the editor.
section
- The section to start rendering the editor's output with.NullPointerException
- if section
is null
.IOException
- if editing or rendering fails.public boolean isSectionPresent(String sectionName)
sectionName
- The name of the section to test or null
.true
, if the input of the editor contained a section with name sectionName
;
false
, if the input of the editor did not contain a section with name sectionName
.Copyright © 2005–2014 The JOMC Project. All rights reserved.