Skip to content
Snippets Groups Projects
Commit dc3a1fef authored by pkupczyk's avatar pkupczyk
Browse files

Add progress reporting to Collection and Array predicates and data set graph construction

SVN: 26797
parent 6865889b
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,8 @@ import java.util.HashMap; ...@@ -21,6 +21,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.common.collections.DAG; import ch.systemsx.cisd.common.collections.DAG;
import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext;
import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener;
import ch.systemsx.cisd.openbis.generic.shared.dto.NewContainerDataSet; import ch.systemsx.cisd.openbis.generic.shared.dto.NewContainerDataSet;
import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData;
...@@ -78,6 +80,11 @@ public class NewExternalDataDAG ...@@ -78,6 +80,11 @@ public class NewExternalDataDAG
*/ */
private void constructGraph() private void constructGraph()
{ {
IServiceConversationProgressListener listener =
ServiceConversationsThreadContext.getProgressListener();
int index = 0;
for (NewExternalData dataSet : dataSetRegistrations) for (NewExternalData dataSet : dataSetRegistrations)
{ {
String dataSetCode = dataSet.getCode(); String dataSetCode = dataSet.getCode();
...@@ -99,6 +106,8 @@ public class NewExternalDataDAG ...@@ -99,6 +106,8 @@ public class NewExternalDataDAG
} }
dependencyGraph.put(dataSet.getCode(), dependents); dependencyGraph.put(dataSet.getCode(), dependents);
listener.update("constructGraph", dataSetRegistrations.size(), ++index);
} }
} }
......
...@@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate; ...@@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext;
import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener;
import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.Status;
import ch.systemsx.cisd.common.exceptions.StatusFlag; import ch.systemsx.cisd.common.exceptions.StatusFlag;
import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider; import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider;
...@@ -31,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; ...@@ -31,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
*/ */
public final class ArrayPredicate<T> extends AbstractPredicate<T[]> public final class ArrayPredicate<T> extends AbstractPredicate<T[]>
{ {
private final IPredicate<T> predicate; private final IPredicate<T> predicate;
public ArrayPredicate(final IPredicate<T> predicate) public ArrayPredicate(final IPredicate<T> predicate)
...@@ -65,10 +68,14 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]> ...@@ -65,10 +68,14 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]>
} }
@Override @Override
protected protected final Status doEvaluation(final PersonPE person,
final Status doEvaluation(final PersonPE person, final List<RoleWithIdentifier> allowedRoles, final List<RoleWithIdentifier> allowedRoles, final T[] value)
final T[] value)
{ {
IServiceConversationProgressListener listener =
ServiceConversationsThreadContext.getProgressListener();
int index = 0;
for (final T item : value) for (final T item : value)
{ {
final Status status = itemEvaluate(person, allowedRoles, item); final Status status = itemEvaluate(person, allowedRoles, item);
...@@ -76,6 +83,7 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]> ...@@ -76,6 +83,7 @@ public final class ArrayPredicate<T> extends AbstractPredicate<T[]>
{ {
return status; return status;
} }
listener.update("authorize", value.length, ++index);
} }
return Status.OK; return Status.OK;
} }
......
...@@ -19,6 +19,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate; ...@@ -19,6 +19,8 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.common.conversation.context.ServiceConversationsThreadContext;
import ch.systemsx.cisd.common.conversation.progress.IServiceConversationProgressListener;
import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.Status;
import ch.systemsx.cisd.common.exceptions.StatusFlag; import ch.systemsx.cisd.common.exceptions.StatusFlag;
import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider; import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider;
...@@ -56,10 +58,14 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T ...@@ -56,10 +58,14 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T
} }
@Override @Override
protected protected final Status doEvaluation(final PersonPE person,
final Status doEvaluation(final PersonPE person, final List<RoleWithIdentifier> allowedRoles, final List<RoleWithIdentifier> allowedRoles, final Collection<T> value)
final Collection<T> value)
{ {
IServiceConversationProgressListener listener =
ServiceConversationsThreadContext.getProgressListener();
int index = 0;
for (final T item : value) for (final T item : value)
{ {
final Status status = itemEvaluate(person, allowedRoles, item); final Status status = itemEvaluate(person, allowedRoles, item);
...@@ -67,6 +73,7 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T ...@@ -67,6 +73,7 @@ public final class CollectionPredicate<T> extends AbstractPredicate<Collection<T
{ {
return status; return status;
} }
listener.update("authorize", value.size(), ++index);
} }
return Status.OK; return Status.OK;
} }
......
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