Docs

# 1 bootstrapped model data

# Bootstrapped Model Data

The Klass metamodel is part of every Klass model. When a Klass application starts, it "bootstraps" the metamodel by populating model data into the data store. This means that in the Stack Overflow application, we can GET /api/meta/class/Question to get the Question class as data.

{
	"name": "Question",
	"inferred": false,
	"packageName": "com.stackoverflow",
	"ordinal": 1,
	"sourceCode": "class Question\n    systemTemporal\n    versioned\n    audited\n{\n    id                : Long key id;\n    title             : String;\n    body              : String;\n    system            : TemporalRange system;\n    systemFrom        : TemporalInstant system from;\n    systemTo          : TemporalInstant system to;\n    createdById       : String private createdBy;\n    createdOn         : Instant createdOn;\n    lastUpdatedById   : String private lastUpdatedBy;\n    answers: Answer[0..*]\n        orderBy: this.id ascending;\n    version: QuestionVersion[1..1] version;\n}\n",
	"classifierModifiers": [
		{
			"name": "systemTemporal",
			"inferred": false,
			"ordinal": 1
		},
		{
			"name": "versioned",
			"inferred": false,
			"ordinal": 2
		},
		{
			"name": "audited",
			"inferred": false,
			"ordinal": 3
		}
	],
	"primitiveProperties": [
		{
			"name": "id",
			"inferred": false,
			"primitiveType": "Long",
			"optional": false,
			"key": true,
			"id": true,
			"ordinal": 1,
			"primitivePropertyModifiers": [
				{
					"name": "key",
					"inferred": false,
					"ordinal": 1
				},
				{
					"name": "id",
					"inferred": false,
					"ordinal": 2
				}
			]
		},
		{
			"name": "title",
			"inferred": false,
			"primitiveType": "String",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 2,
			"primitivePropertyModifiers": []
		},
		{
			"name": "body",
			"inferred": false,
			"primitiveType": "String",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 3,
			"primitivePropertyModifiers": []
		},
		{
			"name": "system",
			"inferred": false,
			"primitiveType": "TemporalRange",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 4,
			"primitivePropertyModifiers": [
				{
					"name": "system",
					"inferred": false,
					"ordinal": 1
				}
			]
		},
		{
			"name": "systemFrom",
			"inferred": false,
			"primitiveType": "TemporalInstant",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 5,
			"primitivePropertyModifiers": [
				{
					"name": "system",
					"inferred": false,
					"ordinal": 1
				},
				{
					"name": "from",
					"inferred": false,
					"ordinal": 2
				}
			]
		},
		{
			"name": "systemTo",
			"inferred": false,
			"primitiveType": "TemporalInstant",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 6,
			"primitivePropertyModifiers": [
				{
					"name": "system",
					"inferred": false,
					"ordinal": 1
				},
				{
					"name": "to",
					"inferred": false,
					"ordinal": 2
				}
			]
		},
		{
			"name": "createdById",
			"inferred": false,
			"primitiveType": "String",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 7,
			"primitivePropertyModifiers": [
				{
					"name": "private",
					"inferred": false,
					"ordinal": 1
				},
				{
					"name": "createdBy",
					"inferred": false,
					"ordinal": 2
				}
			]
		},
		{
			"name": "createdOn",
			"inferred": false,
			"primitiveType": "Instant",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 8,
			"primitivePropertyModifiers": [
				{
					"name": "createdOn",
					"inferred": false,
					"ordinal": 1
				}
			]
		},
		{
			"name": "lastUpdatedById",
			"inferred": false,
			"primitiveType": "String",
			"optional": false,
			"key": false,
			"id": false,
			"ordinal": 9,
			"primitivePropertyModifiers": [
				{
					"name": "private",
					"inferred": false,
					"ordinal": 1
				},
				{
					"name": "lastUpdatedBy",
					"inferred": false,
					"ordinal": 2
				}
			]
		}
	],
	"enumerationProperties": [],
	"associationEnds": [
		{
			"name": "answers",
			"inferred": false,
			"direction": "target",
			"multiplicity": "0..*",
			"resultType": {
				"name": "Answer"
			},
			"owningAssociation": {
				"name": "QuestionHasAnswer"
			},
			"associationEndModifiers": []
		},
		{
			"name": "version",
			"inferred": true,
			"direction": "target",
			"multiplicity": "1..1",
			"resultType": {
				"name": "QuestionVersion"
			},
			"owningAssociation": {
				"name": "QuestionHasVersion"
			},
			"associationEndModifiers": [
				{
					"name": "version",
					"inferred": true,
					"ordinal": 1
				}
			]
		}
	]
}