All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.camunda.zeebe.gateway.impl.job.InflightActivateJobsRequestState Maven / Gradle / Ivy

There is a newer version: 8.7.0-alpha1
Show newest version
/*
 * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under
 * one or more contributor license agreements. See the NOTICE file distributed
 * with this work for additional information regarding copyright ownership.
 * Licensed under the Camunda License 1.0. You may not use this file
 * except in compliance with the Camunda License 1.0.
 */
package io.camunda.zeebe.gateway.impl.job;

import io.camunda.zeebe.broker.client.impl.PartitionIdIterator;

public class InflightActivateJobsRequestState {

  private final PartitionIdIterator iterator;
  private int remainingAmount;
  private boolean pollPrevPartition;
  private boolean resourceExhaustedWasPresent;

  public InflightActivateJobsRequestState(
      final PartitionIdIterator iterator, final int remainingAmount) {
    this.iterator = iterator;
    this.remainingAmount = remainingAmount;
  }

  private boolean hasNextPartition() {
    return iterator.hasNext();
  }

  public int getCurrentPartition() {
    return iterator.getCurrentPartitionId();
  }

  public int getNextPartition() {
    return pollPrevPartition ? iterator.getCurrentPartitionId() : iterator.next();
  }

  public int getRemainingAmount() {
    return remainingAmount;
  }

  public void setRemainingAmount(int remainingAmount) {
    this.remainingAmount = remainingAmount;
  }

  public boolean wasResourceExhaustedPresent() {
    return resourceExhaustedWasPresent;
  }

  public void setResourceExhaustedWasPresent(final boolean resourceExhaustedWasPresent) {
    this.resourceExhaustedWasPresent = resourceExhaustedWasPresent;
  }

  public void setPollPrevPartition(boolean pollPrevPartition) {
    this.pollPrevPartition = pollPrevPartition;
  }

  public boolean shouldActivateJobs() {
    return remainingAmount > 0 && (pollPrevPartition || hasNextPartition());
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy