package it.cavallium.strangedb.database; import it.cavallium.strangedb.annotations.DbDataType; import it.cavallium.strangedb.annotations.DbPrimitiveType; import java.lang.reflect.Field; public class EnhancedObjectFullInfo { private final int version; private final long[] fieldReferences; private final DbDataType[] fieldTypes; private final Field[] fields; private final long primitiveFieldDataReference; private final DbPrimitiveType[] primitiveFieldTypes; private final Field[] primitiveFields; private final long[] propertyReferences; private final DbDataType[] propertyTypes; private final Object[] loadedPropertyValues; public EnhancedObjectFullInfo(int version, long[] fieldReferences, DbDataType[] fieldTypes, Field[] fields, long primitiveFieldDataReference, DbPrimitiveType[] primitiveFieldTypes, Field[] primitiveFields, long[] propertyReferences, DbDataType[] propertyTypes, Object[] loadedPropertyValues) { this.version = version; if (version > 255) { throw new IllegalArgumentException(); } this.fieldReferences = fieldReferences; this.fieldTypes = fieldTypes; this.fields = fields; this.primitiveFieldDataReference = primitiveFieldDataReference; this.primitiveFieldTypes = primitiveFieldTypes; this.primitiveFields = primitiveFields; this.propertyReferences = propertyReferences; this.propertyTypes = propertyTypes; this.loadedPropertyValues = loadedPropertyValues; } int getVersion() { return version; } long[] getFieldReferences() { return fieldReferences; } DbDataType[] getFieldTypes() { return fieldTypes; } public Field[] getFields() { return fields; } public long getPrimitiveFieldDataReference() { return primitiveFieldDataReference; } public DbPrimitiveType[] getPrimitiveFieldTypes() { return primitiveFieldTypes; } public Field[] getPrimitiveFields() { return primitiveFields; } long[] getPropertyReferences() { return propertyReferences; } DbDataType[] getPropertyTypes() { return propertyTypes; } Object[] getLoadedPropertyValues() { return loadedPropertyValues; } }