
io.permazen.core.RegularSimpleFieldStorageInfo Maven / Gradle / Ivy
/*
* Copyright (C) 2015 Archie L. Cobbs. All rights reserved.
*/
package io.permazen.core;
import io.permazen.core.type.ReferenceFieldType;
import java.util.NavigableSet;
import java.util.Set;
import java.util.function.Predicate;
/**
* Represents an index on a regular simple field (not a sub-field of a complex field).
*/
class RegularSimpleFieldStorageInfo extends SimpleFieldStorageInfo {
RegularSimpleFieldStorageInfo(SimpleField field) {
super(field);
assert field.parent == null;
}
@Override
void unreferenceAll(Transaction tx, ObjId target, NavigableSet referrers) {
assert this.fieldType instanceof ReferenceFieldType;
for (ObjId referrer : referrers)
tx.writeSimpleField(referrer, this.storageId, null, false);
}
@Override
@SuppressWarnings("unchecked")
void readAllNonNull(Transaction tx, ObjId target, Set values, Predicate super T> filter) {
final T value = (T)tx.readSimpleField(target, this.storageId, false);
if (value != null && (filter == null || filter.test(value)))
values.add(value);
}
// Object
@Override
public String toString() {
return "simple field with " + this.fieldType;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy