Class SchemaGenerator

java.lang.Object
com.tnsai.llm.format.SchemaGenerator

public final class SchemaGenerator extends Object
Generates JSON Schema from Java classes using reflection.

Supports:

  • Primitive types (int, long, double, boolean, etc.)
  • Wrapper types (Integer, Long, Double, Boolean, etc.)
  • String and common types (UUID, BigDecimal, dates)
  • Collections (List, Set) with generic type detection
  • Nested objects
  • Enums

Example


 public record Person(String name, int age, List<String> hobbies) {}

 Map<String, Object> schema = SchemaGenerator.generateSchema(Person.class);
 // {
 //   "type": "object",
 //   "properties": {
 //     "name": {"type": "string"},
 //     "age": {"type": "integer"},
 //     "hobbies": {"type": "array", "items": {"type": "string"}}
 //   },
 //   "required": ["name", "age", "hobbies"]
 // }
 
Author:
TnsAI Team
  • Method Details

    • generateSchema

      public static Map<String,Object> generateSchema(Class<?> clazz)
      Generates a JSON Schema from a Java class.
      Parameters:
      clazz - The class to generate schema from
      Returns:
      JSON Schema as a Map
    • generateRecordSchema

      public static Map<String,Object> generateRecordSchema(Class<?> recordClass)
      Generates a JSON Schema from a record class.

      Uses the record's canonical constructor parameters for required fields.

      Parameters:
      recordClass - The record class
      Returns:
      JSON Schema as a Map