Public:BWmeta service/Java mapping/Rich text

From YaddaWiki

(Difference between revisions)
Jump to: navigation, search
(Adding RichTextSerialization utility class)
(Methods)
Line 14: Line 14:
* <code>String toText()</code> – returns a flattened text view of the rich text.  It's a concatenation of text contents of the tree list visited in the infix order.
* <code>String toText()</code> – returns a flattened text view of the rich text.  It's a concatenation of text contents of the tree list visited in the infix order.
* <code>List<YRichText.Part> toParts()</code> – returns a list of trees which represent the rich text. It could return null - this means that this RichText contains only one string comtent which could be obtained via toText() method
* <code>List<YRichText.Part> toParts()</code> – returns a list of trees which represent the rich text. It could return null - this means that this RichText contains only one string comtent which could be obtained via toText() method
 +
* <code>String toXmlFragment()</code> – serializes a rich text to an XML fragment. It returns null
 +
if YrichText contains only single text.
=== Changes in classes with a <code>YRichText</code> property ===
=== Changes in classes with a <code>YRichText</code> property ===

Revision as of 13:30, 19 October 2010

Service details
NameBWmeta
Code location
(relative to SVN root)
projects/dir/bwmeta-core
Javadoc
Contact personJakub Jurkiewicz

Support for rich text, introduced in BWmeta 2.0.0 calls for changes in the "Y" model.

Contents

Adding YRichText class

YRichText is mutable.

Constructors

  • YRichText(String) – constructor from plain text.
  • YRichText(List<YRichText.Part>) – constructor from list of trees.

Methods

  • String toText() – returns a flattened text view of the rich text. It's a concatenation of text contents of the tree list visited in the infix order.
  • List<YRichText.Part> toParts() – returns a list of trees which represent the rich text. It could return null - this means that this RichText contains only one string comtent which could be obtained via toText() method
  • String toXmlFragment() – serializes a rich text to an XML fragment. It returns null

if YrichText contains only single text.

Changes in classes with a YRichText property

YRichText-related methods (other than the ones below) which have been already added should be @Deprecated and subsequently removed.

YName, YDescription

  • Every constructor from String text has a corresponding constructor from YRichText text.
  • String getText() – returns flattened text.
  • YRichText getRichText() – returns rich text.
  • T setText(String) – sets plain text.
  • T setRichText(YRichText) – sets rich text.

YAttribute

  • Every constructor from String value has a corresponding constructor from YRichText value.
  • String getValue() – returns plain text.
  • YRichText getRichValue() – returns rich text.
  • YAttribute setValue(String) – sets plain text.
  • YAttribute setRichValue(YRichText) – sets rich text.

YTagList

  • List<String> getValues() – returns unmodifiable, flattened text view of the list of tags.
  • List<YRichText> getRichValues() – returns modifiable list of rich text tags.
  • YTagList setValues(Collection<String>) – sets plain text values.
  • YTagList setRichValues(Collection<YRichText>) – sets rich text values.
  • YTagList addValue(String) – adds a plain text value.
  • YTagList addRichValue(YRichText) – adds a rich text value.

Contracts

  • For any String text != null the following assert should pass:
yFoo.setText(text);
// ... potential serialization and deserialization ...
// ... conversion to "DL" model and back ...
// ... or all of the above in any order ...
assertEquals(text, yFoo.getText());
  • For any String text != null the following assert should pass:
yFoo.setText(text);
// ... conversion to "DL" model ...
assertEquals(text, dFoo.getText());
  • Example:
yName.setText("<b xmlns="http://www.w3.org/1999/xhtml">1 &lt; 2</b>");
// ... conversion Y -> DL ...
assertEquals("<b xmlns="http://www.w3.org/1999/xhtml">1 &lt; 2</b>", dName.getText());
// ... conversion DL -> Y ...
assertEquals("<b xmlns="http://www.w3.org/1999/xhtml">1 &lt; 2</b>", yName.getText());
  • For any XML fragment foo if BWmeta 2.0.0 contains <name>foo</name> then:
assertEquals("foo", yName.getXml());
  • After all processes without editing we got eqal rich text objects
YrichText text=yFoo.getRichText();
// ... potential serialization and deserialization ...
// ... conversion to "DL" model and back ...
// .. no edition etc...
// ... or all of the above in any order ...
YrichText text1=yFoo.getRichText();
assertEquals(text, text1);
  • Partticularly:
YrichText rtext=yFoo.getRichText();
String text=yFoo.getText();
yFoo.setText(text);
YrichText rtext1=yFoo.getRichText();
assertEquals(rtext.getText(), rtext1.getText());


  • Partticularly:
YrichText rtext=yFoo.getRichText();
String text=yFoo.getText();
yFoo.setText(text);
//yFoo serialize deserilize
YrichText rtext1=yFoo.getRichText();
assertEquals(rtext, rtext1);


  • This constraints means that from:
yName.setText("1 < 2")

we get:

yName.getText().equals("1 < 2")
Personal tools