package de.take_weiland.mods.commons.internal.sync.builtin; import de.take_weiland.mods.commons.net.MCDataInput; import de.take_weiland.mods.commons.net.MCDataOutput; import de.take_weiland.mods.commons.sync.Syncer; /** * @author diesieben07 */ final class EnumSyncer<E extends Enum<E>> implements Syncer<E, E> { private final Class<E> clazz; EnumSyncer(Class<E> clazz) { this.clazz = clazz; } @Override public Class<E> getCompanionType() { return clazz; } @Override public boolean equal(E value, E companion) { return value == companion; } @Override public E writeAndUpdate(E value, E companion, MCDataOutput out) { out.writeEnum(value); return value; } @Override public E read(E value, E companion, MCDataInput in) { return in.readEnum(clazz); } }