strangedb/src/main/java/it/cavallium/strangedb/database/EnhancedObjectFullInfo.java

76 lines
2.0 KiB
Java
Raw Normal View History

2019-03-07 11:41:45 +01:00
package it.cavallium.strangedb.database;
2019-03-07 11:41:45 +01:00
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;
2019-03-07 11:41:45 +01:00
private final DbDataType[] fieldTypes;
private final Field[] fields;
2019-03-06 17:25:56 +01:00
private final long primitiveFieldDataReference;
2019-03-07 11:41:45 +01:00
private final DbPrimitiveType[] primitiveFieldTypes;
2019-03-06 17:25:56 +01:00
private final Field[] primitiveFields;
private final long[] propertyReferences;
2019-03-07 11:41:45 +01:00
private final DbDataType[] propertyTypes;
private final Object[] loadedPropertyValues;
2019-03-07 11:41:45 +01:00
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;
2019-03-06 17:25:56 +01:00
this.primitiveFieldDataReference = primitiveFieldDataReference;
this.primitiveFieldTypes = primitiveFieldTypes;
this.primitiveFields = primitiveFields;
this.propertyReferences = propertyReferences;
this.propertyTypes = propertyTypes;
this.loadedPropertyValues = loadedPropertyValues;
}
int getVersion() {
return version;
}
2019-02-01 00:04:51 +01:00
long[] getFieldReferences() {
return fieldReferences;
}
2019-03-07 11:41:45 +01:00
DbDataType[] getFieldTypes() {
return fieldTypes;
}
public Field[] getFields() {
return fields;
}
2019-03-06 17:25:56 +01:00
public long getPrimitiveFieldDataReference() {
return primitiveFieldDataReference;
}
2019-03-07 11:41:45 +01:00
public DbPrimitiveType[] getPrimitiveFieldTypes() {
2019-03-06 17:25:56 +01:00
return primitiveFieldTypes;
}
public Field[] getPrimitiveFields() {
return primitiveFields;
}
2019-02-01 00:04:51 +01:00
long[] getPropertyReferences() {
return propertyReferences;
}
2019-03-07 11:41:45 +01:00
DbDataType[] getPropertyTypes() {
return propertyTypes;
}
2019-02-01 00:04:51 +01:00
Object[] getLoadedPropertyValues() {
return loadedPropertyValues;
}
}