private void loadShape()

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);
        }
    }