You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/12/16 12:04:57 UTC
svn commit: r1551172 [3/7] - in /syncope/trunk: ./ client/
client/src/main/java/org/apache/syncope/client/
client/src/main/java/org/apache/syncope/client/rest/ common/
common/src/main/java/org/apache/syncope/common/
common/src/main/java/org/apache/sync...
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java Mon Dec 16 11:04:52 2013
@@ -18,7 +18,6 @@
*/
package org.apache.syncope.console.pages;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel;
@@ -70,7 +69,6 @@ public class Users extends BasePage {
new UserSearchResultPanel("listResult", false, null, getPageReference(), restClient);
add(listResult);
-
// create new user
final AjaxLink<Void> createLink = new ClearIndicatingAjaxLink<Void>("createLink", getPageReference()) {
@@ -106,39 +104,39 @@ public class Users extends BasePage {
final ClearIndicatingAjaxButton searchButton =
new ClearIndicatingAjaxButton("search", new ResourceModel("search"), getPageReference()) {
- private static final long serialVersionUID = -958724007591692537L;
+ private static final long serialVersionUID = -958724007591692537L;
- @Override
- protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
- final NodeCond searchCond = searchPanel.buildSearchCond();
- LOG.debug("Node condition " + searchCond);
+ @Override
+ protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
+ final String fiql = searchPanel.buildFIQL();
+ LOG.debug("FIQL: " + fiql);
- doSearch(target, searchCond, searchResult);
+ doSearch(target, fiql, searchResult);
- Session.get().getFeedbackMessages().clear();
- target.add(searchPanel.getSearchFeedback());
- }
+ Session.get().getFeedbackMessages().clear();
+ target.add(searchPanel.getSearchFeedback());
+ }
- @Override
- protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ @Override
+ protected void onError(final AjaxRequestTarget target, final Form<?> form) {
- target.add(searchPanel.getSearchFeedback());
- }
- };
+ target.add(searchPanel.getSearchFeedback());
+ }
+ };
searchForm.add(searchButton);
searchForm.setDefaultButton(searchButton);
}
- private void doSearch(final AjaxRequestTarget target, final NodeCond searchCond,
+ private void doSearch(final AjaxRequestTarget target, final String fiql,
final AbstractSearchResultPanel resultsetPanel) {
- if (searchCond == null || !searchCond.isValid()) {
+ if (fiql == null) {
error(getString(Constants.SEARCH_ERROR));
return;
}
- resultsetPanel.search(searchCond, target);
+ resultsetPanel.search(fiql, target);
}
private void setWindowClosedReloadCallback(final ModalWindow window) {
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/VirtualSchemaModalPage.java Mon Dec 16 11:04:52 2013
@@ -21,7 +21,7 @@ package org.apache.syncope.console.pages
import org.apache.syncope.common.AbstractBaseBean;
import org.apache.syncope.common.to.VirSchemaTO;
import org.apache.syncope.common.types.AttributableType;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.wicket.markup.html.form.AjaxCheckBoxPanel;
import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/XMLEditorPopupPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/XMLEditorPopupPage.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/XMLEditorPopupPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/XMLEditorPopupPage.java Mon Dec 16 11:04:52 2013
@@ -21,7 +21,7 @@ package org.apache.syncope.console.pages
import java.io.IOException;
import javax.ws.rs.core.MediaType;
import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.rest.WorkflowRestClient;
import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java Mon Dec 16 11:04:52 2013
@@ -18,24 +18,23 @@
*/
package org.apache.syncope.console.pages.panels;
-import java.lang.reflect.Field;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.syncope.common.search.AttributableCond;
-import org.apache.syncope.common.search.AttributeCond;
-import org.apache.syncope.common.search.EntitlementCond;
-import org.apache.syncope.common.search.MembershipCond;
-import org.apache.syncope.common.search.NodeCond;
-import org.apache.syncope.common.search.ResourceCond;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.apache.cxf.jaxrs.ext.search.ConditionType;
+import org.apache.cxf.jaxrs.ext.search.SearchBean;
+import org.apache.cxf.jaxrs.ext.search.SearchCondition;
+import org.apache.cxf.jaxrs.ext.search.client.CompleteCondition;
+import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
+import org.apache.syncope.client.SyncopeClient;
+import org.apache.syncope.common.search.SearchableFields;
+import org.apache.syncope.common.search.SpecialAttr;
+import org.apache.syncope.common.search.SyncopeFiqlSearchConditionBuilder;
+import org.apache.syncope.common.search.SyncopeProperty;
import org.apache.syncope.common.to.ResourceTO;
-import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.AttributableType;
-import org.apache.syncope.console.commons.SearchCondWrapper;
-import org.apache.syncope.console.commons.SearchCondWrapper.OperationType;
import org.apache.syncope.console.rest.AuthRestClient;
import org.apache.syncope.console.rest.ResourceRestClient;
import org.apache.syncope.console.rest.SchemaRestClient;
@@ -59,9 +58,14 @@ public abstract class AbstractSearchPane
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractSearchPanel.class);
- protected static final String[] ATTRIBUTES_NOTINCLUDED = {"attrs", "derAttrs", "virAttrs",
- "serialVersionUID", "memberships", "entitlements", "resources", "password",
- "propagationTOs", "propagationStatusMap"};
+ @SpringBean
+ protected SchemaRestClient schemaRestClient;
+
+ @SpringBean
+ protected ResourceRestClient resourceRestClient;
+
+ @SpringBean
+ protected AuthRestClient authRestClient;
protected IModel<List<String>> dnames;
@@ -71,24 +75,13 @@ public abstract class AbstractSearchPane
protected IModel<List<String>> entitlements;
- protected IModel<List<AttributeCond.Type>> attributeTypes;
-
- protected IModel<List<SearchCondWrapper.FilterType>> filterTypes;
+ protected IModel<List<SearchClause.Type>> types;
protected IModel<List<String>> roleNames;
- @SpringBean
- protected SchemaRestClient schemaRestClient;
-
- @SpringBean
- protected ResourceRestClient resourceRestClient;
-
- @SpringBean
- protected AuthRestClient authRestClient;
-
protected FeedbackPanel searchFeedback;
- protected List<SearchCondWrapper> searchConditionList;
+ protected List<SearchClause> searchClauses;
protected WebMarkupContainer searchFormContainer;
@@ -100,8 +93,8 @@ public abstract class AbstractSearchPane
this(id, attributableType, null, true);
}
- protected AbstractSearchPanel(final String id, final AttributableType attributableType, final NodeCond initCond,
- final boolean required) {
+ protected AbstractSearchPanel(final String id, final AttributableType attributableType,
+ final String fiql, final boolean required) {
super(id);
populate();
@@ -136,15 +129,23 @@ public abstract class AbstractSearchPane
searchFeedback.setOutputMarkupId(true);
add(searchFeedback);
- if (initCond == null) {
- searchConditionList = new ArrayList<SearchCondWrapper>();
- searchConditionList.add(new SearchCondWrapper());
- } else {
- searchConditionList = getSearchCondWrappers(initCond, null);
+ this.searchClauses = new ArrayList<SearchClause>();
+ this.searchClauses.add(new SearchClause());
+ if (StringUtils.isNotBlank(fiql)) {
+ try {
+ FiqlParser<SearchBean> fiqlParser = new FiqlParser<SearchBean>(
+ SearchBean.class, SyncopeFiqlSearchConditionBuilder.CONTEXTUAL_PROPERTIES);
+ List<SearchClause> parsed = getSearchClauses(fiqlParser.parse(fiql));
+
+ this.searchClauses.clear();
+ this.searchClauses.addAll(parsed);
+ } catch (Exception e) {
+ LOG.error("Unparseable FIQL expression '{}'", fiql, e);
+ }
}
- searchFormContainer.add(new SearchView("searchView", searchConditionList, searchFormContainer, required,
- attributeTypes, filterTypes, anames, dnames, roleNames, resourceNames, entitlements));
+ searchFormContainer.add(new SearchView("searchView", searchClauses, searchFormContainer, required,
+ types, anames, dnames, roleNames, resourceNames, entitlements));
add(searchFormContainer);
}
@@ -155,24 +156,7 @@ public abstract class AbstractSearchPane
@Override
protected List<String> load() {
- final List<String> details = new ArrayList<String>();
-
- Class<?> clazz = attributableType == AttributableType.USER
- ? UserTO.class
- : RoleTO.class;
-
- // loop on class and all superclasses searching for field
- while (clazz != null && clazz != Object.class) {
- for (Field field : clazz.getDeclaredFields()) {
- if (!ArrayUtils.contains(ATTRIBUTES_NOTINCLUDED, field.getName())) {
- details.add(field.getName());
- }
- }
- clazz = clazz.getSuperclass();
- }
-
- Collections.reverse(details);
- return details;
+ return SearchableFields.get(attributableType);
}
};
@@ -215,180 +199,192 @@ public abstract class AbstractSearchPane
return result;
}
};
-
- attributeTypes = new LoadableDetachableModel<List<AttributeCond.Type>>() {
-
- private static final long serialVersionUID = 5275935387613157437L;
-
- @Override
- protected List<AttributeCond.Type> load() {
- return Arrays.asList(AttributeCond.Type.values());
- }
- };
}
public FeedbackPanel getSearchFeedback() {
return searchFeedback;
}
- private List<SearchCondWrapper> getSearchCondWrappers(final NodeCond searchCond, final NodeCond.Type type) {
- LOG.debug("Search condition: {}", searchCond);
-
- List<SearchCondWrapper> wrappers = new ArrayList<SearchCondWrapper>();
+ private SearchClause getPrimitiveSearchClause(final SearchCondition<SearchBean> sc) {
+ SearchClause searchClause = new SearchClause();
- switch (searchCond.getType()) {
- case LEAF:
- case NOT_LEAF:
- final SearchCondWrapper wrapper = getSearchCondWrapper(searchCond);
-
- if (type != null) {
- switch (type) {
- case AND:
- wrapper.setOperationType(OperationType.AND);
- break;
- case OR:
- wrapper.setOperationType(OperationType.OR);
- break;
- default:
- // nothing to specify
- }
+ String property = sc.getCondition().getKeySet().iterator().next();
+ searchClause.setProperty(property);
+ String value = sc.getCondition().get(property);
+ searchClause.setValue(value);
+
+ if (SpecialAttr.ROLES.toString().equals(property)) {
+ searchClause.setType(SearchClause.Type.MEMBERSHIP);
+ for (String label : roleNames.getObject()) {
+ if (value.equals(label.substring(0, label.indexOf(' ')))) {
+ searchClause.setProperty(label);
}
+ }
+ } else if (SpecialAttr.RESOURCES.toString().equals(property)) {
+ searchClause.setType(SearchClause.Type.RESOURCE);
+ } else if (SpecialAttr.ENTITLEMENTS.toString().equals(property)) {
+ searchClause.setType(SearchClause.Type.ENTITLEMENT);
+ } else {
+ searchClause.setType(SearchClause.Type.ATTRIBUTE);
+ }
- wrappers.add(wrapper);
+ switch (sc.getConditionType()) {
+ case EQUALS:
+ searchClause.setComparator(SpecialAttr.NULL.toString().equals(value)
+ ? SearchClause.Comparator.IS_NULL : SearchClause.Comparator.EQUALS);
break;
- case AND:
- case OR:
- wrappers.addAll(getSearchCondWrappers(searchCond.getLeftNodeCond(), type));
- wrappers.addAll(getSearchCondWrappers(searchCond.getRightNodeCond(), searchCond.getType()));
+ case NOT_EQUALS:
+ searchClause.setComparator(SpecialAttr.NULL.toString().equals(value)
+ ? SearchClause.Comparator.IS_NOT_NULL : SearchClause.Comparator.NOT_EQUALS);
+ break;
+
+ case GREATER_OR_EQUALS:
+ searchClause.setComparator(SearchClause.Comparator.GREATER_OR_EQUALS);
+ break;
+
+ case GREATER_THAN:
+ searchClause.setComparator(SearchClause.Comparator.GREATER_THAN);
+ break;
+
+ case LESS_OR_EQUALS:
+ searchClause.setComparator(SearchClause.Comparator.LESS_OR_EQUALS);
+ break;
+
+ case LESS_THAN:
+ searchClause.setComparator(SearchClause.Comparator.LESS_THAN);
break;
default:
+ break;
}
- LOG.debug("Search condition wrappers: {}", wrappers);
-
- return wrappers;
+ return searchClause;
}
- private SearchCondWrapper getSearchCondWrapper(final NodeCond searchCond) {
- SearchCondWrapper wrapper = new SearchCondWrapper();
+ private List<SearchClause> getCompoundSearchClause(final SearchCondition<SearchBean> sc) {
+ List<SearchClause> clauses = new ArrayList<SearchClause>();
- if (searchCond.getAttributableCond() != null) {
- wrapper.setFilterType(SearchCondWrapper.FilterType.ATTRIBUTE);
- wrapper.setFilterName(searchCond.getAttributableCond().getSchema());
- wrapper.setType(searchCond.getAttributableCond().getType());
- wrapper.setFilterValue(searchCond.getAttributableCond().getExpression());
- }
- if (searchCond.getAttributeCond() != null) {
- wrapper.setFilterType(SearchCondWrapper.FilterType.ATTRIBUTE);
- wrapper.setFilterName(searchCond.getAttributeCond().getSchema());
- wrapper.setType(searchCond.getAttributeCond().getType());
- wrapper.setFilterValue(searchCond.getAttributeCond().getExpression());
- }
- if (searchCond.getMembershipCond() != null) {
- wrapper.setFilterType(SearchCondWrapper.FilterType.MEMBERSHIP);
- RoleTO role = new RoleTO();
- role.setId(searchCond.getMembershipCond().getRoleId());
- role.setName(searchCond.getMembershipCond().getRoleName());
- wrapper.setFilterName(role.getDisplayName());
- }
- if (searchCond.getResourceCond() != null) {
- wrapper.setFilterType(SearchCondWrapper.FilterType.RESOURCE);
- wrapper.setFilterName(searchCond.getResourceCond().getResourceName());
- }
- if (searchCond.getEntitlementCond() != null) {
- wrapper.setFilterType(SearchCondWrapper.FilterType.ENTITLEMENT);
- wrapper.setFilterName(searchCond.getEntitlementCond().getExpression());
+ for (SearchCondition<SearchBean> searchCondition : sc.getSearchConditions()) {
+ if (searchCondition.getStatement() == null) {
+ clauses.addAll(getCompoundSearchClause(searchCondition));
+ } else {
+ SearchClause clause = getPrimitiveSearchClause(searchCondition);
+ if (sc.getConditionType() == ConditionType.AND) {
+ clause.setOperator(SearchClause.Operator.AND);
+ }
+ if (sc.getConditionType() == ConditionType.OR) {
+ clause.setOperator(SearchClause.Operator.OR);
+ }
+ clauses.add(clause);
+ }
}
- wrapper.setNotOperator(searchCond.getType() == NodeCond.Type.NOT_LEAF);
-
- return wrapper;
+ return clauses;
}
- public NodeCond buildSearchCond() {
- return buildSearchCond(searchConditionList);
- }
+ private List<SearchClause> getSearchClauses(final SearchCondition<SearchBean> sc) {
+ List<SearchClause> clauses = new ArrayList<SearchClause>();
- private NodeCond buildSearchCond(final List<SearchCondWrapper> conditions) {
- SearchCondWrapper searchConditionWrapper = conditions.get(0);
- if (searchConditionWrapper == null || searchConditionWrapper.getFilterType() == null) {
- return null;
+ if (sc.getStatement() == null) {
+ clauses.addAll(getCompoundSearchClause(sc));
+ } else {
+ clauses.add(getPrimitiveSearchClause(sc));
}
- LOG.debug("Search condition wrapper: {}", searchConditionWrapper);
- NodeCond nodeCond = null;
+ return clauses;
+ }
- switch (searchConditionWrapper.getFilterType()) {
- case ATTRIBUTE:
- // AttributeCond or SyncopeUserCond
- final String schema = searchConditionWrapper.getFilterName();
-
- final AttributeCond attributeCond;
- if (dnames.getObject().contains(schema)) {
- attributeCond = new AttributableCond();
- nodeCond = searchConditionWrapper.isNotOperator()
- ? NodeCond.getNotLeafCond((AttributableCond) attributeCond)
- : NodeCond.getLeafCond((AttributableCond) attributeCond);
- } else {
- attributeCond = new AttributeCond();
- nodeCond = searchConditionWrapper.isNotOperator()
- ? NodeCond.getNotLeafCond(attributeCond)
- : NodeCond.getLeafCond(attributeCond);
- }
+ public String buildFIQL() {
+ LOG.debug("Generating FIQL from List<SearchClause>: {}", searchClauses);
- attributeCond.setSchema(schema);
- attributeCond.setType(searchConditionWrapper.getType());
- attributeCond.setExpression(searchConditionWrapper.getFilterValue());
+ SyncopeFiqlSearchConditionBuilder builder = SyncopeClient.getSearchConditionBuilder();
- break;
-
- case MEMBERSHIP:
- final MembershipCond membershipCond = new MembershipCond();
- membershipCond.setRoleId(RoleTO.fromDisplayName(searchConditionWrapper.getFilterName()));
- membershipCond.setRoleName(searchConditionWrapper.getFilterName().
- substring(searchConditionWrapper.getFilterName().indexOf(' ') + 1));
-
- nodeCond = searchConditionWrapper.isNotOperator()
- ? NodeCond.getNotLeafCond(membershipCond)
- : NodeCond.getLeafCond(membershipCond);
+ CompleteCondition prevCondition;
+ CompleteCondition condition = null;
+ for (int i = 0; i < searchClauses.size(); i++) {
+ prevCondition = condition;
+
+ switch (searchClauses.get(i).getType()) {
+ case ENTITLEMENT:
+ condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
+ ? builder.hasEntitlements(searchClauses.get(i).getProperty())
+ : builder.hasNotEntitlements(searchClauses.get(i).getProperty());
+ break;
+
+ case MEMBERSHIP:
+ Long roleId = Long.valueOf(searchClauses.get(i).getProperty().split(" ")[0]);
+ condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
+ ? builder.hasRoles(roleId)
+ : builder.hasNotRoles(roleId);
+ break;
+
+ case RESOURCE:
+ condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
+ ? builder.hasResources(searchClauses.get(i).getProperty())
+ : builder.hasNotResources(searchClauses.get(i).getProperty());
+ break;
+
+ case ATTRIBUTE:
+ SyncopeProperty property = builder.is(searchClauses.get(i).getProperty());
+ switch (searchClauses.get(i).getComparator()) {
+ case IS_NULL:
+ condition = builder.isNull(searchClauses.get(i).getProperty());
+ break;
- break;
+ case IS_NOT_NULL:
+ condition = builder.isNotNull(searchClauses.get(i).getProperty());
+ break;
- case RESOURCE:
- final ResourceCond resourceCond = new ResourceCond();
- resourceCond.setResourceName(searchConditionWrapper.getFilterName());
-
- nodeCond = searchConditionWrapper.isNotOperator()
- ? NodeCond.getNotLeafCond(resourceCond)
- : NodeCond.getLeafCond(resourceCond);
+ case LESS_THAN:
+ condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
+ ? property.lessThan(NumberUtils.toDouble(searchClauses.get(i).getValue()))
+ : property.lexicalBefore(searchClauses.get(i).getValue());
+ break;
- break;
+ case LESS_OR_EQUALS:
+ condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
+ ? property.lessOrEqualTo(NumberUtils.toDouble(searchClauses.get(i).getValue()))
+ : property.lexicalNotAfter(searchClauses.get(i).getValue());
+ break;
- case ENTITLEMENT:
- final EntitlementCond entitlementCond = new EntitlementCond();
- entitlementCond.setExpression(searchConditionWrapper.getFilterName());
-
- nodeCond = searchConditionWrapper.isNotOperator()
- ? NodeCond.getNotLeafCond(entitlementCond)
- : NodeCond.getLeafCond(entitlementCond);
- break;
+ case GREATER_THAN:
+ condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
+ ? property.greaterThan(NumberUtils.toDouble(searchClauses.get(i).getValue()))
+ : property.lexicalAfter(searchClauses.get(i).getValue());
+ break;
- default:
- // nothing to do
- }
+ case GREATER_OR_EQUALS:
+ condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
+ ? property.greaterOrEqualTo(NumberUtils.toDouble(searchClauses.get(i).getValue()))
+ : property.lexicalNotBefore(searchClauses.get(i).getValue());
+ break;
- LOG.debug("Processed condition {}", nodeCond);
+ case NOT_EQUALS:
+ condition = property.notEqualTo(searchClauses.get(i).getValue());
+ break;
- if (conditions.size() > 1) {
- List<SearchCondWrapper> subList = conditions.subList(1, conditions.size());
+ case EQUALS:
+ default:
+ condition = property.equalTo(searchClauses.get(i).getValue());
+ break;
+ }
+ default:
+ break;
+ }
- nodeCond = OperationType.OR.equals(subList.get(0).getOperationType())
- ? NodeCond.getOrCond(nodeCond, buildSearchCond(subList))
- : NodeCond.getAndCond(nodeCond, buildSearchCond(subList));
+ if (i > 0) {
+ if (searchClauses.get(i).getOperator() == SearchClause.Operator.AND) {
+ condition = builder.and(prevCondition, condition);
+ }
+ if (searchClauses.get(i).getOperator() == SearchClause.Operator.OR) {
+ condition = builder.or(prevCondition, condition);
+ }
+ }
}
- return nodeCond;
+ String fiql = condition == null ? StringUtils.EMPTY : condition.query();
+ LOG.debug("Generated FIQL: {}", fiql);
+ return fiql;
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchResultPanel.java Mon Dec 16 11:04:52 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.console.pages
import java.util.Collection;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.console.commons.AttributableDataProvider;
import org.apache.syncope.console.commons.Constants;
@@ -124,7 +123,7 @@ public abstract class AbstractSearchResu
/**
* Filter used in case of filtered search.
*/
- private NodeCond filter;
+ private String fiql;
/**
* Result table.
@@ -157,7 +156,7 @@ public abstract class AbstractSearchResu
protected final AbstractBasePage page;
protected <T extends AbstractAttributableTO> AbstractSearchResultPanel(final String id, final boolean filtered,
- final NodeCond searchCond, final PageReference pageRef, final AbstractAttributableRestClient restClient) {
+ final String fiql, final PageReference pageRef, final AbstractAttributableRestClient restClient) {
super(id);
@@ -166,7 +165,7 @@ public abstract class AbstractSearchResu
this.page = (AbstractBasePage) pageRef.getPage();
this.filtered = filtered;
- this.filter = searchCond;
+ this.fiql = fiql;
this.feedbackPanel = page.getFeedbackPanel();
this.restClient = restClient;
@@ -236,9 +235,9 @@ public abstract class AbstractSearchResu
setWindowClosedReloadCallback(displaymodal);
}
- public void search(final NodeCond searchCond, final AjaxRequestTarget target) {
- this.filter = searchCond;
- dataProvider.setSearchCond(filter);
+ public void search(final String fiql, final AjaxRequestTarget target) {
+ this.fiql = fiql;
+ dataProvider.setFIQL(fiql);
target.add(container);
}
@@ -248,7 +247,7 @@ public abstract class AbstractSearchResu
private void updateResultTable(final boolean create, final int rows) {
dataProvider = new AttributableDataProvider(restClient, rows, filtered);
- dataProvider.setSearchCond(filter);
+ dataProvider.setFIQL(fiql);
final int currentPage = resultTable != null
? (create
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AttributesPanel.java Mon Dec 16 11:04:52 2013
@@ -110,7 +110,7 @@ public class AttributesPanel extends Pan
final WebMarkupContainer jexlHelp = JexlHelpUtil.getJexlHelpWebContainer("jexlHelp");
item.add(jexlHelp);
- final AjaxLink questionMarkJexlHelp = JexlHelpUtil.getAjaxLink(jexlHelp, "questionMarkJexlHelp");
+ final AjaxLink<Void> questionMarkJexlHelp = JexlHelpUtil.getAjaxLink(jexlHelp, "questionMarkJexlHelp");
item.add(questionMarkJexlHelp);
if (!templateMode) {
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java Mon Dec 16 11:04:52 2013
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.common.to.NotificationTaskTO;
import org.apache.syncope.common.to.AbstractTaskTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.NotificationTaskModalPage;
import org.apache.syncope.console.pages.Tasks;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PoliciesPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PoliciesPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PoliciesPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PoliciesPanel.java Mon Dec 16 11:04:52 2013
@@ -27,7 +27,7 @@ import org.apache.syncope.common.to.Pass
import org.apache.syncope.common.to.AbstractPolicyTO;
import org.apache.syncope.common.to.SyncPolicyTO;
import org.apache.syncope.common.types.PolicyType;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.commons.PreferenceManager;
import org.apache.syncope.console.commons.SortableDataProviderComparator;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java Mon Dec 16 11:04:52 2013
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.common.to.PropagationTaskTO;
import org.apache.syncope.common.to.AbstractTaskTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.PropagationTaskModalPage;
import org.apache.syncope.console.pages.Tasks;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchPanel.java Mon Dec 16 11:04:52 2013
@@ -22,9 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.types.AttributableType;
-import org.apache.syncope.console.commons.SearchCondWrapper;
import org.apache.wicket.model.LoadableDetachableModel;
public class RoleSearchPanel extends AbstractSearchPanel {
@@ -37,14 +35,14 @@ public class RoleSearchPanel extends Abs
private String id;
- private NodeCond initCond = null;
+ private String fiql = null;
public Builder(final String id) {
this.id = id;
}
- public RoleSearchPanel.Builder nodeCond(final NodeCond initCond) {
- this.initCond = initCond;
+ public RoleSearchPanel.Builder fiql(final String fiql) {
+ this.fiql = fiql;
return this;
}
@@ -54,23 +52,23 @@ public class RoleSearchPanel extends Abs
}
private RoleSearchPanel(final Builder builder) {
- super(builder.id, AttributableType.ROLE, builder.initCond, true);
+ super(builder.id, AttributableType.ROLE, builder.fiql, true);
}
@Override
protected void populate() {
super.populate();
- this.filterTypes = new LoadableDetachableModel<List<SearchCondWrapper.FilterType>>() {
+ this.types = new LoadableDetachableModel<List<SearchClause.Type>>() {
private static final long serialVersionUID = 5275935387613157437L;
@Override
- protected List<SearchCondWrapper.FilterType> load() {
- final List<SearchCondWrapper.FilterType> result = new ArrayList<SearchCondWrapper.FilterType>();
- result.add(SearchCondWrapper.FilterType.ATTRIBUTE);
- result.add(SearchCondWrapper.FilterType.ENTITLEMENT);
- result.add(SearchCondWrapper.FilterType.RESOURCE);
+ protected List<SearchClause.Type> load() {
+ final List<SearchClause.Type> result = new ArrayList<SearchClause.Type>();
+ result.add(SearchClause.Type.ATTRIBUTE);
+ result.add(SearchClause.Type.ENTITLEMENT);
+ result.add(SearchClause.Type.RESOURCE);
return result;
}
};
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSearchResultPanel.java Mon Dec 16 11:04:52 2013
@@ -22,10 +22,9 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.ResultStatusModalPage;
import org.apache.syncope.console.pages.RoleModalPage;
@@ -53,10 +52,9 @@ public class RoleSearchResultPanel exten
private final static String PAGEID = "Roles";
public <T extends AbstractAttributableTO> RoleSearchResultPanel(final String id, final boolean filtered,
- final NodeCond searchCond, final PageReference callerRef,
- final AbstractAttributableRestClient restClient) {
+ final String fiql, final PageReference callerRef, final AbstractAttributableRestClient restClient) {
- super(id, filtered, searchCond, callerRef, restClient);
+ super(id, filtered, fiql, callerRef, restClient);
initResultTable();
}
@@ -65,7 +63,7 @@ public class RoleSearchResultPanel exten
final List<IColumn<AbstractAttributableTO, String>> columns =
new ArrayList<IColumn<AbstractAttributableTO, String>>();
- final String[] colnames = {"id", "name", "entitlements"};
+ final String[] colnames = { "id", "name", "entitlements" };
for (String name : colnames) {
columns.add(
new PropertyColumn<AbstractAttributableTO, String>(new ResourceModel(name, name), name, name));
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java Mon Dec 16 11:04:52 2013
@@ -20,7 +20,7 @@ package org.apache.syncope.console.pages
import java.io.Serializable;
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.XMLRolesReader;
import org.apache.syncope.console.pages.RoleModalPage;
import org.apache.syncope.console.rest.RoleRestClient;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java Mon Dec 16 11:04:52 2013
@@ -18,10 +18,9 @@
*/
package org.apache.syncope.console.pages.panels;
-import org.apache.syncope.common.search.MembershipCond;
-import org.apache.syncope.common.search.NodeCond;
+import org.apache.syncope.client.SyncopeClient;
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.commons.XMLRolesReader;
import org.apache.syncope.console.pages.ResultStatusModalPage;
@@ -181,11 +180,11 @@ public class RoleTabPanel extends Panel
@Override
protected void onSubmitInternal(final AjaxRequestTarget target, final Form<?> form) {
- final MembershipCond membershipCond = new MembershipCond();
- membershipCond.setRoleName(selectedNode.getName());
- NodeCond cond = NodeCond.getLeafCond(membershipCond);
-
- userListContainer.replace(new UserSearchResultPanel("userList", true, cond, pageRef, userRestClient));
+ userListContainer.replace(new UserSearchResultPanel("userList",
+ true,
+ SyncopeClient.getSearchConditionBuilder().hasRoles(selectedNode.getId()).query(),
+ pageRef,
+ userRestClient));
target.add(userListContainer);
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java Mon Dec 16 11:04:52 2013
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.common.to.SchedTaskTO;
import org.apache.syncope.common.to.AbstractTaskTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.SchedTaskModalPage;
import org.apache.syncope.console.pages.Tasks;
Added: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java?rev=1551172&view=auto
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java (added)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java Mon Dec 16 11:04:52 2013
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.console.pages.panels;
+
+import java.io.Serializable;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+public class SearchClause implements Serializable {
+
+ private static final long serialVersionUID = 2010794463096110104L;
+
+ public enum Operator {
+
+ AND,
+ OR;
+
+ }
+
+ public enum Type {
+
+ ATTRIBUTE,
+ MEMBERSHIP,
+ RESOURCE,
+ ENTITLEMENT;
+
+ }
+
+ public enum Comparator {
+
+ IS_NULL,
+ IS_NOT_NULL,
+ EQUALS,
+ NOT_EQUALS,
+ GREATER_OR_EQUALS,
+ GREATER_THAN,
+ LESS_OR_EQUALS,
+ LESS_THAN;
+
+ }
+
+ private Operator operator;
+
+ private Type type;
+
+ private String property;
+
+ private Comparator comparator;
+
+ private String value;
+
+ public SearchClause() {
+ setOperator(SearchClause.Operator.AND);
+ setComparator(SearchClause.Comparator.EQUALS);
+ }
+
+ public Operator getOperator() {
+ return operator;
+ }
+
+ public void setOperator(final Operator operator) {
+ this.operator = operator;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(final Type type) {
+ this.type = type;
+ }
+
+ public String getProperty() {
+ return property;
+ }
+
+ public void setProperty(final String property) {
+ this.property = property;
+ }
+
+ public Comparator getComparator() {
+ return comparator;
+ }
+
+ public void setComparator(final Comparator comparator) {
+ this.comparator = comparator;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(final String value) {
+ this.value = value;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ return EqualsBuilder.reflectionEquals(this, obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeBuilder.reflectionHashCode(this);
+ }
+
+ @Override
+ public String toString() {
+ return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+ }
+}
Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchClause.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchView.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchView.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchView.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SearchView.java Mon Dec 16 11:04:52 2013
@@ -19,29 +19,26 @@
package org.apache.syncope.console.pages.panels;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.syncope.common.search.AttributeCond;
+import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.console.commons.Constants;
-import org.apache.syncope.console.commons.SearchCondWrapper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.DropDownChoice;
-import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.ResourceModel;
-public class SearchView extends ListView<SearchCondWrapper> {
+public class SearchView extends ListView<SearchClause> {
private static final long serialVersionUID = -527351923968737757L;
@@ -49,9 +46,7 @@ public class SearchView extends ListView
private final boolean required;
- private final IModel<List<AttributeCond.Type>> attributeTypes;
-
- private final IModel<List<SearchCondWrapper.FilterType>> filterTypes;
+ private final IModel<List<SearchClause.Type>> types;
private final IModel<List<String>> anames;
@@ -63,11 +58,10 @@ public class SearchView extends ListView
private final IModel<List<String>> entitlements;
- public SearchView(final String id, final List<? extends SearchCondWrapper> list,
+ public SearchView(final String id, final List<? extends SearchClause> list,
final WebMarkupContainer searchFormContainer,
final boolean required,
- final IModel<List<AttributeCond.Type>> attributeTypes,
- final IModel<List<SearchCondWrapper.FilterType>> filterTypes,
+ final IModel<List<SearchClause.Type>> types,
final IModel<List<String>> anames,
final IModel<List<String>> dnames,
final IModel<List<String>> roleNames,
@@ -78,8 +72,7 @@ public class SearchView extends ListView
this.searchFormContainer = searchFormContainer;
this.required = required;
- this.attributeTypes = attributeTypes;
- this.filterTypes = filterTypes;
+ this.types = types;
this.anames = anames;
this.dnames = dnames;
this.roleNames = roleNames;
@@ -88,17 +81,15 @@ public class SearchView extends ListView
}
@Override
- protected void populateItem(final ListItem<SearchCondWrapper> item) {
- final SearchCondWrapper searchCondition = item.getModelObject();
+ protected void populateItem(final ListItem<SearchClause> item) {
+ final SearchClause searchClause = item.getModelObject();
- if (item.getIndex() == 0) {
- item.add(new Label("operationType", ""));
- } else {
- item.add(new Label("operationType", searchCondition.getOperationType().toString()));
- }
-
- final CheckBox notOperator = new CheckBox("notOperator", new PropertyModel(searchCondition, "notOperator"));
- notOperator.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ final DropDownChoice<SearchClause.Operator> operator = new DropDownChoice<SearchClause.Operator>("operator",
+ new PropertyModel<SearchClause.Operator>(searchClause, "operator"),
+ Arrays.asList(SearchClause.Operator.values()));
+ operator.setOutputMarkupPlaceholderTag(true);
+ operator.setNullValid(false);
+ operator.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@@ -106,25 +97,32 @@ public class SearchView extends ListView
protected void onUpdate(final AjaxRequestTarget target) {
}
});
- item.add(notOperator);
+ item.add(operator);
+ if (item.getIndex() == 0) {
+ operator.setVisible(false);
+ }
- final DropDownChoice<AttributeCond.Type> type = new DropDownChoice<AttributeCond.Type>("type",
- new PropertyModel<AttributeCond.Type>(searchCondition, "type"), attributeTypes);
+ final DropDownChoice<SearchClause.Type> type = new DropDownChoice<SearchClause.Type>("type",
+ new PropertyModel<SearchClause.Type>(searchClause, "type"), types);
+ type.setOutputMarkupId(true);
+ type.setRequired(required);
type.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
+ target.add(searchFormContainer);
}
});
item.add(type);
- final DropDownChoice<String> filterNameChooser = new DropDownChoice<String>("filterName",
- new PropertyModel<String>(searchCondition, "filterName"), (IModel) null);
- filterNameChooser.setOutputMarkupId(true);
- filterNameChooser.setRequired(required);
- filterNameChooser.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ @SuppressWarnings("unchecked")
+ final DropDownChoice<String> property = new DropDownChoice<String>("property",
+ new PropertyModel<String>(searchClause, "property"), (IModel) null);
+ property.setOutputMarkupId(true);
+ property.setRequired(required);
+ property.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@@ -132,11 +130,12 @@ public class SearchView extends ListView
protected void onUpdate(final AjaxRequestTarget target) {
}
});
- item.add(filterNameChooser);
+ item.add(property);
- final TextField<String> filterValue = new TextField<String>("filterValue", new PropertyModel<String>(
- searchCondition, "filterValue"));
- filterValue.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ final TextField<String> value = new TextField<String>("value",
+ new PropertyModel<String>(searchClause, "value"));
+ value.setOutputMarkupId(true);
+ value.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@@ -144,117 +143,154 @@ public class SearchView extends ListView
protected void onUpdate(final AjaxRequestTarget target) {
}
});
- item.add(filterValue);
+ item.add(value);
- final DropDownChoice<SearchCondWrapper.FilterType> filterTypeChooser =
- new DropDownChoice<SearchCondWrapper.FilterType>("filterType",
- new PropertyModel<SearchCondWrapper.FilterType>(searchCondition, "filterType"), filterTypes);
- filterTypeChooser.setOutputMarkupId(true);
- filterTypeChooser.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
+ final DropDownChoice<SearchClause.Comparator> comparator =
+ new DropDownChoice<SearchClause.Comparator>("comparator",
+ new PropertyModel<SearchClause.Comparator>(searchClause, "comparator"),
+ Collections.<SearchClause.Comparator>emptyList());
+ comparator.setOutputMarkupId(true);
+ comparator.setNullValid(false);
+ comparator.add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) {
private static final long serialVersionUID = -1107858522700306810L;
@Override
protected void onUpdate(final AjaxRequestTarget target) {
- target.add(searchFormContainer);
+ if (type.getModelObject() == SearchClause.Type.ATTRIBUTE) {
+ if (comparator.getModelObject() == SearchClause.Comparator.IS_NULL
+ || comparator.getModelObject() == SearchClause.Comparator.IS_NOT_NULL) {
+
+ value.setEnabled(false);
+ } else {
+ value.setEnabled(true);
+ }
+ target.add(value);
+ }
}
});
- filterTypeChooser.setRequired(required);
- item.add(filterTypeChooser);
+ comparator.setRequired(required);
+ item.add(comparator);
- AjaxButton addAndButton = new IndicatingAjaxButton("addAndButton", new ResourceModel("addAndButton")) {
+ AjaxLink<Void> drop = new IndicatingAjaxLink<Void>("drop") {
- private static final long serialVersionUID = -4804368561204623354L;
-
- @Override
- protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- SearchCondWrapper conditionWrapper = new SearchCondWrapper();
- conditionWrapper.setOperationType(SearchCondWrapper.OperationType.AND);
- SearchView.this.getModelObject().add(conditionWrapper);
- target.add(searchFormContainer);
- }
-
- @Override
- protected void onError(final AjaxRequestTarget target, final Form<?> form) {
- target.add(searchFormContainer);
- }
- };
- addAndButton.setDefaultFormProcessing(false);
- if (item.getIndex() != getModelObject().size() - 1) {
- addAndButton.setVisible(false);
- }
- item.add(addAndButton);
-
- AjaxButton addOrButton = new IndicatingAjaxButton("addOrButton", new ResourceModel("addOrButton")) {
-
- private static final long serialVersionUID = -4804368561204623354L;
-
- @Override
- protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- SearchCondWrapper conditionWrapper = new SearchCondWrapper();
- conditionWrapper.setOperationType(SearchCondWrapper.OperationType.OR);
- SearchView.this.getModelObject().add(conditionWrapper);
- target.add(searchFormContainer);
- }
+ private static final long serialVersionUID = -7978723352517770644L;
@Override
- protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ public void onClick(final AjaxRequestTarget target) {
+ SearchView.this.getModel().getObject().remove(item.getModelObject());
target.add(searchFormContainer);
}
};
- addOrButton.setDefaultFormProcessing(false);
- if (item.getIndex() != getModelObject().size() - 1) {
- addOrButton.setVisible(false);
+ item.add(drop);
+ if (item.getIndex() == 0) {
+ drop.setVisible(false);
+ drop.setEnabled(false);
+ } else {
+ drop.setVisible(true);
+ drop.setEnabled(true);
}
- item.add(addOrButton);
-
- AjaxButton dropButton = new IndicatingAjaxButton("dropButton", new ResourceModel("dropButton")) {
- private static final long serialVersionUID = -4804368561204623354L;
+ final AjaxLink<Void> add = new IndicatingAjaxLink<Void>("add") {
- @Override
- protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
- getList().remove(Integer.valueOf(getParent().getId()).intValue());
- target.add(searchFormContainer);
- }
+ private static final long serialVersionUID = -7978723352517770644L;
@Override
- protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ public void onClick(final AjaxRequestTarget target) {
+ SearchClause clause = new SearchClause();
+ SearchView.this.getModel().getObject().add(clause);
target.add(searchFormContainer);
}
};
- dropButton.setDefaultFormProcessing(false);
- if (item.getIndex() == 0) {
- dropButton.setVisible(false);
- }
- item.add(dropButton);
+ item.add(add);
- if (searchCondition == null || searchCondition.getFilterType() == null) {
- filterNameChooser.setChoices(Collections.<String>emptyList());
+ if (searchClause == null || searchClause.getType() == null) {
+ property.setChoices(Collections.<String>emptyList());
} else {
- switch (searchCondition.getFilterType()) {
+ switch (searchClause.getType()) {
case ATTRIBUTE:
final List<String> names = new ArrayList<String>(dnames.getObject());
-
if (anames.getObject() != null && !anames.getObject().isEmpty()) {
names.addAll(anames.getObject());
}
Collections.sort(names);
+ property.setChoices(names);
- filterNameChooser.setChoices(names);
- if (!type.isEnabled()) {
- type.setEnabled(true);
- type.setRequired(true);
- }
- if (!filterValue.isEnabled()) {
- filterValue.setEnabled(true);
+ comparator.setChoices(new LoadableDetachableModel<List<SearchClause.Comparator>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<SearchClause.Comparator> load() {
+ return Arrays.asList(SearchClause.Comparator.values());
+ }
+ });
+ comparator.setChoiceRenderer(new IChoiceRenderer<SearchClause.Comparator>() {
+
+ private static final long serialVersionUID = -9086043750227867686L;
+
+ @Override
+ public Object getDisplayValue(final SearchClause.Comparator object) {
+ String display;
+
+ switch (object) {
+ case IS_NULL:
+ display = "NULL";
+ break;
+
+ case IS_NOT_NULL:
+ display = "NOT NULL";
+ break;
+
+ case EQUALS:
+ display = "==";
+ break;
+
+ case NOT_EQUALS:
+ display = "!=";
+ break;
+
+ case LESS_THAN:
+ display = "<";
+ break;
+
+ case LESS_OR_EQUALS:
+ display = "<=";
+ break;
+
+ case GREATER_THAN:
+ display = ">";
+ break;
+
+ case GREATER_OR_EQUALS:
+ display = ">=";
+ break;
+
+ default:
+ display = StringUtils.EMPTY;
+ }
+
+ return display;
+ }
+
+ @Override
+ public String getIdValue(final SearchClause.Comparator object, int index) {
+ return getDisplayValue(object).toString();
+ }
+ });
+ if (!comparator.isEnabled()) {
+ comparator.setEnabled(true);
+ comparator.setRequired(true);
}
+ if (!value.isEnabled()) {
+ value.setEnabled(true);
+ }
break;
case MEMBERSHIP:
- filterNameChooser.setChoices(roleNames);
- filterNameChooser.setChoiceRenderer(new IChoiceRenderer<String>() {
+ property.setChoices(roleNames);
+ property.setChoiceRenderer(new IChoiceRenderer<String>() {
private static final long serialVersionUID = -4288397951948436434L;
@@ -268,39 +304,156 @@ public class SearchView extends ListView
return object;
}
});
- type.setEnabled(false);
- type.setRequired(false);
- type.setModelObject(null);
- filterValue.setEnabled(false);
- filterValue.setModelObject("");
+ comparator.setChoices(new LoadableDetachableModel<List<SearchClause.Comparator>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<SearchClause.Comparator> load() {
+ List<SearchClause.Comparator> comparators = new ArrayList<SearchClause.Comparator>();
+ comparators.add(SearchClause.Comparator.EQUALS);
+ comparators.add(SearchClause.Comparator.NOT_EQUALS);
+ return comparators;
+ }
+ });
+ comparator.setChoiceRenderer(new IChoiceRenderer<SearchClause.Comparator>() {
+
+ private static final long serialVersionUID = -9086043750227867686L;
+
+ @Override
+ public Object getDisplayValue(final SearchClause.Comparator object) {
+ String display;
+
+ switch (object) {
+ case EQUALS:
+ display = "IN";
+ break;
+
+ case NOT_EQUALS:
+ display = "NOT IN";
+ break;
+
+ default:
+ display = StringUtils.EMPTY;
+ }
+
+ return display;
+ }
+
+ @Override
+ public String getIdValue(final SearchClause.Comparator object, final int index) {
+ return getDisplayValue(object).toString();
+ }
+ });
+
+ value.setEnabled(false);
+ value.setModelObject("");
break;
case RESOURCE:
- filterNameChooser.setChoices(resourceNames);
- type.setEnabled(false);
- type.setRequired(false);
- type.setModelObject(null);
+ property.setChoices(resourceNames);
+
+ comparator.setChoices(new LoadableDetachableModel<List<SearchClause.Comparator>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<SearchClause.Comparator> load() {
+ List<SearchClause.Comparator> comparators = new ArrayList<SearchClause.Comparator>();
+ comparators.add(SearchClause.Comparator.EQUALS);
+ comparators.add(SearchClause.Comparator.NOT_EQUALS);
+ return comparators;
+ }
+ });
+ comparator.setChoiceRenderer(new IChoiceRenderer<SearchClause.Comparator>() {
+
+ private static final long serialVersionUID = -9086043750227867686L;
- filterValue.setEnabled(false);
- filterValue.setModelObject("");
+ @Override
+ public Object getDisplayValue(final SearchClause.Comparator object) {
+ String display;
+
+ switch (object) {
+ case EQUALS:
+ display = "HAS";
+ break;
+
+ case NOT_EQUALS:
+ display = "HAS NOT";
+ break;
+
+ default:
+ display = StringUtils.EMPTY;
+ }
+
+ return display;
+ }
+
+ @Override
+ public String getIdValue(final SearchClause.Comparator object, final int index) {
+ return getDisplayValue(object).toString();
+ }
+ });
+
+ value.setEnabled(false);
+ value.setModelObject("");
break;
case ENTITLEMENT:
- filterNameChooser.setChoices(entitlements);
- type.setEnabled(false);
- type.setRequired(false);
- type.setModelObject(null);
+ property.setChoices(entitlements);
+
+ comparator.setChoices(new LoadableDetachableModel<List<SearchClause.Comparator>>() {
+
+ private static final long serialVersionUID = 5275935387613157437L;
+
+ @Override
+ protected List<SearchClause.Comparator> load() {
+ List<SearchClause.Comparator> comparators = new ArrayList<SearchClause.Comparator>();
+ comparators.add(SearchClause.Comparator.EQUALS);
+ comparators.add(SearchClause.Comparator.NOT_EQUALS);
+ return comparators;
+ }
+ });
+ comparator.setChoiceRenderer(new IChoiceRenderer<SearchClause.Comparator>() {
+
+ private static final long serialVersionUID = -9086043750227867686L;
+
+ @Override
+ public Object getDisplayValue(final SearchClause.Comparator object) {
+ String display;
+
+ switch (object) {
+ case EQUALS:
+ display = "HAS";
+ break;
+
+ case NOT_EQUALS:
+ display = "HAS NOT";
+ break;
+
+ default:
+ display = StringUtils.EMPTY;
+ }
+
+ return display;
+ }
+
+ @Override
+ public String getIdValue(final SearchClause.Comparator object, final int index) {
+ return getDisplayValue(object).toString();
+ }
+ });
- filterValue.setEnabled(false);
- filterValue.setModelObject("");
+ value.setEnabled(false);
+ value.setModelObject("");
break;
default:
- filterNameChooser.setChoices(Collections.<String>emptyList());
+ property.setChoices(Collections.<String>emptyList());
}
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SelectOnlyUserSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SelectOnlyUserSearchResultPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SelectOnlyUserSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SelectOnlyUserSearchResultPanel.java Mon Dec 16 11:04:52 2013
@@ -20,7 +20,6 @@ package org.apache.syncope.console.pages
import java.util.ArrayList;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.console.pages.DisplayAttributesModalPage;
import org.apache.syncope.console.rest.UserRestClient;
@@ -47,10 +46,9 @@ public class SelectOnlyUserSearchResultP
private final ModalWindow window;
public <T extends AbstractAttributableTO> SelectOnlyUserSearchResultPanel(final String id, final boolean filtered,
- final NodeCond searchCond, final PageReference pageRef, final ModalWindow window,
- final UserRestClient restClient) {
+ final String fiql, final PageReference pageRef, final ModalWindow window, final UserRestClient restClient) {
- super(id, filtered, searchCond, pageRef, restClient);
+ super(id, filtered, fiql, pageRef, restClient);
this.pageRef = pageRef;
this.window = window;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java Mon Dec 16 11:04:52 2013
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.common.to.SyncTaskTO;
import org.apache.syncope.common.to.AbstractTaskTO;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.RoleTemplateModalPage;
import org.apache.syncope.console.pages.SyncTaskModalPage;
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchPanel.java Mon Dec 16 11:04:52 2013
@@ -21,10 +21,8 @@ package org.apache.syncope.console.pages
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.types.AttributableType;
-import org.apache.syncope.console.commons.SearchCondWrapper;
import org.apache.syncope.console.rest.RoleRestClient;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
@@ -42,7 +40,7 @@ public class UserSearchPanel extends Abs
private String id;
- private NodeCond initCond = null;
+ private String fiql = null;
private boolean required = true;
@@ -50,8 +48,8 @@ public class UserSearchPanel extends Abs
this.id = id;
}
- public UserSearchPanel.Builder nodeCond(final NodeCond initCond) {
- this.initCond = initCond;
+ public UserSearchPanel.Builder fiql(final String fiql) {
+ this.fiql = fiql;
return this;
}
@@ -66,23 +64,23 @@ public class UserSearchPanel extends Abs
}
private UserSearchPanel(final Builder builder) {
- super(builder.id, AttributableType.USER, builder.initCond, builder.required);
+ super(builder.id, AttributableType.USER, builder.fiql, builder.required);
}
@Override
protected void populate() {
super.populate();
- this.filterTypes = new LoadableDetachableModel<List<SearchCondWrapper.FilterType>>() {
+ this.types = new LoadableDetachableModel<List<SearchClause.Type>>() {
private static final long serialVersionUID = 5275935387613157437L;
@Override
- protected List<SearchCondWrapper.FilterType> load() {
- List<SearchCondWrapper.FilterType> result = new ArrayList<SearchCondWrapper.FilterType>();
- result.add(SearchCondWrapper.FilterType.ATTRIBUTE);
- result.add(SearchCondWrapper.FilterType.MEMBERSHIP);
- result.add(SearchCondWrapper.FilterType.RESOURCE);
+ protected List<SearchClause.Type> load() {
+ List<SearchClause.Type> result = new ArrayList<SearchClause.Type>();
+ result.add(SearchClause.Type.ATTRIBUTE);
+ result.add(SearchClause.Type.MEMBERSHIP);
+ result.add(SearchClause.Type.RESOURCE);
return result;
}
};
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/UserSearchResultPanel.java Mon Dec 16 11:04:52 2013
@@ -24,12 +24,11 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.AttributableType;
import org.apache.syncope.common.types.SchemaType;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.commons.Constants;
import org.apache.syncope.console.pages.DisplayAttributesModalPage;
import org.apache.syncope.console.pages.EditUserModalPage;
@@ -73,10 +72,9 @@ public class UserSearchResultPanel exten
private final List<String> vSchemaNames;
public <T extends AbstractAttributableTO> UserSearchResultPanel(final String id, final boolean filtered,
- final NodeCond searchCond, final PageReference callerRef,
- final AbstractAttributableRestClient restClient) {
+ final String fiql, final PageReference callerRef, final AbstractAttributableRestClient restClient) {
- super(id, filtered, searchCond, callerRef, restClient);
+ super(id, filtered, fiql, callerRef, restClient);
this.schemaNames = schemaRestClient.getSchemaNames(AttributableType.USER);
this.dSchemaNames = schemaRestClient.getDerSchemaNames(AttributableType.USER);
@@ -88,7 +86,7 @@ public class UserSearchResultPanel exten
@Override
protected List<IColumn<AbstractAttributableTO, String>> getColumns() {
final List<IColumn<AbstractAttributableTO, String>> columns =
- new ArrayList<IColumn<AbstractAttributableTO, String>>();
+ new ArrayList<IColumn<AbstractAttributableTO, String>>();
for (String name : prefMan.getList(getRequest(), Constants.PREF_USERS_DETAILS_VIEW)) {
final Field field = ReflectionUtils.findField(UserTO.class, name);
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/AbstractAttributableRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/AbstractAttributableRestClient.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/AbstractAttributableRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/AbstractAttributableRestClient.java Mon Dec 16 11:04:52 2013
@@ -19,29 +19,26 @@
package org.apache.syncope.console.rest;
import java.util.List;
-import org.apache.syncope.common.search.NodeCond;
-import org.apache.syncope.common.services.InvalidSearchConditionException;
import org.apache.syncope.common.to.AbstractAttributableTO;
-import org.apache.syncope.common.to.BulkAction;
-import org.apache.syncope.common.to.BulkActionRes;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
import org.apache.syncope.common.to.ConnObjectTO;
public abstract class AbstractAttributableRestClient extends BaseRestClient {
private static final long serialVersionUID = 1962529678091410544L;
- public abstract Integer count();
+ public abstract int count();
public abstract List<? extends AbstractAttributableTO> list(int page, int size);
- public abstract Integer searchCount(NodeCond searchCond) throws InvalidSearchConditionException;
+ public abstract int searchCount(String fiql);
- public abstract List<? extends AbstractAttributableTO> search(NodeCond searchCond, int page, int size)
- throws InvalidSearchConditionException;
+ public abstract List<? extends AbstractAttributableTO> search(String fiql, int page, int size);
public abstract ConnObjectTO getConnectorObject(String resourceName, Long id);
public abstract AbstractAttributableTO delete(Long id);
- public abstract BulkActionRes bulkAction(BulkAction action);
+ public abstract BulkActionResult bulkAction(BulkAction action);
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ConnectorRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ConnectorRestClient.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ConnectorRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ConnectorRestClient.java Mon Dec 16 11:04:52 2013
@@ -25,8 +25,8 @@ import java.util.List;
import java.util.Set;
import org.apache.syncope.common.services.ConnectorService;
import org.apache.syncope.common.services.ResourceService;
-import org.apache.syncope.common.to.BulkAction;
-import org.apache.syncope.common.to.BulkActionRes;
+import org.apache.syncope.common.reqres.BulkAction;
+import org.apache.syncope.common.reqres.BulkActionResult;
import org.apache.syncope.common.to.ConnBundleTO;
import org.apache.syncope.common.to.ConnIdObjectClassTO;
import org.apache.syncope.common.to.ConnInstanceTO;
@@ -34,7 +34,7 @@ import org.apache.syncope.common.to.Reso
import org.apache.syncope.common.to.SchemaTO;
import org.apache.syncope.common.types.ConnConfProperty;
import org.apache.syncope.common.util.BeanUtils;
-import org.apache.syncope.common.validation.SyncopeClientException;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.console.SyncopeSession;
import org.springframework.stereotype.Component;
@@ -211,7 +211,7 @@ public class ConnectorRestClient extends
getService(ConnectorService.class).reload();
}
- public BulkActionRes bulkAction(final BulkAction action) {
+ public BulkActionResult bulkAction(final BulkAction action) {
return getService(ConnectorService.class).bulk(action);
}
}
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/NotificationRestClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/NotificationRestClient.java?rev=1551172&r1=1551171&r2=1551172&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/NotificationRestClient.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/NotificationRestClient.java Mon Dec 16 11:04:52 2013
@@ -23,7 +23,7 @@ import java.util.List;
import org.apache.syncope.common.services.ConfigurationService;
import org.apache.syncope.common.services.NotificationService;
-import org.apache.syncope.common.to.MailTemplateTO;
+import org.apache.syncope.common.wrap.MailTemplate;
import org.apache.syncope.common.to.NotificationTO;
import org.apache.syncope.common.util.CollectionWrapper;
import org.springframework.stereotype.Component;
@@ -55,6 +55,6 @@ public class NotificationRestClient exte
public List<String> getMailTemplates() {
return CollectionWrapper.unwrap(
- new ArrayList<MailTemplateTO>(getService(ConfigurationService.class).getMailTemplates()));
+ new ArrayList<MailTemplate>(getService(ConfigurationService.class).getMailTemplates()));
}
}