You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2016/12/27 21:01:45 UTC
svn commit: r1776192 -
/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java
Author: tandraschko
Date: Tue Dec 27 21:01:45 2016
New Revision: 1776192
URL: http://svn.apache.org/viewvc?rev=1776192&view=rev
Log:
MYFACES-4075 SearchExpression API (some cosmetics)
Modified:
myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java
Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java?rev=1776192&r1=1776191&r2=1776192&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/component/search/SearchExpressionHandlerImpl.java Tue Dec 27 21:01:45 2016
@@ -21,9 +21,7 @@ package org.apache.myfaces.component.sea
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import javax.faces.FacesException;
import javax.faces.component.ContextCallback;
import javax.faces.component.NamingContainer;
@@ -41,45 +39,51 @@ import javax.faces.context.FacesContext;
public class SearchExpressionHandlerImpl extends SearchExpressionHandler
{
- protected Set<SearchExpressionHint> addHint(Set<SearchExpressionHint> hints, SearchExpressionHint hint)
+ protected void addHint(SearchExpressionContext searchExpressionContext, SearchExpressionHint hint)
{
// already available
- if (hints.contains(hint))
+ if (!searchExpressionContext.getExpressionHints().contains(hint))
{
- return hints;
+ searchExpressionContext.getExpressionHints().add(hint);
+ }
+ }
+
+ protected boolean isHintSet(SearchExpressionContext searchExpressionContext, SearchExpressionHint hint)
+ {
+ if (searchExpressionContext.getExpressionHints() == null)
+ {
+ return false;
}
- Set<SearchExpressionHint> newHints = new HashSet<SearchExpressionHint>(hints);
- newHints.add(hint);
-
- return newHints;
+ return searchExpressionContext.getExpressionHints().contains(hint);
}
@Override
public String resolveClientId(SearchExpressionContext searchExpressionContext, String expression)
{
FacesContext facesContext = searchExpressionContext.getFacesContext();
- UIComponent source = searchExpressionContext.getSource();
- CollectClientIdCallback callback = new CollectClientIdCallback();
- Set<SearchExpressionHint> hints = addHint(searchExpressionContext.getExpressionHints(),
- SearchExpressionHint.RESOLVE_SINGLE_COMPONENT);
SearchExpressionHandler handler = facesContext.getApplication().getSearchExpressionHandler();
+
+ addHint(searchExpressionContext, SearchExpressionHint.RESOLVE_SINGLE_COMPONENT);
+
if (handler.isPassthroughExpression(searchExpressionContext, expression))
{
return expression;
}
else
{
+ CollectClientIdCallback callback = new CollectClientIdCallback();
+
handler.invokeOnComponent(
searchExpressionContext, searchExpressionContext.getSource(), expression, callback);
- if (!callback.isClientIdFound() && hints != null && hints.contains(SearchExpressionHint.PARENT_FALLBACK))
+ if (!callback.isClientIdFound() && isHintSet(searchExpressionContext, SearchExpressionHint.PARENT_FALLBACK))
{
- callback.invokeContextCallback(facesContext, source.getParent());
+ callback.invokeContextCallback(facesContext, searchExpressionContext.getSource().getParent());
}
if (!callback.isClientIdFound())
{
- if (hints != null && hints.contains(SearchExpressionHint.IGNORE_NO_RESULT))
+ if (isHintSet(searchExpressionContext, SearchExpressionHint.IGNORE_NO_RESULT))
{
//Ignore
}
@@ -123,10 +127,10 @@ public class SearchExpressionHandlerImpl
String expressions)
{
FacesContext facesContext = searchExpressionContext.getFacesContext();
- UIComponent source = searchExpressionContext.getSource();
- CollectClientIdsCallback callback = new CollectClientIdsCallback();
- Set<SearchExpressionHint> hints = searchExpressionContext.getExpressionHints();
SearchExpressionHandler handler = facesContext.getApplication().getSearchExpressionHandler();
+
+ CollectClientIdsCallback callback = new CollectClientIdsCallback();
+
for (String expression : facesContext.getApplication().getSearchExpressionHandler().splitExpressions(
facesContext, expressions))
{
@@ -141,13 +145,13 @@ public class SearchExpressionHandlerImpl
searchExpressionContext, searchExpressionContext.getSource(), expression, callback);
}
}
- if (!callback.isClientIdFound() && hints != null && hints.contains(SearchExpressionHint.PARENT_FALLBACK))
+ if (!callback.isClientIdFound() && isHintSet(searchExpressionContext, SearchExpressionHint.PARENT_FALLBACK))
{
- callback.invokeContextCallback(facesContext, source.getParent());
+ callback.invokeContextCallback(facesContext, searchExpressionContext.getSource().getParent());
}
if (!callback.isClientIdFound())
{
- if (hints != null && hints.contains(SearchExpressionHint.IGNORE_NO_RESULT))
+ if (isHintSet(searchExpressionContext, SearchExpressionHint.IGNORE_NO_RESULT))
{
//Ignore
}
@@ -201,18 +205,19 @@ public class SearchExpressionHandlerImpl
{
FacesContext facesContext = searchExpressionContext.getFacesContext();
SingleInvocationCallback checkCallback = new SingleInvocationCallback(callback);
- Set<SearchExpressionHint> hints = addHint(searchExpressionContext.getExpressionHints(),
- SearchExpressionHint.RESOLVE_SINGLE_COMPONENT);
+
+ addHint(searchExpressionContext, SearchExpressionHint.RESOLVE_SINGLE_COMPONENT);
+
facesContext.getApplication().getSearchExpressionHandler().invokeOnComponent(
searchExpressionContext, searchExpressionContext.getSource(), expression, checkCallback);
- if (!checkCallback.isInvoked() && hints != null && hints.contains(SearchExpressionHint.PARENT_FALLBACK))
+ if (!checkCallback.isInvoked() && isHintSet(searchExpressionContext, SearchExpressionHint.PARENT_FALLBACK))
{
checkCallback.invokeContextCallback(facesContext, searchExpressionContext.getSource().getParent());
}
if (!checkCallback.isInvoked())
{
- if (hints != null && hints.contains(SearchExpressionHint.IGNORE_NO_RESULT))
+ if (isHintSet(searchExpressionContext, SearchExpressionHint.IGNORE_NO_RESULT))
{
//Ignore
}
@@ -264,22 +269,23 @@ public class SearchExpressionHandlerImpl
ContextCallback callback)
{
FacesContext facesContext = searchExpressionContext.getFacesContext();
+ SearchExpressionHandler handler = facesContext.getApplication().getSearchExpressionHandler();
+
MultipleInvocationCallback checkCallback = new MultipleInvocationCallback(callback);
- Set<SearchExpressionHint> hints = searchExpressionContext.getExpressionHints();
- for (String expression : facesContext.getApplication().getSearchExpressionHandler().splitExpressions(
- facesContext, expressions))
+
+ for (String expression : handler.splitExpressions(facesContext, expressions))
{
- facesContext.getApplication().getSearchExpressionHandler().invokeOnComponent(
- searchExpressionContext, searchExpressionContext.getSource(), expression, checkCallback);
+ handler.invokeOnComponent(searchExpressionContext, searchExpressionContext.getSource(),
+ expression, checkCallback);
}
// ...
- if (!checkCallback.isInvoked() && hints != null && hints.contains(SearchExpressionHint.PARENT_FALLBACK))
+ if (!checkCallback.isInvoked() && isHintSet(searchExpressionContext, SearchExpressionHint.PARENT_FALLBACK))
{
checkCallback.invokeContextCallback(facesContext, searchExpressionContext.getSource().getParent());
}
if (!checkCallback.isInvoked())
{
- if (hints != null && hints.contains(SearchExpressionHint.IGNORE_NO_RESULT))
+ if (isHintSet(searchExpressionContext, SearchExpressionHint.IGNORE_NO_RESULT))
{
//Ignore
}