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

com.soulgalore.velocity.sitespeed.Rule Maven / Gradle / Ivy

The newest version!
package com.soulgalore.velocity.sitespeed;

public class Rule {

  private final double yellowLimit;
  private final double greenLimit;
  private final String name;
  private final Type type;

  public Rule(String name, Type type, double green, double yellow) {
    this.yellowLimit = yellow;
    this.greenLimit = green;
    this.name = name;
    this.type = type;
  }

  public String getColor(double value) {
    if (type.equals(Type.GREATER_THAN)) {
      if (value > greenLimit)
        return Color.GREEN.toString();
      else if (value > yellowLimit)
        return Color.YELLOW.toString();
      else
        return Color.RED.toString();
    } else {
      if (value < greenLimit)
        return Color.GREEN.toString();
      else if (value < yellowLimit)
        return Color.YELLOW.toString();
      else
        return Color.RED.toString();
    }
  }


  public double getYellowLimit() {
    return yellowLimit;
  }

  public double getGreenLimit() {
    return greenLimit;
  }

  public Type getType() {
    return type;
  }

  public String getName() {
    return name;
  }

  public enum Type {
    GREATER_THAN("greater than"), LESS_THAN("less than");

    private final String friendlyName;

    Type(String friendlyName) {
      this.friendlyName = friendlyName;
    }

    public String getFriendlyName() {
      return friendlyName;
    }

    public Type getOpposite() {
      if (this.equals(GREATER_THAN))
        return LESS_THAN;
      else
        return GREATER_THAN;
    }
  }

  public enum Color {
    RED, YELLOW, GREEN
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy