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

com.clinia.config.CliniaAgent Maven / Gradle / Ivy

package com.clinia.config;

import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import javax.annotation.Nonnull;

public final class CliniaAgent {

  private final Set segments;

  private String finalValue;

  public CliniaAgent(String clientVersion) {
    this.finalValue = String.format("Clinia for Java (%s)", clientVersion);
    this.segments = new LinkedHashSet<>();
    this.addSegment(new Segment("JVM", System.getProperty("java.version")));
  }

  public CliniaAgent addSegment(@Nonnull Segment seg) {
    String segment = seg.toString();
    if (!segments.contains(segment)) {
      segments.add(segment);
      finalValue += segment;
    }
    return this;
  }

  public CliniaAgent addSegments(@Nonnull List segments) {
    for (Segment segment : segments) {
      addSegment(segment);
    }
    return this;
  }

  public CliniaAgent removeSegment(@Nonnull Segment seg) {
    segments.remove(seg.toString());
    return this;
  }

  @Override
  public String toString() {
    return finalValue;
  }

  public static class Segment {

    private final String value;
    private final String version;

    public Segment(String value) {
      this(value, null);
    }

    public Segment(String value, String version) {
      this.value = value;
      this.version = version;
    }

    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("; ").append(value);
      if (version != null) {
        sb.append(" (").append(version).append(")");
      }
      return sb.toString();
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy