All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazon.ion.impl.ByteWriter Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2007-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazon.ion.impl;

import java.io.IOException;
import java.math.BigDecimal;

/**
 * Interface to write Ion value to bytes over a variety of destinations.
 * Avoiding the Java standard overhead in so far as possible.
 * This requires the ability to access any part of the underlying
 * data source randomly and insert space at any position.  However forward
 * access is expected to be the standard direction.
 */
interface ByteWriter
{
        public void write(byte b) throws IOException;
        public void write(byte[] dst, int start, int len) throws IOException;
        public int  position();
        public void position(int newPosition);

        public void insert(int length);
        public void remove(int length);

        public void writeTypeDesc(int typeDescByte) throws IOException;
        public int  writeTypeDescWithLength(int typeid, int lenOfLength, int valueLength) throws IOException;
        public int  writeTypeDescWithLength(int typeid, int valueLength) throws IOException;

        public int  writeIonInt(long value, int len) throws IOException;
        public int  writeVarInt(long value, int len, boolean force_zero_write) throws IOException;
        public int  writeVarUInt(long value, int len, boolean force_zero_write) throws IOException;

        public int  writeIonInt(int value, int len) throws IOException;
        public int  writeVarInt(int value, int len, boolean force_zero_write) throws IOException;
        public int  writeVarUInt(int value, int len, boolean force_zero_write) throws IOException;

        public int  writeFloat(double value) throws IOException;
        public int  writeDecimal(BigDecimal value) throws IOException;
        public int  writeString(String value) throws IOException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy