in smithy-model/src/main/java/software/amazon/smithy/model/loader/AstModelLoader.java [125:197]
private void loadShape(ShapeId id, String type, ObjectNode value, FullyResolvedModelFile modelFile) {
switch (type) {
case "blob":
loadSimpleShape(id, value, BlobShape.builder(), modelFile);
break;
case "boolean":
loadSimpleShape(id, value, BooleanShape.builder(), modelFile);
break;
case "byte":
loadSimpleShape(id, value, ByteShape.builder(), modelFile);
break;
case "short":
loadSimpleShape(id, value, ShortShape.builder(), modelFile);
break;
case "integer":
loadSimpleShape(id, value, IntegerShape.builder(), modelFile);
break;
case "long":
loadSimpleShape(id, value, LongShape.builder(), modelFile);
break;
case "float":
loadSimpleShape(id, value, FloatShape.builder(), modelFile);
break;
case "double":
loadSimpleShape(id, value, DoubleShape.builder(), modelFile);
break;
case "document":
loadSimpleShape(id, value, DocumentShape.builder(), modelFile);
break;
case "bigDecimal":
loadSimpleShape(id, value, BigDecimalShape.builder(), modelFile);
break;
case "bigInteger":
loadSimpleShape(id, value, BigIntegerShape.builder(), modelFile);
break;
case "string":
loadSimpleShape(id, value, StringShape.builder(), modelFile);
break;
case "timestamp":
loadSimpleShape(id, value, TimestampShape.builder(), modelFile);
break;
case "list":
loadCollection(id, value, ListShape.builder(), modelFile);
break;
case "set":
loadCollection(id, value, SetShape.builder(), modelFile);
break;
case "map":
loadMap(id, value, modelFile);
break;
case "resource":
loadResource(id, value, modelFile);
break;
case "service":
loadService(id, value, modelFile);
break;
case "structure":
loadStructure(id, value, modelFile);
break;
case "union":
loadUnion(id, value, modelFile);
break;
case "operation":
loadOperation(id, value, modelFile);
break;
case "apply":
LoaderUtils.checkForAdditionalProperties(value, id, APPLY_PROPERTIES, modelFile.events());
applyTraits(id, value.expectObjectMember(TRAITS), modelFile);
break;
default:
throw new SourceException("Invalid shape `type`: " + type, value);
}
}