public IdentifiedDataSerializable createNew(Integer arg) { return new PartitionPredicate(); } };
private static boolean containsPagingPredicate(Predicate predicate) { if (predicate instanceof PagingPredicate) { return true; } if (!(predicate instanceof PartitionPredicate)) { return false; } PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; return partitionPredicate.getTarget() instanceof PagingPredicate; }
protected void removeAllInternal(Predicate predicate) { try { if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; OperationFactory operation = operationProvider .createPartitionWideEntryWithPredicateOperationFactory(name, ENTRY_REMOVING_PROCESSOR, partitionPredicate.getTarget()); Data partitionKey = toDataWithStrategy(partitionPredicate.getPartitionKey()); int partitionId = partitionService.getPartitionId(partitionKey); // invokeOnPartitions is used intentionally here, instead of invokeOnPartition, since // the later one doesn't support PartitionAwareOperationFactory, which we need to use // to speed up the removal operation using global indexes // (see PartitionWideEntryWithPredicateOperationFactory.createFactoryOnRunner). operationService.invokeOnPartitions(SERVICE_NAME, operation, singletonList(partitionId)); } else { OperationFactory operation = operationProvider .createPartitionWideEntryWithPredicateOperationFactory(name, ENTRY_REMOVING_PROCESSOR, predicate); operationService.invokeOnAllPartitions(SERVICE_NAME, operation); } } catch (Throwable t) { throw rethrow(t); } }
private ClientMessage invokeWithPredicate(ClientMessage request, Predicate predicate) { ClientMessage response; if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; response = invoke(request, partitionPredicate.getPartitionKey()); } else { response = invoke(request); } return response; }
if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; Data key = toData(partitionPredicate.getPartitionKey()); int partitionId = partitionService.getPartitionId(key); handleHazelcastInstanceAwareParams(partitionPredicate.getTarget()); name, entryProcessor, partitionPredicate.getTarget()); results = operationService.invokeOnPartitions(SERVICE_NAME, operation, Collections.singletonList(partitionId)); } else {
private ClientMessage invokeWithPredicate(ClientMessage request, Predicate predicate) { ClientMessage response; if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; response = invoke(request, partitionPredicate.getPartitionKey()); } else { response = invoke(request); } return response; }
if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; Data key = toData(partitionPredicate.getPartitionKey()); int partitionId = partitionService.getPartitionId(key); handleHazelcastInstanceAwareParams(partitionPredicate.getTarget()); name, entryProcessor, partitionPredicate.getTarget()); results = operationService.invokeOnPartitions(SERVICE_NAME, operation, singletonList(partitionId)); } else {
private static boolean containsPagingPredicate(Predicate predicate) { if (predicate instanceof PagingPredicate) { return true; } if (!(predicate instanceof PartitionPredicate)) { return false; } PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; return partitionPredicate.getTarget() instanceof PagingPredicate; }
MapContainer mapContainer = mapServiceContext.getMapContainer(parameters.name); PartitioningStrategy partitioningStrategy = mapContainer.getPartitioningStrategy(); Data partitionKey = serializationService.toData(partitionPredicate.getPartitionKey(), partitioningStrategy); partitionId = nodeEngine.getPartitionService().getPartitionId(partitionKey);
public IdentifiedDataSerializable createNew(Integer arg) { return new PartitionPredicate(); } };
protected <T extends Result> T executeQueryInternal(Predicate predicate, Aggregator aggregator, Projection projection, IterationType iterationType, Target target) { QueryEngine queryEngine = getMapQueryEngine(); Predicate userPredicate = predicate; if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; Data key = toData(partitionPredicate.getPartitionKey()); int partitionId = partitionService.getPartitionId(key); userPredicate = partitionPredicate.getTarget(); target = createPartitionTarget(partitionId); } handleHazelcastInstanceAwareParams(userPredicate); Query query = Query.of() .mapName(getName()) .predicate(userPredicate) .iterationType(iterationType) .aggregator(aggregator) .projection(projection) .build(); return queryEngine.execute(query, target); }
private static PagingPredicate unwrapPagingPredicate(Predicate predicate) { if (predicate instanceof PagingPredicate) { return (PagingPredicate) predicate; } Predicate unwrappedPredicate = ((PartitionPredicate) predicate).getTarget(); return (PagingPredicate) unwrappedPredicate; }
protected <T extends Result> T executeQueryInternal(Predicate predicate, Aggregator aggregator, Projection projection, IterationType iterationType, Target target) { MapQueryEngine queryEngine = getMapQueryEngine(); Predicate userPredicate = predicate; if (predicate instanceof PartitionPredicate) { PartitionPredicate partitionPredicate = (PartitionPredicate) predicate; Data key = toData(partitionPredicate.getPartitionKey()); int partitionId = partitionService.getPartitionId(key); userPredicate = partitionPredicate.getTarget(); target = Target.of().partitionOwner(partitionId).build(); } handleHazelcastInstanceAwareParams(userPredicate); Query query = Query.of() .mapName(getName()) .predicate(userPredicate) .iterationType(iterationType) .aggregator(aggregator) .projection(projection) .build(); return queryEngine.execute(query, target); }
private static PagingPredicate unwrapPagingPredicate(Predicate predicate) { if (predicate instanceof PagingPredicate) { return (PagingPredicate) predicate; } Predicate unwrappedPredicate = ((PartitionPredicate) predicate).getTarget(); return (PagingPredicate) unwrappedPredicate; }
private static Predicate unwrapPartitionPredicate(Predicate predicate) { return predicate instanceof PartitionPredicate ? ((PartitionPredicate) predicate).getTarget() : predicate; } }
private static Predicate unwrapPartitionPredicate(Predicate predicate) { return predicate instanceof PartitionPredicate ? ((PartitionPredicate) predicate).getTarget() : predicate; } }
@Override protected OperationFactory createOperationFactory() { MapOperationProvider operationProvider = getOperationProvider(parameters.name); Predicate effectivePredicate = predicate instanceof PartitionPredicate ? ((PartitionPredicate) predicate) .getTarget() : predicate; return operationProvider.createPartitionWideEntryWithPredicateOperationFactory(parameters.name, ENTRY_REMOVING_PROCESSOR, effectivePredicate); }
private Object invokeOnPartition(PartitionPredicate partitionPredicate, InternalOperationService operationService) { int partitionId = getPartitionId(); Predicate predicate = partitionPredicate.getTarget(); OperationFactory factory = createOperationFactory(predicate); InvocationBuilder invocationBuilder = operationService.createInvocationBuilder(getServiceName(), factory.createOperation(), partitionId); Object result = invocationBuilder.invoke().join(); return reduce(Collections.singletonMap(partitionId, result)); }
private Object invokeOnPartition(PartitionPredicate partitionPredicate, InternalOperationService operationService) { int partitionId = getPartitionId(); Predicate predicate = partitionPredicate.getTarget(); OperationFactory factory = createOperationFactory(predicate); InvocationBuilder invocationBuilder = operationService.createInvocationBuilder(getServiceName(), factory.createOperation(), partitionId); Object result = invocationBuilder.invoke().join(); return reduce(Collections.singletonMap(partitionId, result)); }
private Query buildQuery(Predicate predicate) { Query.QueryBuilder builder = Query.of().mapName(getDistributedObjectName()).predicate( predicate instanceof PartitionPredicate ? ((PartitionPredicate) predicate).getTarget() : predicate) .iterationType(getIterationType()); if (getAggregator() != null) { builder = builder.aggregator(getAggregator()); } if (getProjection() != null) { builder = builder.projection(getProjection()); } return builder.build(); }