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

com.dropchop.textonic.model.dto.process.AnalysisStepBase Maven / Gradle / Ivy

package com.dropchop.textonic.model.dto.process;

import com.dropchop.recyclone.base.api.model.base.Dto;
import com.dropchop.textonic.model.api.ml.StepCode;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.List;
import java.util.ListIterator;

import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;

/**
 * @author Nikola Ivačič  on 12. 08. 22.
 */
@Data
@SuperBuilder
@NoArgsConstructor
@JsonInclude(NON_NULL)
public class AnalysisStepBase implements Dto {

  public static  boolean hasStep(List steps, StepCode code) {
    if (code == null) {
      return false;
    }
    if (steps == null || steps.isEmpty()) {
      return false;
    }
    for (AS analysisStep : steps) {
      if (code.equals(analysisStep.getStep())) {
        return true;
      }
    }
    return false;
  }

  public static  AS getStep(List steps, StepCode code) {
    if (code == null) {
      return null;
    }
    if (steps == null || steps.isEmpty()) {
      return null;
    }
    for (AS analysisStep : steps) {
      if (code.equals(analysisStep.getStep())) {
        return analysisStep;
      }
    }
    return null;
  }

  public static  AS removeStep(List steps, StepCode code) {
    if (code == null) {
      return null;
    }
    if (steps == null || steps.isEmpty()) {
      return null;
    }
    for (ListIterator analysisStepIt = steps.listIterator(); analysisStepIt.hasNext();) {
      AS analysisStep = analysisStepIt.next();
      if (code.equals(analysisStep.getStep())) {
        analysisStepIt.remove();
        return analysisStep;
      }
    }
    return null;
  }

  @Schema(
    description = "ModelStep code."
  )
  private StepCode step;

  public String toString() {
    return this.getClass().getSimpleName()
      + ":s=" + getStep();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy