Package com.tnsai.llm.format
Class SchemaGenerator
java.lang.Object
com.tnsai.llm.format.SchemaGenerator
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 Summary
Modifier and TypeMethodDescriptiongenerateRecordSchema(Class<?> recordClass) Generates a JSON Schema from a record class.generateSchema(Class<?> clazz) Generates a JSON Schema from a Java class.
-
Method Details
-
generateSchema
Generates a JSON Schema from a Java class.- Parameters:
clazz- The class to generate schema from- Returns:
- JSON Schema as a Map
-
generateRecordSchema
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
-