package com.codepoetics.octarine.records;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
final class ValidRecord<T> implements Valid<T> {
private final Record record;
private final Schema schema;
public ValidRecord(Record record, Schema schema) {
this.record = record;
this.schema = schema;
}
@Override
public <S> Optional<S> get(Key<? extends S> key) {
return record.get(key);
}
@Override
public Set<Key<?>> keys() {
return record.keys();
}
@Override
public Map<Key<?>, Object> values() {
return record.values();
}
@Override
public boolean containsKey(Key<?> key) {
return record.containsKey(key);
}
@Override
public Record with(Value... values) {
return record.with(values);
}
@Override
public Record with(Record other) {
return record.with(other);
}
@Override
public Record without(Collection<Key<?>> keys) {
return record.without(keys);
}
@Override
public MutableRecord mutable() {
return record.mutable();
}
@Override
public Record select(Collection<Key<?>> selectedKeys) {
return record.select(selectedKeys);
}
@Override
public String toString() {
return record.toString();
}
@Override
public int hashCode() {
return record.hashCode();
}
@Override
public boolean equals(Object other) {
return record.equals(other);
}
@Override
public Schema<T> schema() {
return schema;
}
}