Newer
Older
KeeperJerry_Launcher / Launcher / source / serialize / config / ConfigObject.java
@KeeperJerry KeeperJerry on 27 Jun 2020 794 bytes Рефактор кода
package launcher.serialize.config;

import launcher.LauncherAPI;
import launcher.serialize.HOutput;
import launcher.serialize.config.entry.BlockConfigEntry;
import launcher.serialize.stream.StreamObject;

import java.io.IOException;
import java.util.Objects;

public abstract class ConfigObject extends StreamObject
{
    @LauncherAPI
    public final BlockConfigEntry block;

    @LauncherAPI
    protected ConfigObject(BlockConfigEntry block)
    {
        this.block = Objects.requireNonNull(block, "block");
    }

    @Override
    public final void write(HOutput output) throws IOException
    {
        block.write(output);
    }

    @FunctionalInterface
    public interface Adapter<O extends ConfigObject>
    {
        @LauncherAPI
        O convert(BlockConfigEntry entry);
    }
}