/*
* Copyright (C) 2010 Brockmann Consult GmbH (info@brockmann-consult.de)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 3 of the License, or (at your option)
* any later version.
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, see http://www.gnu.org/licenses/
*/
package com.bc.ceres.binio;
import java.io.IOException;
/**
* A compound of members of any type.
*/
public interface CompoundData extends CollectionData {
/**
* @return The resolved instance type of the compound.
*/
@Override
CompoundType getType();
/**
* @return The resolved instance type of the compound.
*
* @deprecated since ceres 0.10; use {@link #getType()} instead.
*/
@Deprecated
CompoundType getCompoundType();
int getMemberCount();
int getMemberIndex(String name);
byte getByte(String name) throws IOException;
void setByte(String name, byte value) throws IOException;
int getUByte(String name) throws IOException;
void setUByte(String name, int value) throws IOException;
short getShort(String name) throws IOException;
void setShort(String name, short value) throws IOException;
int getUShort(String name) throws IOException;
void setUShort(String name, int value) throws IOException;
int getInt(String name) throws IOException;
void setInt(String name, int value) throws IOException;
long getUInt(String name) throws IOException;
void setUInt(String name, long value) throws IOException;
long getLong(String name) throws IOException;
void setLong(String name, long value) throws IOException;
float getFloat(String name) throws IOException;
void setFloat(String name, float value) throws IOException;
double getDouble(String name) throws IOException;
void setDouble(String name, double value) throws IOException;
SequenceData getSequence(String name) throws IOException;
CompoundData getCompound(String name) throws IOException;
}