Record Class Example

java.lang.Object
java.lang.Record
dev.dokimos.core.Example
Record Components:
inputs - the input values
expectedOutputs - the expected output values
metadata - additional metadata
datasetItemId - stable id of the server dataset item this example came from, or null for ad-hoc or file/classpath examples; used to pair items across runs

public record Example(Map<String,Object> inputs, Map<String,Object> expectedOutputs, Map<String,Object> metadata, String datasetItemId) extends Record
A dataset example with inputs, expected outputs, and metadata.

datasetItemId participates in equals/hashCode (record-generated), so a server-resolved example and an otherwise-identical file/inline example are not equal. This only matters to callers that dedup examples by equality, which the framework itself does not do.

  • Constructor Details

    • Example

      public Example(Map<String,Object> inputs, Map<String,Object> expectedOutputs, Map<String,Object> metadata, String datasetItemId)
      Compact constructor that creates immutable copies of all maps. The datasetItemId may be null.
    • Example

      public Example(Map<String,Object> inputs, Map<String,Object> expectedOutputs, Map<String,Object> metadata)
      Creates an example with no dataset item id.
      Parameters:
      inputs - the input values
      expectedOutputs - the expected output values
      metadata - additional metadata
  • Method Details

    • of

      public static Example of(String input, String expectedOutput)
      Creates an example with a single input and expected output.
      Parameters:
      input - the input value
      expectedOutput - the expected output value
      Returns:
      a new example
    • builder

      public static Example.Builder builder()
      Creates a new builder for constructing examples.
      Returns:
      a new builder
    • input

      public String input()
      Returns the primary input value.
      Returns:
      the input value or null if not present
    • expectedOutput

      public String expectedOutput()
      Returns the primary expected output value.
      Returns:
      the expected output value or null if not present
    • expectedOutputAs

      public <T> T expectedOutputAs(Class<T> type)
      Reads the primary expected output ("output") converted to the given type.
      Type Parameters:
      T - the target type
      Parameters:
      type - the target class
      Returns:
      the converted value, or null if no "output" entry is present
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • expectedOutputAs

      public <T> T expectedOutputAs(OutputType<T> type)
      Reads the primary expected output ("output") converted to the given generic type.
      Type Parameters:
      T - the target type
      Parameters:
      type - the target generic type token (for example new OutputType<List<Foo>>() {})
      Returns:
      the converted value, or null if no "output" entry is present
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • expectedOutputAs

      public <T> T expectedOutputAs(String key, Class<T> type)
      Reads the expected output under key converted to the given type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the expected-output key
      type - the target class
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • expectedOutputAs

      public <T> T expectedOutputAs(String key, OutputType<T> type)
      Reads the expected output under key converted to the given generic type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the expected-output key
      type - the target generic type token
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • inputAs

      public <T> T inputAs(Class<T> type)
      Reads the primary input ("input") converted to the given type.
      Type Parameters:
      T - the target type
      Parameters:
      type - the target class
      Returns:
      the converted value, or null if no "input" entry is present
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • inputAs

      public <T> T inputAs(OutputType<T> type)
      Reads the primary input ("input") converted to the given generic type.
      Type Parameters:
      T - the target type
      Parameters:
      type - the target generic type token (for example new OutputType<List<Foo>>() {})
      Returns:
      the converted value, or null if no "input" entry is present
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • inputAs

      public <T> T inputAs(String key, Class<T> type)
      Reads the input under key converted to the given type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the input key
      type - the target class
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • inputAs

      public <T> T inputAs(String key, OutputType<T> type)
      Reads the input under key converted to the given generic type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the input key
      type - the target generic type token
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • metadataAs

      public <T> T metadataAs(String key, Class<T> type)
      Reads the metadata value under key converted to the given type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the metadata key
      type - the target class
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • metadataAs

      public <T> T metadataAs(String key, OutputType<T> type)
      Reads the metadata value under key converted to the given generic type.
      Type Parameters:
      T - the target type
      Parameters:
      key - the metadata key
      type - the target generic type token
      Returns:
      the converted value, or null if key is absent
      Throws:
      DokimosTypeConversionException - if the stored value cannot be converted to type
    • toTestCase

      public EvalTestCase toTestCase(Map<String,Object> actualOutputs)
      Converts this example to a test case with the given actual outputs.
      Parameters:
      actualOutputs - the actual outputs produced by the system
      Returns:
      a new test case
    • toTestCase

      public EvalTestCase toTestCase(String actualOutput)
      Converts this example to a test case with a single actual output.
      Parameters:
      actualOutput - the actual output value
      Returns:
      a new test case
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • inputs

      public Map<String,Object> inputs()
      Returns the value of the inputs record component.
      Returns:
      the value of the inputs record component
    • expectedOutputs

      public Map<String,Object> expectedOutputs()
      Returns the value of the expectedOutputs record component.
      Returns:
      the value of the expectedOutputs record component
    • metadata

      public Map<String,Object> metadata()
      Returns the value of the metadata record component.
      Returns:
      the value of the metadata record component
    • datasetItemId

      public String datasetItemId()
      Returns the value of the datasetItemId record component.
      Returns:
      the value of the datasetItemId record component