Georg Füchsle created ODFTOOLKIT-418:
----------------------------------------
Summary: missing method to find an embedded section
Key: ODFTOOLKIT-418
URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-418
Project: ODF Toolkit
Issue Type: Improvement
Components: simple api
Reporter: Georg Füchsle
Priority: Minor
To handle embedded Sections we miss a method that retrieves an embedded section
by name.
In
http://svn.apache.org/viewvc/incubator/odf/trunk/simple/src/main/java/org/odftoolkit/simple/text/Section.java
we suggest the following code:
{quote}
/**
* recurisve function. looks for an TextSectionElement inside the father
Element 'ele' with the name sectionName
* @param ele
* @param sectionName
* @return null or the wanted TextSectionElement
*/
private static TextSectionElement findChildSectionByName(OdfElement ele,
String sectionName)
\{
if (ele instanceof TextSectionElement)
\{
// is ele the wanted Element?
String name = ((TextSectionElement) ele).getTextNameAttribute();
if (name != null)
\{
if (name.equals(sectionName))
\{
return (TextSectionElement) ele;
\}
\}
\}
// this Element is not the wanted one? then examine all children
Node chdNode = ele.getFirstChild();
while (chdNode != null)
\{
if (chdNode instanceof OdfElement)
\{
TextSectionElement result = findChildSectionByName((OdfElement)
chdNode, sectionName);
if (result != null)
\{
return result;
\}
\}
chdNode = chdNode.getNextSibling();
\}
return null;
\}
{quote}
in
http://svn.apache.org/viewvc/incubator/odf/trunk/simple/src/test/java/org/odftoolkit/simple/text/SectionTest.java
we propose the appropriate test:
{quote}
@Test
public void testGetEmbeddedSectionByName()
\{
try
\{
TextDocument doc =
TextDocument.loadDocument(ResourceUtilities.getTestResourceAsStream("Sections.odt"));
Section sectOut = doc.getSectionByName("InnerSection");
Section sectEmbedded =
sectOut.getEmbeddedSectionByName("EmbedSection");
Assert.assertEquals(true, sectEmbedded != null);
\}
catch (Exception e)
\{
e.printStackTrace();
Assert.fail();
\}
\}
{quote}
see the attached file.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)