001package gudusoft.gsqlparser.ir.common; 002 003/** 004 * Confidence level for an analysis result, ranging from 0.0 to 1.0. 005 */ 006public final class Confidence { 007 008 /** Confidence value between 0.0 and 1.0. */ 009 public final double value; 010 011 /** High confidence constant (1.0). */ 012 public static final Confidence HIGH = new Confidence(1.0); 013 014 /** Medium confidence constant (0.7). */ 015 public static final Confidence MEDIUM = new Confidence(0.7); 016 017 /** Low confidence constant (0.3). */ 018 public static final Confidence LOW = new Confidence(0.3); 019 020 /** Unknown confidence constant (0.0). */ 021 public static final Confidence UNKNOWN = new Confidence(0.0); 022 023 public Confidence(double value) { 024 if (value < 0.0) value = 0.0; 025 if (value > 1.0) value = 1.0; 026 this.value = value; 027 } 028 029 /** 030 * Returns the confidence level bucket. 031 */ 032 public EConfidenceLevel getLevel() { 033 if (value >= 0.9) return EConfidenceLevel.HIGH; 034 if (value >= 0.5) return EConfidenceLevel.MEDIUM; 035 return EConfidenceLevel.LOW; 036 } 037 038 @Override 039 public String toString() { 040 return String.format("Confidence(%.2f, %s)", value, getLevel()); 041 } 042}