Skip to content
Snippets Groups Projects
Commit e98162f2 authored by buczekp's avatar buczekp
Browse files

[LMS-1364] refactorization: introduced AbstractExpressionWithParameters with...

[LMS-1364] refactorization: introduced AbstractExpressionWithParameters with QueryExpression and GridCustomFilter implementations

SVN: 14817
parent 15bddab0
No related branches found
No related tags found
No related merge requests found
Showing
with 274 additions and 170 deletions
/*
* Copyright 2009 ETH Zuerich, CISD
*
* Licensed 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 ch.systemsx.cisd.openbis.generic.shared.basic.dto;
import java.util.ArrayList;
import java.util.List;
/**
* {@link AbstractExpression} extension that stores expression parameters.
*
* @author Izabela Adamczyk
*/
abstract public class AbstractExpressionWithParameters extends AbstractExpression
{
private static final long serialVersionUID = ServiceVersionHolder.VERSION;
// need to use list here because set doesn't provide fixed order
private List<String> parameters;
public AbstractExpressionWithParameters()
{
}
public List<String> getParameters()
{
return parameters;
}
private void setParameters(List<String> parameters)
{
this.parameters = parameters;
}
public void setupParameters(List<String> allParameters)
{
setParameters(createDistinctParametersList(allParameters));
}
private static List<String> createDistinctParametersList(List<String> allParameters)
{
List<String> result = new ArrayList<String>();
for (String parameter : allParameters)
{
if (result.contains(parameter) == false)
{
result.add(parameter);
}
}
return result;
}
}
......@@ -16,64 +16,17 @@
package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
import java.util.ArrayList;
import java.util.List;
/**
* Stores information describing an expression with parameters (e.g. custom filter).
* Stores information describing a grid custom filter.
*
* @author Izabela Adamczyk
*/
public class GridCustomFilter extends AbstractExpression
public class GridCustomFilter extends AbstractExpressionWithParameters
{
private static final long serialVersionUID = ServiceVersionHolder.VERSION;
private List<String> allParameters;
// need to use list here because set doesn't provide fixed order
private List<String> parameters;
public GridCustomFilter()
{
}
public List<String> getParameters()
{
return parameters;
}
private void setParameters(List<String> parameters)
{
this.parameters = parameters;
}
public List<String> getAllParameters()
{
return allParameters;
}
private void setAllParameters(List<String> allParameters)
{
this.allParameters = allParameters;
}
public void setupParameters(List<String> allParameters)
{
setAllParameters(allParameters);
setParameters(createDistinctParametersList(allParameters));
}
private static List<String> createDistinctParametersList(List<String> allParameters)
{
List<String> result = new ArrayList<String>();
for (String parameter : allParameters)
{
if (result.contains(parameter) == false)
{
result.add(parameter);
}
}
return result;
}
}
/*
* Copyright 2009 ETH Zuerich, CISD
*
* Licensed 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 ch.systemsx.cisd.openbis.generic.shared.basic.dto;
import java.util.List;
/**
* Stores information describing a parametrized query.
*
* @author Piotr Buczek
*/
public class QueryExpression extends AbstractExpressionWithParameters
{
private static final long serialVersionUID = ServiceVersionHolder.VERSION;
private List<String> allParameters;
public QueryExpression()
{
}
public List<String> getAllParameters()
{
return allParameters;
}
private void setAllParameters(List<String> allParameters)
{
this.allParameters = allParameters;
}
@Override
public void setupParameters(List<String> allParameters)
{
super.setupParameters(allParameters);
setAllParameters(allParameters);
}
}
......@@ -29,7 +29,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.dto.AbstractExpressionPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.GridCustomColumnPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.GridCustomFilterPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.QueryPE;
import ch.systemsx.cisd.openbis.generic.shared.util.ExpressionUtil;
import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
......@@ -68,7 +67,7 @@ public final class GridCustomExpressionTranslator
result.setCode(escapeHtml(original.getCode()));
result.setName(escapeHtml(original.getLabel()));
translateGridExpression(original, result);
translateExpression(original, result);
return result;
}
}
......@@ -100,57 +99,24 @@ public final class GridCustomExpressionTranslator
result.setName(escapeHtml(original.getName()));
result.setupParameters(ExpressionUtil.extractParameters(original.getExpression()));
translateGridExpression(original, result);
translateExpression(original, result);
return result;
}
}
/**
* A {@link GridCustomFilter} &lt;---&gt; {@link QueryPE} translator.
*
* @author Izabela Adamczyk
*/
public static final class QueryTranslator
{
public final static List<GridCustomFilter> translate(final List<QueryPE> queries)
{
final List<GridCustomFilter> result = new ArrayList<GridCustomFilter>();
for (final QueryPE query : queries)
{
result.add(QueryTranslator.translate(query));
}
return result;
}
public final static GridCustomFilter translate(final QueryPE original)
{
if (original == null)
{
return null;
}
final GridCustomFilter result = new GridCustomFilter();
result.setName(escapeHtml(original.getName()));
result.setupParameters(ExpressionUtil.extractParameters(original.getExpression()));
translateGridExpression(original, result);
return result;
}
}
private static void translateGridExpression(final AbstractExpressionPE<?> gridExpression,
public static void translateExpression(final AbstractExpressionPE<?> expression,
final AbstractExpression result)
{
result.setId(HibernateUtils.getId(gridExpression));
result.setModificationDate(gridExpression.getModificationDate());
result.setExpression(escapeHtml(gridExpression.getExpression()));
result.setDescription(StringEscapeUtils.escapeHtml(gridExpression.getDescription()));
result.setRegistrator(PersonTranslator.translate(gridExpression.getRegistrator()));
result.setRegistrationDate(gridExpression.getRegistrationDate());
result.setDatabaseInstance(DatabaseInstanceTranslator.translate(gridExpression
result.setId(HibernateUtils.getId(expression));
result.setModificationDate(expression.getModificationDate());
result.setExpression(escapeHtml(expression.getExpression()));
result.setDescription(StringEscapeUtils.escapeHtml(expression.getDescription()));
result.setRegistrator(PersonTranslator.translate(expression.getRegistrator()));
result.setRegistrationDate(expression.getRegistrationDate());
result.setDatabaseInstance(DatabaseInstanceTranslator.translate(expression
.getDatabaseInstance()));
result.setPublic(gridExpression.isPublic());
result.setPublic(expression.isPublic());
}
}
......@@ -25,9 +25,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableModelReference;
import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
/**
* @author Piotr Buczek
......@@ -43,30 +43,30 @@ public interface IQueryClientService extends IClientService
throws UserFailureException;
/** Returns a list of all the canned custom queries created so far. */
public List<GridCustomFilter> listQueries() throws UserFailureException;
public List<QueryExpression> listQueries() throws UserFailureException;
/**
* Returns all queries for the specified configuration.
*/
public ResultSet<GridCustomFilter> listQueries(
IResultSetConfig<String, GridCustomFilter> resultSetConfig) throws UserFailureException;
public ResultSet<QueryExpression> listQueries(
IResultSetConfig<String, QueryExpression> resultSetConfig) throws UserFailureException;
/**
* Prepares export of queries.
*/
public String prepareExportQueries(TableExportCriteria<GridCustomFilter> criteria)
public String prepareExportQueries(TableExportCriteria<QueryExpression> criteria)
throws UserFailureException;
/**
* Registers specified new query.
*/
public void registerQuery(NewExpression query) throws UserFailureException;
/**
* Deletes specified queries.
*/
public void deleteQueries(List<TechId> filterIds) throws UserFailureException;
/**
* Updates specified query.
*/
......
......@@ -27,9 +27,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableModelReference;
import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
/**
* @author Piotr Buczek
......@@ -45,23 +45,23 @@ public interface IQueryClientServiceAsync extends IClientServiceAsync
AsyncCallback<TableModelReference> callback);
/** @see IQueryClientService#listQueries(IResultSetConfig) */
public void listQueries(IResultSetConfig<String, GridCustomFilter> resultSetConfig,
AsyncCallback<ResultSet<GridCustomFilter>> callback);
public void listQueries(IResultSetConfig<String, QueryExpression> resultSetConfig,
AsyncCallback<ResultSet<QueryExpression>> callback);
/** @see IQueryClientService#listQueries() */
public void listQueries(AsyncCallback<List<GridCustomFilter>> callback)
public void listQueries(AsyncCallback<List<QueryExpression>> callback)
throws UserFailureException;
/** @see IQueryClientService#prepareExportQueries(TableExportCriteria) */
public void prepareExportQueries(TableExportCriteria<GridCustomFilter> criteria,
public void prepareExportQueries(TableExportCriteria<QueryExpression> criteria,
AsyncCallback<String> callback);
/** @see IQueryClientService#registerQuery(NewExpression) */
public void registerQuery(NewExpression query, AsyncCallback<Void> callback);
/** @see IQueryClientService#deleteQueries(List) */
public void deleteQueries(List<TechId> filterIds, AsyncCallback<Void> callback);
/** @see IQueryClientService#updateQuery(IFilterOrColumnUpdates) */
public void updateQuery(final IFilterOrColumnUpdates queryUpdate, AsyncCallback<Void> callback);
}
......@@ -38,7 +38,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri
import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.IQueryClientServiceAsync;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Constants;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict;
......@@ -46,17 +46,16 @@ import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Displ
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.ui.columns.QueryColDefKind;
/**
*
*
* @author Franz-Josef Elmer
*/
public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter>
public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<QueryExpression>
{
private static final String BROWSER_ID = Constants.QUERY_ID_PREFIX + "queries_browser";
private static final String GRID_ID = BROWSER_ID + "_grid";
private static class DeletionConfirmationDialog extends
AbstractDataConfirmationDialog<List<GridCustomFilter>>
AbstractDataConfirmationDialog<List<QueryExpression>>
{
private static final int LABEL_WIDTH = 60;
......@@ -67,7 +66,7 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
private final AbstractAsyncCallback<Void> callback;
public DeletionConfirmationDialog(IViewContext<IQueryClientServiceAsync> viewContext,
List<GridCustomFilter> data, AbstractAsyncCallback<Void> callback)
List<QueryExpression> data, AbstractAsyncCallback<Void> callback)
{
super(viewContext, data, viewContext.getMessage(Dict.DELETE_CONFIRMATION_TITLE));
this.callback = callback;
......@@ -85,7 +84,7 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
protected String createMessage()
{
List<String> names = new ArrayList<String>();
for (GridCustomFilter query : data)
for (QueryExpression query : data)
{
names.add(query.getName());
}
......@@ -106,12 +105,13 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
QueryBrowserGrid browser = new QueryBrowserGrid(viewContext);
return new DatabaseModificationAwareComponent(browser, browser);
}
private final IViewContext<IQueryClientServiceAsync> viewContext;
QueryBrowserGrid(IViewContext<IQueryClientServiceAsync> viewContext)
{
super(viewContext.getCommonViewContext(), BROWSER_ID, GRID_ID, DisplayTypeIDGenerator.QUERY_EDITOR);
super(viewContext.getCommonViewContext(), BROWSER_ID, GRID_ID,
DisplayTypeIDGenerator.QUERY_EDITOR);
this.viewContext = viewContext;
extendBottomToolbar();
}
......@@ -126,19 +126,21 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
@Override
public void componentSelected(ButtonEvent ce)
{
new QueryEditor(viewContext, null, createRefreshGridAction()).show();
new QueryEditor(viewContext, null, createRefreshGridAction())
.show();
}
});
addButton(addButton);
final Button editButton =
createSelectedItemButton(viewContext.getMessage(Dict.BUTTON_EDIT),
new ISelectedEntityInvoker<BaseEntityModel<GridCustomFilter>>()
new ISelectedEntityInvoker<BaseEntityModel<QueryExpression>>()
{
public void invoke(BaseEntityModel<GridCustomFilter> selectedItem)
public void invoke(BaseEntityModel<QueryExpression> selectedItem)
{
GridCustomFilter query = selectedItem.getBaseObject();
new QueryEditor(viewContext, query, createRefreshGridAction()).show();
QueryExpression query = selectedItem.getBaseObject();
new QueryEditor(viewContext, query, createRefreshGridAction())
.show();
}
});
......@@ -148,7 +150,7 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
new AbstractCreateDialogListener()
{
@Override
protected Dialog createDialog(List<GridCustomFilter> selected,
protected Dialog createDialog(List<QueryExpression> selected,
IBrowserGridActionInvoker invoker)
{
return new DeletionConfirmationDialog(viewContext, selected,
......@@ -161,27 +163,27 @@ public class QueryBrowserGrid extends AbstractSimpleBrowserGrid<GridCustomFilter
}
@Override
protected IColumnDefinitionKind<GridCustomFilter>[] getStaticColumnsDefinition()
protected IColumnDefinitionKind<QueryExpression>[] getStaticColumnsDefinition()
{
return QueryColDefKind.values();
}
@Override
protected List<IColumnDefinition<GridCustomFilter>> getInitialFilters()
protected List<IColumnDefinition<QueryExpression>> getInitialFilters()
{
return asColumnFilters(new QueryColDefKind[]
{ QueryColDefKind.NAME, QueryColDefKind.PUBLIC });
}
@Override
protected void listEntities(DefaultResultSetConfig<String, GridCustomFilter> resultSetConfig,
AbstractAsyncCallback<ResultSet<GridCustomFilter>> callback)
protected void listEntities(DefaultResultSetConfig<String, QueryExpression> resultSetConfig,
AbstractAsyncCallback<ResultSet<QueryExpression>> callback)
{
viewContext.getService().listQueries(resultSetConfig, callback);
}
@Override
protected void prepareExportEntities(TableExportCriteria<GridCustomFilter> exportCriteria,
protected void prepareExportEntities(TableExportCriteria<QueryExpression> exportCriteria,
AbstractAsyncCallback<String> callback)
{
viewContext.getService().prepareExportQueries(exportCriteria, callback);
......
......@@ -33,8 +33,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.M
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.IQueryClientServiceAsync;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Constants;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict;
......@@ -56,10 +56,10 @@ public class QueryEditor extends AbstractRegistrationDialog
private final CheckBoxField isPublicField;
private final GridCustomFilter queryOrNull;
private final QueryExpression queryOrNull;
public QueryEditor(IViewContext<IQueryClientServiceAsync> viewContext,
GridCustomFilter queryOrNull, IDelegatedAction refreshAction)
QueryExpression queryOrNull, IDelegatedAction refreshAction)
{
super(viewContext, viewContext.getMessage(queryOrNull == null ? Dict.QUERY_CREATE_TITLE
: Dict.QUERY_EDIT_TITLE), refreshAction);
......
......@@ -20,73 +20,73 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinitionKind;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimpleYesNoRenderer;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
/**
* @author Franz-Josef Elmer
*/
public enum QueryColDefKind implements IColumnDefinitionKind<GridCustomFilter>
public enum QueryColDefKind implements IColumnDefinitionKind<QueryExpression>
{
NAME(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.NAME)
NAME(new AbstractColumnDefinitionKind<QueryExpression>(Dict.NAME)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return entity.getName();
}
}),
DESCRIPTION(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.DESCRIPTION)
DESCRIPTION(new AbstractColumnDefinitionKind<QueryExpression>(Dict.DESCRIPTION)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return entity.getDescription();
}
}),
EXPRESSION(new AbstractColumnDefinitionKind<GridCustomFilter>(
EXPRESSION(new AbstractColumnDefinitionKind<QueryExpression>(
ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict.SQL_QUERY,
true)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return entity.getExpression();
}
}),
PUBLIC(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.IS_PUBLIC, true)
PUBLIC(new AbstractColumnDefinitionKind<QueryExpression>(Dict.IS_PUBLIC, true)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return SimpleYesNoRenderer.render(entity.isPublic());
}
}),
REGISTRATOR(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.REGISTRATOR, true)
REGISTRATOR(new AbstractColumnDefinitionKind<QueryExpression>(Dict.REGISTRATOR, true)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return renderRegistrator(entity);
}
}),
REGISTRATION_DATE(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.REGISTRATION_DATE,
REGISTRATION_DATE(new AbstractColumnDefinitionKind<QueryExpression>(Dict.REGISTRATION_DATE,
AbstractColumnDefinitionKind.DATE_COLUMN_WIDTH, true)
{
@Override
public String tryGetValue(GridCustomFilter entity)
public String tryGetValue(QueryExpression entity)
{
return renderRegistrationDate(entity);
}
});
private final AbstractColumnDefinitionKind<GridCustomFilter> columnDefinitionKind;
private final AbstractColumnDefinitionKind<QueryExpression> columnDefinitionKind;
private QueryColDefKind(AbstractColumnDefinitionKind<GridCustomFilter> columnDefinitionKind)
private QueryColDefKind(AbstractColumnDefinitionKind<QueryExpression> columnDefinitionKind)
{
this.columnDefinitionKind = columnDefinitionKind;
}
......@@ -96,7 +96,7 @@ public enum QueryColDefKind implements IColumnDefinitionKind<GridCustomFilter>
return name();
}
public AbstractColumnDefinitionKind<GridCustomFilter> getDescriptor()
public AbstractColumnDefinitionKind<QueryExpression> getDescriptor()
{
return columnDefinitionKind;
}
......
......@@ -34,9 +34,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDat
import ch.systemsx.cisd.openbis.generic.client.web.server.translator.UserFailureExceptionTranslator;
import ch.systemsx.cisd.openbis.generic.shared.IServer;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
import ch.systemsx.cisd.openbis.plugin.query.client.web.client.IQueryClientService;
import ch.systemsx.cisd.openbis.plugin.query.shared.IQueryServer;
......@@ -100,7 +100,7 @@ public class QueryClientService extends AbstractClientService implements IQueryC
}
}
public List<GridCustomFilter> listQueries()
public List<QueryExpression> listQueries()
throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
{
try
......@@ -113,15 +113,15 @@ public class QueryClientService extends AbstractClientService implements IQueryC
}
}
public ResultSet<GridCustomFilter> listQueries(
final IResultSetConfig<String, GridCustomFilter> resultSetConfig)
public ResultSet<QueryExpression> listQueries(
final IResultSetConfig<String, QueryExpression> resultSetConfig)
throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
{
try
{
return listEntities(resultSetConfig, new IOriginalDataProvider<GridCustomFilter>()
return listEntities(resultSetConfig, new IOriginalDataProvider<QueryExpression>()
{
public List<GridCustomFilter> getOriginalData() throws UserFailureException
public List<QueryExpression> getOriginalData() throws UserFailureException
{
return queryServer.listQueries(getSessionToken());
}
......@@ -132,7 +132,7 @@ public class QueryClientService extends AbstractClientService implements IQueryC
}
}
public String prepareExportQueries(TableExportCriteria<GridCustomFilter> criteria)
public String prepareExportQueries(TableExportCriteria<QueryExpression> criteria)
throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
{
return prepareExportEntities(criteria);
......
......@@ -37,15 +37,15 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IQueryDAO;
import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin;
import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
import ch.systemsx.cisd.openbis.generic.shared.dto.QueryPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
import ch.systemsx.cisd.openbis.generic.shared.translator.GridCustomExpressionTranslator.QueryTranslator;
import ch.systemsx.cisd.openbis.plugin.query.shared.IQueryServer;
import ch.systemsx.cisd.openbis.plugin.query.shared.ResourceNames;
import ch.systemsx.cisd.openbis.plugin.query.shared.translator.QueryTranslator;
/**
* @author Franz-Josef Elmer
......@@ -122,7 +122,7 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS
}
}
public List<GridCustomFilter> listQueries(String sessionToken)
public List<QueryExpression> listQueries(String sessionToken)
{
checkSession(sessionToken);
......@@ -176,7 +176,7 @@ public class QueryServer extends AbstractServer<IQueryServer> implements IQueryS
public void updateQuery(String sessionToken, IFilterOrColumnUpdates updates)
{
checkSession(sessionToken);
try
{
IQueryDAO queryDAO = getDAOFactory().getQueryDAO();
......
......@@ -21,9 +21,9 @@ import java.util.List;
import ch.systemsx.cisd.authentication.ISessionManager;
import ch.systemsx.cisd.openbis.generic.server.AbstractServerLogger;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
import ch.systemsx.cisd.openbis.generic.shared.dto.Session;
import ch.systemsx.cisd.openbis.plugin.query.shared.IQueryServer;
......@@ -51,7 +51,7 @@ class QueryServerLogger extends AbstractServerLogger implements IQueryServer
return null;
}
public List<GridCustomFilter> listQueries(String sessionToken)
public List<QueryExpression> listQueries(String sessionToken)
{
logAccess(sessionToken, "list_queries");
return null;
......
......@@ -27,9 +27,9 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RoleSet;
import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAllowed;
import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.ExpressionValidator;
import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IFilterOrColumnUpdates;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.DeleteQueryPredicate;
import ch.systemsx.cisd.openbis.plugin.query.shared.authorization.predicate.UpdateQueryPredicate;
......@@ -51,18 +51,17 @@ public interface IQueryServer extends IServer
@Transactional
@RolesAllowed(RoleSet.OBSERVER)
@ReturnValueFilter(validatorClass = ExpressionValidator.class)
public List<GridCustomFilter> listQueries(String sessionToken);
public List<QueryExpression> listQueries(String sessionToken);
@Transactional
@RolesAllowed(RoleSet.POWER_USER)
public void registerQuery(String sessionToken, NewExpression expression);
@Transactional
@RolesAllowed(RoleSet.POWER_USER)
public void deleteQueries(
String sessionToken,
public void deleteQueries(String sessionToken,
@AuthorizationGuard(guardClass = DeleteQueryPredicate.class) List<TechId> filterIds);
@Transactional
@RolesAllowed(RoleSet.POWER_USER)
public void updateQuery(
......
/*
* Copyright 2010 ETH Zuerich, CISD
*
* Licensed 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 ch.systemsx.cisd.openbis.plugin.query.shared.translator;
import static org.apache.commons.lang.StringEscapeUtils.escapeHtml;
import java.util.ArrayList;
import java.util.List;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.QueryExpression;
import ch.systemsx.cisd.openbis.generic.shared.dto.QueryPE;
import ch.systemsx.cisd.openbis.generic.shared.translator.GridCustomExpressionTranslator;
import ch.systemsx.cisd.openbis.generic.shared.util.ExpressionUtil;
/**
* A {@link QueryExpression} &lt;---&gt; {@link QueryPE} translator.
*
* @author Piotr Buczek
*/
public final class QueryTranslator
{
private QueryTranslator()
{
// Can not be instantiated.
}
public final static List<QueryExpression> translate(final List<QueryPE> queries)
{
final List<QueryExpression> result = new ArrayList<QueryExpression>();
for (final QueryPE query : queries)
{
result.add(QueryTranslator.translate(query));
}
return result;
}
public final static QueryExpression translate(final QueryPE original)
{
if (original == null)
{
return null;
}
final QueryExpression result = new QueryExpression();
result.setName(escapeHtml(original.getName()));
result.setupParameters(ExpressionUtil.extractParameters(original.getExpression()));
GridCustomExpressionTranslator.translateExpression(original, result);
return result;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment