Refactored code (TagAttribute, DisplayMode for attribute, tests…)
This commit is contained in:
parent
fb8cd7beef
commit
f360eb89f4
8 changed files with 522 additions and 91 deletions
29
src/fr/devinsy/xidyn/data/DisplayMode.java
Normal file
29
src/fr/devinsy/xidyn/data/DisplayMode.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (C) 2006-2017,2020 Christian Pierre MOMON
|
||||
*
|
||||
* This file is part of Xidyn.
|
||||
*
|
||||
* Xidyn is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xidyn is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Xidyn. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
package fr.devinsy.xidyn.data;
|
||||
|
||||
/**
|
||||
* The Enum DisplayMode.
|
||||
*/
|
||||
public enum DisplayMode
|
||||
{
|
||||
REPLACE,
|
||||
APPEND,
|
||||
IGNORE
|
||||
};
|
|
@ -20,6 +20,8 @@ package fr.devinsy.xidyn.data;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
import fr.devinsy.strings.StringsUtils;
|
||||
|
||||
/**
|
||||
* The Class SimpleTagData.
|
||||
*
|
||||
|
@ -47,17 +49,10 @@ public class SimpleTagData implements Serializable, TagData
|
|||
ALL_ROWS
|
||||
}
|
||||
|
||||
public enum MODE
|
||||
{
|
||||
REPLACE,
|
||||
APPEND,
|
||||
IGNORE
|
||||
};
|
||||
|
||||
private IterationStrategy iterationStrategy;
|
||||
IterationStrategy iterationStrategy;
|
||||
private TagAttributes attributes;
|
||||
private boolean excludeSection;
|
||||
private MODE displayMode = MODE.REPLACE;
|
||||
private DisplayMode displayMode = DisplayMode.REPLACE;
|
||||
private String content;
|
||||
|
||||
/**
|
||||
|
@ -65,11 +60,7 @@ public class SimpleTagData implements Serializable, TagData
|
|||
*/
|
||||
public SimpleTagData()
|
||||
{
|
||||
this.attributes = null;
|
||||
this.excludeSection = false;
|
||||
this.displayMode = MODE.REPLACE;
|
||||
this.content = null;
|
||||
this.iterationStrategy = IterationStrategy.ALL_ROWS;
|
||||
this(null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -80,9 +71,9 @@ public class SimpleTagData implements Serializable, TagData
|
|||
*/
|
||||
public SimpleTagData(final String text)
|
||||
{
|
||||
this.attributes = null;
|
||||
this.attributes = new TagAttributes();
|
||||
this.excludeSection = false;
|
||||
this.displayMode = MODE.REPLACE;
|
||||
this.displayMode = DisplayMode.REPLACE;
|
||||
this.content = text;
|
||||
this.iterationStrategy = IterationStrategy.ALL_ROWS;
|
||||
}
|
||||
|
@ -127,40 +118,20 @@ public class SimpleTagData implements Serializable, TagData
|
|||
{
|
||||
TagAttributes result;
|
||||
|
||||
if (this.attributes == null)
|
||||
{
|
||||
this.attributes = new TagAttributes();
|
||||
}
|
||||
|
||||
result = this.attributes;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
public String display()
|
||||
{
|
||||
String result;
|
||||
|
||||
result = this.content;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display mode.
|
||||
*
|
||||
* @return the mode
|
||||
*/
|
||||
public MODE displayMode()
|
||||
public DisplayMode displayMode()
|
||||
{
|
||||
MODE result;
|
||||
DisplayMode result;
|
||||
|
||||
result = this.displayMode;
|
||||
|
||||
|
@ -189,11 +160,76 @@ public class SimpleTagData implements Serializable, TagData
|
|||
* the label
|
||||
* @return the attribute
|
||||
*/
|
||||
public String getAttribute(final String label)
|
||||
public TagAttribute getAttribute(final String label)
|
||||
{
|
||||
TagAttribute result;
|
||||
|
||||
result = this.attributes.getAttribute(label);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the attribute mode.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @return the attribute mode
|
||||
*/
|
||||
public DisplayMode getAttributeMode(final String label)
|
||||
{
|
||||
DisplayMode result;
|
||||
|
||||
TagAttribute attribute = this.attributes.get(label);
|
||||
if (attribute == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = attribute.getMode();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the attribute value.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @return the attribute value
|
||||
*/
|
||||
public String getAttributeValue(final String label)
|
||||
{
|
||||
String result;
|
||||
|
||||
result = this.attributes.getAttribute(label);
|
||||
TagAttribute attribute = this.attributes.get(label);
|
||||
if (attribute == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = attribute.getValue();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
public String getContent()
|
||||
{
|
||||
String result;
|
||||
|
||||
result = this.content;
|
||||
|
||||
//
|
||||
return result;
|
||||
|
@ -224,7 +260,66 @@ public class SimpleTagData implements Serializable, TagData
|
|||
*/
|
||||
public void setAttribute(final String label, final String value)
|
||||
{
|
||||
this.attributes.put(label, value);
|
||||
if (this.attributes.containsKey(label))
|
||||
{
|
||||
this.attributes.get(label).setValue(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (StringsUtils.containsAnyIgnoreCase(label, "style", "class"))
|
||||
{
|
||||
this.attributes.put(label, new TagAttribute(label, value, DisplayMode.APPEND));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.attributes.put(label, new TagAttribute(label, value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the attribute.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @param value
|
||||
* the value
|
||||
* @param mode
|
||||
* the mode
|
||||
*/
|
||||
public void setAttribute(final String label, final String value, final DisplayMode mode)
|
||||
{
|
||||
if (this.attributes.containsKey(label))
|
||||
{
|
||||
TagAttribute attribute = this.attributes.get(label);
|
||||
attribute.setValue(value);
|
||||
attribute.setMode(mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.attributes.put(label, new TagAttribute(label, value, mode));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the attribute mode.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @param mode
|
||||
* the mode
|
||||
*/
|
||||
public void setAttributeMode(final String label, final DisplayMode mode)
|
||||
{
|
||||
if (this.attributes.containsKey(label))
|
||||
{
|
||||
this.attributes.get(label).setMode(mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
TagAttribute tag = new TagAttribute(label, null, mode);
|
||||
this.attributes.put(label, tag);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -244,7 +339,7 @@ public class SimpleTagData implements Serializable, TagData
|
|||
* @param displayMode
|
||||
* the new display mode
|
||||
*/
|
||||
public void setDisplayMode(final MODE displayMode)
|
||||
public void setDisplayMode(final DisplayMode displayMode)
|
||||
{
|
||||
this.displayMode = displayMode;
|
||||
}
|
||||
|
|
113
src/fr/devinsy/xidyn/data/TagAttribute.java
Normal file
113
src/fr/devinsy/xidyn/data/TagAttribute.java
Normal file
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* Copyright (C) 2020 Christian Pierre MOMON
|
||||
*
|
||||
* This file is part of Xidyn.
|
||||
*
|
||||
* Xidyn is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Xidyn is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Xidyn. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
package fr.devinsy.xidyn.data;
|
||||
|
||||
/**
|
||||
* The Class TagAttribute.
|
||||
*/
|
||||
public class TagAttribute
|
||||
{
|
||||
private DisplayMode mode;
|
||||
private String label;
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* Instantiates a new tag attribute.
|
||||
*
|
||||
* @param value
|
||||
* the value
|
||||
*/
|
||||
public TagAttribute(final String label, final String value)
|
||||
{
|
||||
this(label, value, DisplayMode.REPLACE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new tag attribute.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @param value
|
||||
* the value
|
||||
* @param mode
|
||||
* the mode
|
||||
*/
|
||||
public TagAttribute(final String label, final String value, final DisplayMode mode)
|
||||
{
|
||||
this.mode = mode;
|
||||
this.label = label;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append value.
|
||||
*
|
||||
* @param value
|
||||
* the value
|
||||
*/
|
||||
public void appendValue(final String value)
|
||||
{
|
||||
if (this.value == null)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.value = this.value + " " + value;
|
||||
}
|
||||
}
|
||||
|
||||
public String getLabel()
|
||||
{
|
||||
return this.label;
|
||||
}
|
||||
|
||||
public DisplayMode getMode()
|
||||
{
|
||||
return this.mode;
|
||||
}
|
||||
|
||||
public String getValue()
|
||||
{
|
||||
return this.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the mode.
|
||||
*
|
||||
* @param mode
|
||||
* the new mode
|
||||
*/
|
||||
public void setMode(final DisplayMode mode)
|
||||
{
|
||||
if (mode == null)
|
||||
{
|
||||
throw new IllegalArgumentException("Null parameter.");
|
||||
}
|
||||
else
|
||||
{
|
||||
this.mode = mode;
|
||||
}
|
||||
}
|
||||
|
||||
public void setValue(final String value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
||||
* Copyright (C) 2006-2017,2020 Christian Pierre MOMON
|
||||
*
|
||||
* This file is part of Xidyn.
|
||||
*
|
||||
|
@ -19,6 +19,7 @@
|
|||
package fr.devinsy.xidyn.data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* The Class TagAttributes.
|
||||
|
@ -26,8 +27,7 @@ import java.util.HashMap;
|
|||
* Note: no more AttrValue as in Brill, because the exception of style is
|
||||
* managed in the attribute merging on the "style" string detection.
|
||||
*/
|
||||
|
||||
public class TagAttributes extends HashMap<String, String>
|
||||
public class TagAttributes extends HashMap<String, TagAttribute> implements Iterable<TagAttribute>
|
||||
{
|
||||
private static final long serialVersionUID = 2802739066295665336L;
|
||||
|
||||
|
@ -62,11 +62,11 @@ public class TagAttributes extends HashMap<String, String>
|
|||
{
|
||||
if (this.containsKey(label))
|
||||
{
|
||||
this.put(label, this.get(label) + " " + value);
|
||||
this.get(label).appendValue(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.put(label, value);
|
||||
this.put(label, new TagAttribute(label, value));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,9 +77,9 @@ public class TagAttributes extends HashMap<String, String>
|
|||
* the label
|
||||
* @return the attribute
|
||||
*/
|
||||
public String getAttribute(final String label)
|
||||
public TagAttribute getAttribute(final String label)
|
||||
{
|
||||
String result;
|
||||
TagAttribute result;
|
||||
|
||||
if (this.containsKey(label))
|
||||
{
|
||||
|
@ -95,15 +95,18 @@ public class TagAttributes extends HashMap<String, String>
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the attribute.
|
||||
* Iterator.
|
||||
*
|
||||
* @param label
|
||||
* the label
|
||||
* @param value
|
||||
* the value
|
||||
* @return the iterator
|
||||
*/
|
||||
public void setAttribute(final String label, final String value)
|
||||
@Override
|
||||
public Iterator<TagAttribute> iterator()
|
||||
{
|
||||
this.put(label, value);
|
||||
Iterator<TagAttribute> result;
|
||||
|
||||
result = this.values().iterator();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -428,7 +428,7 @@ public class TagDataManager
|
|||
{
|
||||
SimpleTagData tag = this.getIdData(id);
|
||||
|
||||
tag.attributes().setAttribute("class", DomPresenterCore.NODISPLAY_CLASS);
|
||||
tag.setAttribute("class", DomPresenterCore.NODISPLAY_CLASS);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -464,7 +464,7 @@ public class TagDataManager
|
|||
{
|
||||
SimpleTagData tag = this.getIdData(id, line);
|
||||
|
||||
tag.attributes().setAttribute(label, value);
|
||||
tag.setAttribute(label, value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -504,7 +504,7 @@ public class TagDataManager
|
|||
{
|
||||
SimpleTagData tag = this.getIdData(id, line, column);
|
||||
|
||||
tag.attributes().setAttribute(label, value);
|
||||
tag.setAttribute(label, value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -536,7 +536,7 @@ public class TagDataManager
|
|||
{
|
||||
SimpleTagData tag = this.getIdData(id);
|
||||
|
||||
tag.attributes().setAttribute(label, value);
|
||||
tag.setAttribute(label, value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||
* Copyright (C) 2006-2018,2020 Christian Pierre MOMON
|
||||
*
|
||||
* This file is part of Xidyn.
|
||||
*
|
||||
|
@ -73,7 +73,7 @@ class XidynDemo
|
|||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
System.out.println("Demo failed: " + exception.getMessage());
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
@ -107,7 +107,8 @@ class XidynDemo
|
|||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
System.out.println("Demo failed: " + exception.getMessage());
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,7 +149,8 @@ class XidynDemo
|
|||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
System.out.println("Demo failed: " + exception.getMessage());
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,7 +192,8 @@ class XidynDemo
|
|||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
System.out.println(exception.getMessage());
|
||||
System.out.println("Demo failed: " + exception.getMessage());
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,9 @@ import org.w3c.dom.Node;
|
|||
import org.w3c.dom.NodeList;
|
||||
|
||||
import fr.devinsy.xidyn.XidynException;
|
||||
import fr.devinsy.xidyn.data.DisplayMode;
|
||||
import fr.devinsy.xidyn.data.SimpleTagData;
|
||||
import fr.devinsy.xidyn.data.TagAttribute;
|
||||
import fr.devinsy.xidyn.data.TagAttributes;
|
||||
import fr.devinsy.xidyn.data.TagData;
|
||||
import fr.devinsy.xidyn.data.TagDataListById;
|
||||
|
@ -349,26 +351,26 @@ public class DomPresenterCore
|
|||
// Put model attributes in the merged attributes list.
|
||||
if (dataAttributes != null)
|
||||
{
|
||||
Iterator<Map.Entry<String, String>> iterator = dataAttributes.entrySet().iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
for (TagAttribute attribute : dataAttributes)
|
||||
{
|
||||
Map.Entry<String, String> attribute = iterator.next();
|
||||
|
||||
if (mergedAttributes.containsKey(attribute.getKey()))
|
||||
if (mergedAttributes.containsKey(attribute.getLabel()))
|
||||
{
|
||||
if (attribute.getKey().equalsIgnoreCase("style"))
|
||||
if (attribute.getMode() == DisplayMode.APPEND)
|
||||
{
|
||||
mergedAttributes.put(attribute.getKey(), mergedAttributes.get(attribute.getKey()) + attribute.getValue());
|
||||
mergedAttributes.put(attribute.getLabel(), mergedAttributes.get(attribute.getLabel()) + " " + attribute.getValue());
|
||||
}
|
||||
else if (attribute.getMode() == DisplayMode.REPLACE)
|
||||
{
|
||||
mergedAttributes.put(attribute.getLabel(), attribute.getValue());
|
||||
}
|
||||
else
|
||||
{
|
||||
mergedAttributes.put(attribute.getKey(), attribute.getValue());
|
||||
// Keep the already merged value.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mergedAttributes.put(attribute.getKey(), attribute.getValue());
|
||||
mergedAttributes.put(attribute.getLabel(), attribute.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -619,7 +621,7 @@ public class DomPresenterCore
|
|||
{
|
||||
SimpleTagData data = (SimpleTagData) dataCore;
|
||||
|
||||
String theClass = data.attributes().getAttribute("class");
|
||||
String theClass = data.getAttributeValue("class");
|
||||
|
||||
if ((theClass == null) || (!theClass.equals(NODISPLAY_CLASS)))
|
||||
{
|
||||
|
@ -630,7 +632,7 @@ public class DomPresenterCore
|
|||
// Build attributes.
|
||||
result.append(processAttributes(attrs, data.attributes(), suffix));
|
||||
|
||||
if (((node.getChildNodes() == null) || (node.getChildNodes().getLength() == 0)) && ((data == null) || (data.display() == null)))
|
||||
if (((node.getChildNodes() == null) || (node.getChildNodes().getLength() == 0)) && ((data == null) || (data.getContent() == null)))
|
||||
{
|
||||
// Close the tag.
|
||||
result.append(" />");
|
||||
|
@ -639,16 +641,14 @@ public class DomPresenterCore
|
|||
{
|
||||
result.append('>');
|
||||
|
||||
// CHANGED, cpm:
|
||||
|
||||
// Insert data.
|
||||
if ((data == null) || (data.display() == null))
|
||||
if ((data == null) || (data.getContent() == null))
|
||||
{
|
||||
processChildren(result, node, datas, suffix);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.append(data.display());
|
||||
result.append(data.getContent());
|
||||
}
|
||||
|
||||
// Close the tag.
|
||||
|
@ -662,20 +662,20 @@ public class DomPresenterCore
|
|||
{
|
||||
TagDataListByIndex tags = (TagDataListByIndex) dataCore;
|
||||
|
||||
int nbLines = tags.size();
|
||||
for (int nLine = 0; nLine < nbLines; nLine++)
|
||||
int lineCount = tags.size();
|
||||
for (int lineIndex = 0; lineIndex < lineCount; lineIndex++)
|
||||
{
|
||||
if (tags.elementAt(nLine) instanceof SimpleTagData)
|
||||
if (tags.elementAt(lineIndex) instanceof SimpleTagData)
|
||||
{
|
||||
SimpleTagData data = (SimpleTagData) tags.elementAt(nLine);
|
||||
SimpleTagData data = (SimpleTagData) tags.elementAt(lineIndex);
|
||||
|
||||
// Open the tag.
|
||||
result.append("<");
|
||||
result.append(node.getNodeName());
|
||||
|
||||
result.append(processAttributes(attrs, data.attributes(), Integer.toString(nLine)));
|
||||
result.append(processAttributes(attrs, data.attributes(), Integer.toString(lineIndex)));
|
||||
|
||||
if (((node.getChildNodes() == null) || (node.getChildNodes().getLength() == 0)) && ((data == null) || (data.display() == null)))
|
||||
if (((node.getChildNodes() == null) || (node.getChildNodes().getLength() == 0)) && ((data == null) || (data.getContent() == null)))
|
||||
{
|
||||
// Close the tag.
|
||||
result.append(" />\n");
|
||||
|
@ -687,13 +687,13 @@ public class DomPresenterCore
|
|||
// CHANGED, cpm
|
||||
|
||||
// Insert data.
|
||||
if ((data == null) || (data.display() == null))
|
||||
if ((data == null) || (data.getContent() == null))
|
||||
{
|
||||
processChildren(result, node, datas, suffix);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.append(data.display());
|
||||
result.append(data.getContent());
|
||||
}
|
||||
|
||||
// Close the tag.
|
||||
|
@ -705,9 +705,9 @@ public class DomPresenterCore
|
|||
else
|
||||
{
|
||||
// Manage a Hashmap.
|
||||
TagDataListById data = (TagDataListById) tags.elementAt(nLine);
|
||||
TagDataListById data = (TagDataListById) tags.elementAt(lineIndex);
|
||||
|
||||
processElementWithId(result, node, attrs, idAttr, data, Integer.toString(nLine));
|
||||
processElementWithId(result, node, attrs, idAttr, data, Integer.toString(lineIndex));
|
||||
result.append('\n');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,4 +67,192 @@ public class TagDataManagerTest
|
|||
|
||||
Assertions.assertThat(target).isEqualTo(source);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 03.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test03a() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' class='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "class", "goodClass");
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span id=\"foo\" class=\"bare goodClass\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 04.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test03b() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' class='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "class", "goodClass");
|
||||
data.getIdData("foo").setAttributeMode("class", DisplayMode.APPEND);
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span id=\"foo\" class=\"bare goodClass\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 05.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test03c() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' class='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "class", "goodClass");
|
||||
data.getIdData("foo").setAttributeMode("class", DisplayMode.REPLACE);
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span id=\"foo\" class=\"goodClass\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 06.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test06a() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' style='width: 100px;'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "style", "goodStyle;");
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span style=\"width: 100px; goodStyle;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test06b() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' style='width: 100px;'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "style", "goodStyle;");
|
||||
data.getIdData("foo").setAttributeMode("style", DisplayMode.APPEND);
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span style=\"width: 100px; goodStyle;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 06 c.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test06c() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' style='width: 100px;'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "style", "goodStyle;");
|
||||
data.getIdData("foo").setAttributeMode("style", DisplayMode.REPLACE);
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span style=\"goodStyle;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 9a.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test09a() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' name='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "name", "good;");
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span name=\"good;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 9 b.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test09b() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' name='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "name", "good;");
|
||||
data.getIdData("foo").setAttributeMode("name", DisplayMode.REPLACE);
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span name=\"good;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test 9 c.
|
||||
*
|
||||
* @throws Exception
|
||||
* the exception
|
||||
*/
|
||||
@Test
|
||||
public void test09c() throws Exception
|
||||
{
|
||||
String source = "<span id='foo' name='bare'>FOOO</span>";
|
||||
|
||||
TagDataManager data = new TagDataManager();
|
||||
data.setAttribute("foo", "name", "good;");
|
||||
data.getIdData("foo").setAttributeMode("name", DisplayMode.APPEND);
|
||||
|
||||
String target = PresenterUtils.dynamize(source, data).toString();
|
||||
|
||||
String goal = "<span name=\"bare good;\" id=\"foo\">FOOO</span>";
|
||||
|
||||
Assertions.assertThat(target).isEqualTo(goal);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue