public GenericHollowList(HollowListTypeDataAccess dataAccess, int ordinal) { this(new HollowListLookupDelegate<HollowRecord>(dataAccess), ordinal); }
@Override public final boolean contains(HollowList<T> list, int ordinal, Object o) { return indexOf(list, ordinal, o) != -1; }
@Override public final int indexOf(HollowList<T> list, int ordinal, Object o) { int size = size(ordinal); for(int i=0;i<size;i++) { int elementOrdinal = dataAccess.getElementOrdinal(ordinal, i); if(list.equalsElement(elementOrdinal, o)) return i; } return -1; }
@Override public final int lastIndexOf(HollowList<T> list, int ordinal, Object o) { int size = size(ordinal); for(int i=size - 1; i>=0; i--) { int elementOrdinal = dataAccess.getElementOrdinal(ordinal, i); if(list.equalsElement(elementOrdinal, o)) return i; } return -1; }
public static HollowRecord instantiate(HollowDataAccess dataAccess, String typeName, int ordinal) { HollowTypeDataAccess typeState = dataAccess.getTypeDataAccess(typeName, ordinal); if(typeState != null) { if(typeState instanceof HollowObjectTypeDataAccess) return new GenericHollowObject(new HollowObjectGenericDelegate((HollowObjectTypeDataAccess)typeState), ordinal); if(typeState instanceof HollowListTypeDataAccess) return new GenericHollowList(new HollowListLookupDelegate<HollowRecord>((HollowListTypeDataAccess)typeState), ordinal); if(typeState instanceof HollowSetTypeDataAccess) return new GenericHollowSet(new HollowSetLookupDelegate<HollowRecord>((HollowSetTypeDataAccess)typeState), ordinal); if(typeState instanceof HollowMapTypeDataAccess) return new GenericHollowMap(new HollowMapLookupDelegate<HollowRecord, HollowRecord>((HollowMapTypeDataAccess)typeState), ordinal); } else { HollowSchema schema = dataAccess.getMissingDataHandler().handleSchema(typeName); if(schema instanceof HollowObjectSchema) return new GenericHollowObject(new HollowObjectGenericDelegate(new HollowObjectMissingDataAccess(dataAccess, typeName)), ordinal); if(schema instanceof HollowListSchema) return new GenericHollowList(new HollowListLookupDelegate<HollowRecord>(new HollowListMissingDataAccess(dataAccess, typeName)), ordinal); if(schema instanceof HollowSetSchema) return new GenericHollowSet(new HollowSetLookupDelegate<HollowRecord>(new HollowSetMissingDataAccess(dataAccess, typeName)), ordinal); if(schema instanceof HollowMapSchema) return new GenericHollowMap(new HollowMapLookupDelegate<HollowRecord, HollowRecord>(new HollowMapMissingDataAccess(dataAccess, typeName)), ordinal); } throw new UnsupportedOperationException("I don't know how to instantiate a generic object given a " + typeState.getClass().getSimpleName()); }