This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new c3be001f EMPIREDB-422 Value format optimization
c3be001f is described below
commit c3be001f59564a98a6f4da44386fe2da7d764bc9
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Jun 3 15:15:58 2024 +0200
EMPIREDB-422
Value format optimization
---
.../apache/empire/jsf2/components/ControlTag.java | 2 +-
.../org/apache/empire/jsf2/components/LinkTag.java | 5 +-
.../apache/empire/jsf2/components/MenuItemTag.java | 3 +-
.../apache/empire/jsf2/components/MenuListTag.java | 3 +-
.../apache/empire/jsf2/components/SelectTag.java | 4 +-
.../apache/empire/jsf2/components/TitleTag.java | 3 +-
.../apache/empire/jsf2/components/ValueTag.java | 2 +-
.../empire/jsf2/controls/CheckboxInputControl.java | 8 +--
.../apache/empire/jsf2/controls/InputControl.java | 66 ++++++++++++----------
.../empire/jsf2/controls/RadioInputControl.java | 3 +-
.../empire/jsf2/controls/TextInputControl.java | 9 ++-
.../empire/jsf2/utils/TagEncodingHelper.java | 55 +++++++-----------
.../org/apache/empire/commons/StringUtils.java | 2 +-
13 files changed, 81 insertions(+), 84 deletions(-)
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
index d8e3d787..97c90ea6 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
@@ -395,7 +395,7 @@ public class ControlTag extends UIInput implements
NamingContainer
helper.writeComponentId(writer, false);
// style class
String controlClass =
helper.getTagAttributeStringEx("controlClass");
- String styleClass = helper.getTagAttributeString("styleClass");
+ String styleClass =
helper.getTagAttributeString(InputControl.CSS_STYLE_CLASS);
String contextClass = helper.getContextStyleClass();
helper.writeStyleClass(writer, TagStyleClass.CONTROL.get(),
controlClass, styleClass, contextClass);
}
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
index 713f567f..73e5ed1e 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
@@ -257,7 +257,7 @@ public class LinkTag extends UIOutput // implements
NamingContainer
protected String getLinkStyleClass()
{
- return StringUtils.toString(getAttributes().get("styleClass"));
+ return
StringUtils.toString(getAttributes().get(InputControl.CSS_STYLE_CLASS));
}
protected boolean isLinkDisabled()
@@ -281,7 +281,8 @@ public class LinkTag extends UIOutput // implements
NamingContainer
StringResponseWriter srw = new StringResponseWriter();
try
{
- control.renderValue(vi, srw);
+ Object value = vi.getValue(true);
+ control.renderValue(value, vi, srw);
}
catch (IOException e)
{ // Error rendering value
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
index 1ea8fd36..efc3335a 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
@@ -28,6 +28,7 @@ import javax.faces.context.ResponseWriter;
import org.apache.empire.commons.ObjectUtils;
import org.apache.empire.commons.StringUtils;
+import org.apache.empire.jsf2.controls.InputControl;
import org.apache.empire.jsf2.utils.TagEncodingHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -272,7 +273,7 @@ public class MenuItemTag extends LinkTag
protected String getStyleClass()
{
- String styleClass = helper.getTagAttributeString("styleClass");
+ String styleClass =
helper.getTagAttributeString(InputControl.CSS_STYLE_CLASS);
if (parentMenu!=null)
{
// Style Class
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
index 24b75f98..3929024e 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
@@ -27,6 +27,7 @@ import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.apache.empire.commons.StringUtils;
+import org.apache.empire.jsf2.controls.InputControl;
import org.apache.empire.jsf2.utils.TagEncodingHelper;
import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
import org.apache.empire.jsf2.utils.TagStyleClass;
@@ -198,7 +199,7 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
protected String getStyleClass()
{
- String styleClass = helper.getTagAttributeString("styleClass");
+ String styleClass =
helper.getTagAttributeString(InputControl.CSS_STYLE_CLASS);
if (styleClass!=null && styleClass.indexOf("{}")>0)
{ // add level to style class
styleClass = StringUtils.replace(styleClass, "{}",
String.valueOf(level));
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
index 64912ecd..237cc4ba 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
@@ -425,10 +425,10 @@ public class SelectTag extends UIInput implements
NamingContainer
Map<String, Object> tagMap = getAttributes();
Map<String, Object> inputMap = input.getAttributes();
// css style
- String userStyle = StringUtils.toString(tagMap.get("styleClass"));
+ String userStyle =
StringUtils.toString(tagMap.get(InputControl.CSS_STYLE_CLASS));
// String cssStyle =
TagEncodingHelper.assembleStyleClassString(TagStyleClass.SELECT.get(), null,
null, userStyle);
String cssStyle = TagStyleClass.SELECT.append(userStyle);
- inputMap.put("styleClass", cssStyle);
+ inputMap.put(InputControl.CSS_STYLE_CLASS, cssStyle);
// other
copyAttribute(inputMap, tagMap, "style");
copyAttribute(inputMap, tagMap, "tabindex");
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
index ec1be2b7..15bcb61c 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
@@ -28,6 +28,7 @@ import javax.faces.context.ResponseWriter;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.Column;
import org.apache.empire.exceptions.InvalidArgumentException;
+import org.apache.empire.jsf2.controls.InputControl;
import org.apache.empire.jsf2.utils.TagEncodingHelper;
import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
import org.apache.empire.jsf2.utils.TagStyleClass;
@@ -100,7 +101,7 @@ public class TitleTag extends UIOutput // implements
NamingContainer
Map<String, Object> map = getAttributes();
String tag = StringUtils.toString(map.get("tag"));
// Check
- if (tag == null && title == null && !map.containsKey("styleClass"))
+ if (tag == null && title == null &&
!map.containsKey(InputControl.CSS_STYLE_CLASS))
return null;
// Write tag
if (StringUtils.isEmpty(tag))
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
index 3bb84924..d924388a 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
@@ -101,7 +101,7 @@ public class ValueTag extends UIOutput // implements
NamingContainer
// Map<String, Object> map = getAttributes();
String tagName = helper.getTagAttributeString("tag");
String tooltip =
helper.getValueTooltip(helper.getTagAttributeValue("title"));
- String styleClass = helper.getTagAttributeString("styleClass");
+ String styleClass =
helper.getTagAttributeString(InputControl.CSS_STYLE_CLASS);
// Check
if (StringUtils.isNotEmpty(tagName) ||
StringUtils.isNotEmpty(styleClass) || StringUtils.isNotEmpty(tooltip))
{ // tagname
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
index edc2d8d9..ff75141e 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/CheckboxInputControl.java
@@ -49,16 +49,16 @@ public class CheckboxInputControl extends InputControl
}
@Override
- public void renderValue(ValueInfo vi, ResponseWriter writer)
+ public void renderValue(Object value, ValueInfo vi, ResponseWriter writer)
throws IOException
{
- Boolean value = (Boolean) vi.getValue(true);
+ Boolean boolValue = (value instanceof Boolean ? (Boolean)value :
(ObjectUtils.isEmpty(value) ? null : ObjectUtils.getBoolean(value)));
writer.startElement(HTML_TAG_DIV, null);
- if (value == null)
+ if (boolValue == null)
{
// value not set
writer.writeAttribute(HTML_ATTR_CLASS, "eTypeBoolNull", null);
- } else if (value)
+ } else if (boolValue)
{
// value is true
writer.writeAttribute(HTML_ATTR_CLASS, "eTypeBoolTrue", null);
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
index f22bcffa..84bdfda1 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
@@ -50,33 +50,39 @@ import org.slf4j.LoggerFactory;
public abstract class InputControl
{
- private static final Logger log =
LoggerFactory.getLogger(InputControl.class);
-
+ private static final Logger log =
LoggerFactory.getLogger(InputControl.class);
+
+ // StyleClass
+ public static final String CSS_STYLE_CLASS = "styleClass";
+
// format attributes
- public static final String FORMAT_NULL = "null:";
- public static final String FORMAT_NULL_ATTRIBUTE = "format:null";
+ public static final String FORMAT_NULL = "null:";
+ public static final String FORMAT_NULL_ATTRIBUTE = "format:null";
+ public static final String FORMAT_NO_VALUE_STYLES = "noValueStyles";
+ /* obsolte from 2024-06-03
public static final String FORMAT_VALUE_STYLES = "valueStyles";
public static final String FORMAT_VALUE_STYLES_ATTRIBUTE =
"format:valueStyles";
-
+ */
+
// HTML-TAGS
- public static final String HTML_TAG_DIV = "div";
- public static final String HTML_TAG_SPAN = "span";
- public static final String HTML_TAG_TABLE = "table";
- public static final String HTML_TAG_TR = "tr";
- public static final String HTML_TAG_TD = "td";
- public static final String HTML_TAG_INPUT = "input";
- public static final String HTML_TAG_LABEL = "label";
-
+ public static final String HTML_TAG_DIV = "div";
+ public static final String HTML_TAG_SPAN = "span";
+ public static final String HTML_TAG_TABLE = "table";
+ public static final String HTML_TAG_TR = "tr";
+ public static final String HTML_TAG_TD = "td";
+ public static final String HTML_TAG_INPUT = "input";
+ public static final String HTML_TAG_LABEL = "label";
+
// HTML-ATTRIBUTES
- public static final String HTML_ATTR_ID = "id";
- public static final String HTML_ATTR_CLASS = "class";
- public static final String HTML_ATTR_STYLE = "style";
- public static final String HTML_ATTR_TYPE = "type";
- public static final String HTML_ATTR_DISABLED = "disabled";
- public static final String HTML_ATTR_CHECKED = "checked";
-
+ public static final String HTML_ATTR_ID = "id";
+ public static final String HTML_ATTR_CLASS = "class";
+ public static final String HTML_ATTR_STYLE = "style";
+ public static final String HTML_ATTR_TYPE = "type";
+ public static final String HTML_ATTR_DISABLED = "disabled";
+ public static final String HTML_ATTR_CHECKED = "checked";
+
// HTML
- public static String HTML_EXPR_NBSP = " ";
+ public static String HTML_EXPR_NBSP = " ";
/*
public InputControl()
@@ -251,11 +257,12 @@ public abstract class InputControl
// writer
ResponseWriter writer = context.getResponseWriter();
// has tag?
+ Object value = vi.getValue(true);
if (tagName!=null)
{ // write start tag
writer.startElement(tagName, comp);
- if (hasFormatOption(vi, FORMAT_VALUE_STYLES,
FORMAT_VALUE_STYLES_ATTRIBUTE))
- styleClass = addDataValueStyle(vi, vi.getValue(true),
styleClass);
+ if (!hasFormatOption(vi, FORMAT_NO_VALUE_STYLES))
+ styleClass = addDataValueStyle(vi, value, styleClass);
if (StringUtils.isNotEmpty(styleClass))
writer.writeAttribute("class", styleClass, null);
if (StringUtils.isNotEmpty(tooltip))
@@ -266,7 +273,7 @@ public abstract class InputControl
writer.writeAttribute("style", style, null);
}
// render Value
- renderValue(vi, writer);
+ renderValue(value, vi, writer);
// has tag?
if (tagName!=null)
{ // write end tag
@@ -280,10 +287,10 @@ public abstract class InputControl
* @param writer the output writer
* @throws IOException from ResponseWriter
*/
- public void renderValue(ValueInfo vi, ResponseWriter writer)
+ public void renderValue(Object value, ValueInfo vi, ResponseWriter writer)
throws IOException
{
- String text = formatValue(vi);
+ String text = formatValue(value, vi);
writer.append((StringUtils.isEmpty(text) ? HTML_EXPR_NBSP : text));
}
@@ -605,7 +612,7 @@ public abstract class InputControl
protected void setInputStyleClass(UIInput input, String cssStyleClass)
{
- input.getAttributes().put("styleClass", cssStyleClass);
+ input.getAttributes().put(InputControl.CSS_STYLE_CLASS, cssStyleClass);
}
protected void copyAttributes(UIComponent parent, InputInfo ii, UIInput
input, String additonalStyle)
@@ -685,7 +692,7 @@ public abstract class InputControl
public void addRemoveStyle(UIInput input, String styleName, boolean
setStyle)
{
- String styleClasses =
StringUtils.toString(input.getAttributes().get("styleClass"), "");
+ String styleClasses =
StringUtils.toString(input.getAttributes().get(InputControl.CSS_STYLE_CLASS),
"");
boolean hasStyle = TagStyleClass.existsIn(styleClasses, styleName);
if (setStyle == hasStyle)
return; // Nothing to do
@@ -776,12 +783,13 @@ public abstract class InputControl
* Returns the value formated as a string
* This is a shortcut for formatString(vi.getValue(), vi)
* Derived classes may override formatString
- */
+
protected final String formatValue(ValueInfo vi)
{
// boolean hasError = ((vi instanceof InputInfo) &&
!((InputInfo)vi).isValid());
return formatValue(vi.getValue(true), vi);
}
+ */
/**
* escapes a String for html
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
index 3617cab9..ff045d8c 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/RadioInputControl.java
@@ -67,10 +67,9 @@ public class RadioInputControl extends InputControl
/* Value */
@Override
- public void renderValue(ValueInfo vi, ResponseWriter writer)
+ public void renderValue(Object value, ValueInfo vi, ResponseWriter writer)
throws IOException
{
- Object value = vi.getValue(true);
String style =
vi.getStyleClass(TagStyleClass.RADIO.append(TagStyleClass.INPUT_DIS.get()));
writer.startElement(HTML_TAG_DIV, null);
writer.writeAttribute(HTML_ATTR_CLASS, style, null);
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
index 430c7d0e..300f1fe0 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/TextInputControl.java
@@ -127,7 +127,7 @@ public class TextInputControl extends InputControl
HtmlInputText input = (HtmlInputText) comp;
if (ii.isInsideUIData())
{ // always reset the style class inside UIData
- String tagStyle =
StringUtils.toString(ii.getAttribute("styleClass"), null);
+ String tagStyle =
StringUtils.toString(ii.getAttribute(InputControl.CSS_STYLE_CLASS), null);
String cssStyle = getInputStyleClass(ii, tagStyle);
input.setStyleClass(cssStyle);
/*
@@ -170,7 +170,7 @@ public class TextInputControl extends InputControl
String dataTypeClass =
TagEncodingHelper.getDataTypeClass(ii.getColumn().getDataType());
String styleClass = TagEncodingHelper.getTagStyleClass(tagStyle,
dataTypeClass, null, null);
*/
- span.getAttributes().put("styleClass", tagStyle);
+ span.getAttributes().put(InputControl.CSS_STYLE_CLASS, tagStyle);
span.getChildren().add(text);
// done
return span;
@@ -354,10 +354,10 @@ public class TextInputControl extends InputControl
// ------- render -------
@Override
- public void renderValue(ValueInfo vi, ResponseWriter writer)
+ public void renderValue(Object value, ValueInfo vi, ResponseWriter writer)
throws IOException
{
- String text = formatValue(vi);
+ String text = formatValue(value, vi);
if (StringUtils.isEmpty(text))
{ // nothing
writer.append(HTML_EXPR_NBSP);
@@ -436,7 +436,6 @@ public class TextInputControl extends InputControl
if (ml > 0)
return ml;
}
-
Column col = ii.getColumn();
// cast to DBTableColumn
DataType type = col.getDataType();
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index 9d080687..c140d5a5 100644
---
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -227,7 +227,7 @@ public class TagEncodingHelper implements NamingContainer
return value;
}
}
-
+
/**
* ValueInfoImpl
* Provides information necessary to render a data value (non editable)
@@ -235,6 +235,8 @@ public class TagEncodingHelper implements NamingContainer
*/
protected class ValueInfoImpl implements InputControl.ValueInfo
{
+ private String format = null;
+
public ValueInfoImpl(Column column, TextResolver resolver)
{
if (column==null)
@@ -267,22 +269,6 @@ public class TagEncodingHelper implements NamingContainer
return getValueOptions();
}
- /*
- @Override
- public Object getNullValue()
- {
- // null value
- Object attr = getTagAttributeValue("default");
- if (attr != null)
- return attr;
- // Use Column default
- if (hasColumn())
- return column.getAttribute("default");
- // not available
- return null;
- }
- */
-
@Override
public String getStyleClass(String addlStyle)
{
@@ -293,19 +279,19 @@ public class TagEncodingHelper implements NamingContainer
@Override
public String getFormat()
{
- // null value
- String attr = getTagAttributeString("format");
- if (attr != null)
- return attr;
- // Use Column default
- if (hasColumn())
- { // from column
- Object format = column.getAttribute("format");
- if (format != null)
- return format.toString();
+ if (format == null)
+ { // null value
+ format = getTagAttributeString("format");
+ // Use Column default
+ if (format==null && hasColumn())
+ { // from column
+ format =
StringUtils.toString(column.getAttribute("format"));
+ }
+ if (format==null)
+ format = StringUtils.EMPTY;
}
// not available
- return null;
+ return format;
}
@Override
@@ -743,7 +729,7 @@ public class TagEncodingHelper implements NamingContainer
this.readOnly = -1;
this.valueRequired = -1;
this.optionsDetected = false;
- this.options = null;
+ this.options = null;
/*
this.valueInfo = null;
this.skipValidation = false;
@@ -1573,8 +1559,9 @@ public class TagEncodingHelper implements NamingContainer
public String getTagAttributeString(String name, String defValue)
{
- Object v = getTagAttributeValue(name);
- return (v!=null) ? StringUtils.toString(v) : defValue;
+ Object value = getTagAttributeValue(name);
+ String sval = StringUtils.nullIfEmpty(value);
+ return (defValue!=null ? StringUtils.coalesce(sval, defValue) : sval);
}
public String getTagAttributeString(String name)
@@ -1626,7 +1613,7 @@ public class TagEncodingHelper implements NamingContainer
public void writeStyleClass(ResponseWriter writer)
throws IOException
{
- String userStyle = getTagAttributeStringEx("styleClass");
+ String userStyle =
getTagAttributeStringEx(InputControl.CSS_STYLE_CLASS);
writeStyleClass(writer, this.cssStyleClass, userStyle);
}
@@ -1933,7 +1920,7 @@ public class TagEncodingHelper implements NamingContainer
public String getSimpleStyleClass()
{
- String userStyle = getTagAttributeStringEx("styleClass");
+ String userStyle =
getTagAttributeStringEx(InputControl.CSS_STYLE_CLASS);
return getSimpleStyleClass(userStyle);
}
@@ -1946,7 +1933,7 @@ public class TagEncodingHelper implements NamingContainer
public String getTagStyleClass(String typeClass, String addlStyle)
{
- String userStyle = getTagAttributeStringEx("styleClass");
+ String userStyle =
getTagAttributeStringEx(InputControl.CSS_STYLE_CLASS);
return getTagStyleClass(typeClass, addlStyle, userStyle);
}
diff --git a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
index 9fa34069..42d2cf98 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/StringUtils.java
@@ -147,7 +147,7 @@ public class StringUtils
*/
public static String coalesce(String preferred, String alternative)
{
- return isNotEmpty(preferred) ? preferred : alternative;
+ return isEmpty(preferred) ? alternative : preferred;
}
/**