public void writeFieldOmitted()

in java/core/src/main/java/org/bondlib/SimpleBinaryWriter.java [46:108]


    public void writeFieldOmitted(
        final BondDataType type, final int id, final Metadata metadata) throws IOException {
        // Simple doesn't support omitting fields, so we need to explicitly write the default values
        // for optional fields.
        //
        // Fields that are = nothing have no default, so it is an unrecoverable error to attempt to
        // serialize such a field if it is actually set to nothing (e.g., a SomethingObject which is
        // null).

        if (metadata.default_value.nothing) {
            throw new IllegalArgumentException("can't omit fields with default = nothing in SimpleBinary");
        }

        switch (type.value) {
            case BondDataType.Values.BT_BOOL:
                this.writeBool(SchemaHelper.getDefaultBoolFieldValue(metadata));
                break;
            case BondDataType.Values.BT_INT8:
                this.writeInt8(SchemaHelper.getDefaultInt8FieldValue(metadata));
                break;
            case BondDataType.Values.BT_INT16:
                this.writeInt16(SchemaHelper.getDefaultInt16FieldValue(metadata));
                break;
            case BondDataType.Values.BT_INT32:
                this.writeInt32(SchemaHelper.getDefaultInt32FieldValue(metadata));
                break;
            case BondDataType.Values.BT_INT64:
                this.writeInt64(SchemaHelper.getDefaultInt64FieldValue(metadata));
                break;
            case BondDataType.Values.BT_UINT8:
                this.writeUInt8(SchemaHelper.getDefaultUInt8FieldValue(metadata));
                break;
            case BondDataType.Values.BT_UINT16:
                this.writeUInt16(SchemaHelper.getDefaultUInt16FieldValue(metadata));
                break;
            case BondDataType.Values.BT_UINT32:
                this.writeUInt32(SchemaHelper.getDefaultUInt32FieldValue(metadata));
                break;
            case BondDataType.Values.BT_UINT64:
                this.writeUInt64(SchemaHelper.getDefaultUInt64FieldValue(metadata));
                break;
            case BondDataType.Values.BT_FLOAT:
                this.writeFloat(SchemaHelper.getDefaultFloatFieldValue(metadata));
                break;
            case BondDataType.Values.BT_DOUBLE:
                this.writeDouble(SchemaHelper.getDefaultDoubleFieldValue(metadata));
                break;
            case BondDataType.Values.BT_STRING:
                this.writeString(SchemaHelper.getDefaultStringFieldValue(metadata));
                break;
            case BondDataType.Values.BT_WSTRING:
                this.writeWString(SchemaHelper.getDefaultWStringFieldValue(metadata));
                break;
            case BondDataType.Values.BT_LIST:
            case BondDataType.Values.BT_SET:
            case BondDataType.Values.BT_MAP:
                this.writeContainerBegin(0, type);
                this.writeContainerEnd();
                break;
            default:
                throw new IllegalArgumentException("Invalid bondType: " + type.toString());
        }
    }