class ReadonlyTableStore<T extends Metadata> extends AbstractCloseable implements TableStore<T> {
    private final T metadata;

    public ReadonlyTableStore(T metadata) {
        this.metadata = metadata;
        singleThreadedCheckDisabled(true);
    }

    @Override
    public T metadata() {
        return metadata;
    }

    @Override
    protected void performClose() {
    }

    @Override
    public LongValue acquireValueFor(CharSequence key, long defaultValue) {
        throw new UnsupportedOperationException("Read only");
    }

    @Override
    public <T> void forEachKey(T accumulator, TableStoreIterator<T> tsIterator) {
        throw new UnsupportedOperationException("Read only");
    }

    @Override
    public <R> R doWithExclusiveLock(Function<TableStore<T>, ? extends R> code) {
        UnsupportedOperationException read_only = new UnsupportedOperationException("Read only");
        throw read_only;
    }

    @Nullable
    @Override
    public File file() {
        throwExceptionIfClosed();

        UnsupportedOperationException read_only = new UnsupportedOperationException("Read only");
        throw read_only;
    }

    @NotNull
    @Override
    public MappedBytes bytes() {<FILL_FUNCTION_BODY>}

    @NotNull
    @Override
    public String dump() {
        return metadata.toString();
    }

    @Override
    public String dump(WireType wireType) {
        return metadata.toString();
    }

    @NotNull
    @Override
    public String shortDump() {
        return metadata.toString();
    }

    @Override
    public void writeMarshallable(@NotNull WireOut wire) {

        UnsupportedOperationException read_only = new UnsupportedOperationException("Read only");
        throw read_only;
    }

    @Override
    public boolean readOnly() {
        return true;
    }

}

        throwExceptionIfClosed();

        UnsupportedOperationException read_only = new UnsupportedOperationException("Read only");
        throw read_only;
    
<methods>public static void assertCloseablesClosed() ,public final void close() ,public net.openhft.chronicle.core.StackTrace createdHere() ,public static void disableCloseableTracing() ,public static void enableCloseableTracing() ,public static void gcAndWaitForCloseablesToClose() ,public boolean isClosed() ,public boolean isClosing() ,public int referenceId() ,public void singleThreadedCheckDisabled(boolean) ,public void singleThreadedCheckReset() ,public void throwExceptionIfClosed() throws net.openhft.chronicle.core.io.ClosedIllegalStateException, net.openhft.chronicle.core.io.ThreadingIllegalStateException,public void throwExceptionIfClosedInSetter() throws net.openhft.chronicle.core.io.ClosedIllegalStateException, net.openhft.chronicle.core.io.ThreadingIllegalStateException,public java.lang.String toString() ,public static void unmonitor(net.openhft.chronicle.core.io.Closeable) ,public static boolean waitForCloseablesToClose(long) ,public void warnAndCloseIfNotClosed() <variables>private static final long CLOSED_OFFSET,protected static final boolean DISABLE_DISCARD_WARNING,private static final int STATE_CLOSED,private static final int STATE_CLOSING,private static final int STATE_NOT_CLOSED,protected static final long WARN_NS,private volatile transient int closed,protected volatile transient net.openhft.chronicle.core.StackTrace closedHere,private final transient net.openhft.chronicle.core.StackTrace createdHere,private final transient net.openhft.chronicle.core.io.AbstractCloseable.Finalizer finalizer,private int referenceId,private transient boolean singleThreadedCheckDisabled,private volatile transient java.lang.Thread usedByThread,private volatile transient net.openhft.chronicle.core.StackTrace usedByThreadHere