Package com.adobe.granite.ui.components
Class AttrBuilder
- java.lang.Object
-
- com.adobe.granite.ui.components.AttrBuilder
-
public class AttrBuilder extends java.lang.Object
A builder to generate HTML attributes. This builder is designed to be secured usingXSSAPI
. It will encode the value automatically. If the value isnull
, it will be ignored.
-
-
Constructor Summary
Constructors Constructor Description AttrBuilder(HttpServletRequest req, XSSAPI xssAPI)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(java.lang.String name, java.lang.Boolean value)
Adds attribute with the given name.void
add(java.lang.String name, java.lang.Double value)
Adds attribute with the given name.void
add(java.lang.String name, java.lang.Integer value)
Adds attribute with the given name.void
add(java.lang.String name, java.lang.String value)
Adds attribute with the given name.void
addBoolean(java.lang.String name, boolean value)
Adds boolean attribute (behaves likedisabled
) for the given name.void
addChecked(boolean checked)
Addschecked
attribute.void
addClass(java.lang.String value)
Addsclass
attribute with the given value.void
addDisabled(boolean disabled)
Addsdisabled
attribute.void
addHref(java.lang.String name, java.lang.String value)
Adds an attribute that behave likehref
attribute.void
addMultiple(boolean multiple)
Addsmultiple
attribute.void
addOther(java.lang.String name, java.lang.String value)
Adds the given name asdata-*
attribute.void
addOthers(java.util.Map<java.lang.String,java.lang.Object> data, java.lang.String... exclusions)
Adds the given data asdata-*
attributes.void
addRel(java.lang.String value)
Adds relationship.void
addSelected(boolean selected)
Addsselected
attribute.java.lang.String
build()
Builds the attributes in the form of<attr-name>='<attr-value>'*
.void
build(java.io.Writer out)
Builds the attributes in the form of<attr-name>='<attr-value>'*
*.java.util.Map<java.lang.String,java.lang.String>
getData()
Gets the rawMap
of attributes, with un-encoded valuesboolean
isEmpty()
Returnstrue
if there is no attribute in this builder,false
otherwise.void
set(java.lang.String name, java.lang.String value)
Sets attribute with the given name.java.lang.String
toString()
-
-
-
Constructor Detail
-
AttrBuilder
public AttrBuilder(@Nonnull HttpServletRequest req, @Nonnull XSSAPI xssAPI)
-
-
Method Detail
-
getData
@Nonnull public java.util.Map<java.lang.String,java.lang.String> getData()
Gets the rawMap
of attributes, with un-encoded values- Returns:
Map
of attributes
-
addRel
public void addRel(@CheckForNull java.lang.String value)
Adds relationship. Currently it is implemented asclass
attribute.- Parameters:
value
- the relationship to add
-
addClass
public void addClass(@CheckForNull java.lang.String value)
Addsclass
attribute with the given value.- Parameters:
value
- the class attribute to add
-
addHref
public void addHref(@CheckForNull java.lang.String name, @CheckForNull java.lang.String value)
Adds an attribute that behave likehref
attribute. i.e. the value will be prepended with context path (if absolute path) and checked usingXSSAPI.getValidHref(String)
.- Parameters:
name
- the name of the attribute to addvalue
- the value of the specified attribute
-
addDisabled
public void addDisabled(boolean disabled)
Addsdisabled
attribute.- Parameters:
disabled
- the boolean value of thedisabled
attribute
-
addChecked
public void addChecked(boolean checked)
Addschecked
attribute.- Parameters:
checked
- the boolean value of thechecked
attribute
-
addSelected
public void addSelected(boolean selected)
Addsselected
attribute.- Parameters:
selected
- the boolean value of theselected
attribute
-
addMultiple
public void addMultiple(boolean multiple)
Addsmultiple
attribute.- Parameters:
multiple
- the boolean value of themultiple
attribute
-
addBoolean
public void addBoolean(@CheckForNull java.lang.String name, boolean value)
Adds boolean attribute (behaves likedisabled
) for the given name. When the given value istrue
, it will be printed as "disabled=''", instead of "disabled='true'". When the given value isfalse
, it will NOT be printed, instead of "disabled='false'".- Parameters:
name
- the name of the boolean attribute to addvalue
- the boolean value of the attribute
-
addOther
public void addOther(@CheckForNull java.lang.String name, @CheckForNull java.lang.String value)
Adds the given name asdata-*
attribute.- Parameters:
name
- the name of thedata-*
attribute to addvalue
- the value of the attribute
-
addOthers
public void addOthers(@Nonnull java.util.Map<java.lang.String,java.lang.Object> data, @Nonnull java.lang.String... exclusions)
Adds the given data asdata-*
attributes. Entries with keys specified in exclusions parameter or having namespace (e.g. "jcr:primaryType") will be excluded.- Parameters:
data
- the map containing key/value pairs to add asdata-*
attributesexclusions
- the keys which must not be added asdata-*
attributes
-
add
public void add(@CheckForNull java.lang.String name, @CheckForNull java.lang.Boolean value)
Adds attribute with the given name. The value will be added to existing attribute using space-delimited convention. e.g. class="class1 class2"- Parameters:
name
- the name of the attribute to addvalue
- the boolean value of the attribute
-
add
public void add(@CheckForNull java.lang.String name, @CheckForNull java.lang.Integer value)
Adds attribute with the given name. The value will be added to existing attribute using space-delimited convention. e.g. class="class1 class2"- Parameters:
name
- the name of the attribute to addvalue
- the integer value of the attribute
-
add
public void add(@CheckForNull java.lang.String name, @CheckForNull java.lang.Double value)
Adds attribute with the given name. The value will be added to existing attribute using space-delimited convention. e.g. class="class1 class2"- Parameters:
name
- the name of the attribute to addvalue
- the double value of the attribute
-
add
public void add(@CheckForNull java.lang.String name, @CheckForNull java.lang.String value)
Adds attribute with the given name. The value will be added to existing attribute using space-delimited convention. e.g. class="class1 class2"- Parameters:
name
- the name of the attribute to addvalue
- the string value of the attribute
-
set
public void set(@CheckForNull java.lang.String name, @CheckForNull java.lang.String value)
Sets attribute with the given name. Existing value previously set will be replaced by the given value.- Parameters:
name
- the name of the attribute to set or replace (if exists)value
- the string value of the attribute
-
isEmpty
public boolean isEmpty()
Returnstrue
if there is no attribute in this builder,false
otherwise.- Returns:
true
if there is no attribute in this builder,false
otherwise
-
build
public java.lang.String build()
Builds the attributes in the form of<attr-name>='<attr-value>'*
.- Returns:
- the string containing the built attributes
-
build
public void build(@Nonnull java.io.Writer out) throws java.io.IOException
Builds the attributes in the form of<attr-name>='<attr-value>'*
*.- Parameters:
out
- the writer- Throws:
java.io.IOException
- in case there's an error when appending to the writer
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-