IdA1UserColumn.java
package com.io7m.idstore.protocol.admin.cb;
import com.io7m.cedarbridge.runtime.api.CBDeserializerMethod;
import com.io7m.cedarbridge.runtime.api.CBSerializableType;
import com.io7m.cedarbridge.runtime.api.CBSerializationContextType;
import com.io7m.cedarbridge.runtime.api.CBSerializerMethod;
import java.io.IOException;
/**
* A column to use for sorting users.
*/
public sealed interface IdA1UserColumn extends CBSerializableType {
/**
* Serialize a value of type IdA1UserColumn.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
static void serialize(final CBSerializationContextType $context, final IdA1UserColumn $x) throws
IOException {
if ($x instanceof ByID $y) {
$context.writeVariantIndex(0);
ByID.serialize($context, $y);
return;
}
if ($x instanceof ByIDName $y) {
$context.writeVariantIndex(1);
ByIDName.serialize($context, $y);
return;
}
if ($x instanceof ByRealName $y) {
$context.writeVariantIndex(2);
ByRealName.serialize($context, $y);
return;
}
if ($x instanceof ByTimeCreated $y) {
$context.writeVariantIndex(3);
ByTimeCreated.serialize($context, $y);
return;
}
if ($x instanceof ByTimeUpdated $y) {
$context.writeVariantIndex(4);
ByTimeUpdated.serialize($context, $y);
return;
}
throw $context.errorUnrecognizedVariantCaseClass(IdA1UserColumn.class, $x.getClass());
}
/**
* Deserialize a value of type IdA1UserColumn.
* @param $context The serialization context.
* @return A value of type IdA1UserColumn.
*/
@CBDeserializerMethod
static IdA1UserColumn deserialize(final CBSerializationContextType $context) throws IOException {
final var $i = $context.readVariantIndex();
switch ($i) {
case 0: {
return ByID.deserialize($context);
}
case 1: {
return ByIDName.deserialize($context);
}
case 2: {
return ByRealName.deserialize($context);
}
case 3: {
return ByTimeCreated.deserialize($context);
}
case 4: {
return ByTimeUpdated.deserialize($context);
}
default: {
throw $context.errorUnrecognizedVariantIndex(IdA1UserColumn.class, $i);
}
}
}
/**
* Order by user ID.
*/
record ByID() implements CBSerializableType, IdA1UserColumn {
public ByID {
}
/**
* Serialize a value of type com.io7m.idstore.protocol.admin.cb.ByID.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
public static void serialize(final CBSerializationContextType $context, final ByID $x) throws
IOException {
// Serialization calls in field order.
}
/**
* Deserialize a value of type com.io7m.idstore.protocol.admin.cb.ByID.
* @param $context The serialization context.
* @return A value of type com.io7m.idstore.protocol.admin.cb.ByID.
*/
@CBDeserializerMethod
public static ByID deserialize(final CBSerializationContextType $context) throws IOException {
// Deserialization calls in field order.
return new ByID();
}
}
/**
* Order by user id name.
*/
record ByIDName() implements CBSerializableType, IdA1UserColumn {
public ByIDName {
}
/**
* Serialize a value of type com.io7m.idstore.protocol.admin.cb.ByIDName.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
public static void serialize(final CBSerializationContextType $context, final ByIDName $x)
throws IOException {
// Serialization calls in field order.
}
/**
* Deserialize a value of type com.io7m.idstore.protocol.admin.cb.ByIDName.
* @param $context The serialization context.
* @return A value of type com.io7m.idstore.protocol.admin.cb.ByIDName.
*/
@CBDeserializerMethod
public static ByIDName deserialize(final CBSerializationContextType $context) throws
IOException {
// Deserialization calls in field order.
return new ByIDName();
}
}
/**
* Order by user realname.
*/
record ByRealName() implements CBSerializableType, IdA1UserColumn {
public ByRealName {
}
/**
* Serialize a value of type com.io7m.idstore.protocol.admin.cb.ByRealName.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
public static void serialize(final CBSerializationContextType $context, final ByRealName $x)
throws IOException {
// Serialization calls in field order.
}
/**
* Deserialize a value of type com.io7m.idstore.protocol.admin.cb.ByRealName.
* @param $context The serialization context.
* @return A value of type com.io7m.idstore.protocol.admin.cb.ByRealName.
*/
@CBDeserializerMethod
public static ByRealName deserialize(final CBSerializationContextType $context) throws
IOException {
// Deserialization calls in field order.
return new ByRealName();
}
}
/**
* Order by user creation time.
*/
record ByTimeCreated() implements CBSerializableType, IdA1UserColumn {
public ByTimeCreated {
}
/**
* Serialize a value of type com.io7m.idstore.protocol.admin.cb.ByTimeCreated.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
public static void serialize(final CBSerializationContextType $context, final ByTimeCreated $x)
throws IOException {
// Serialization calls in field order.
}
/**
* Deserialize a value of type com.io7m.idstore.protocol.admin.cb.ByTimeCreated.
* @param $context The serialization context.
* @return A value of type com.io7m.idstore.protocol.admin.cb.ByTimeCreated.
*/
@CBDeserializerMethod
public static ByTimeCreated deserialize(final CBSerializationContextType $context) throws
IOException {
// Deserialization calls in field order.
return new ByTimeCreated();
}
}
/**
* Order by user update time.
*/
record ByTimeUpdated() implements CBSerializableType, IdA1UserColumn {
public ByTimeUpdated {
}
/**
* Serialize a value of type com.io7m.idstore.protocol.admin.cb.ByTimeUpdated.
* @param $context The serialization context.
* @param $x The value to be serialized.
*/
@CBSerializerMethod
public static void serialize(final CBSerializationContextType $context, final ByTimeUpdated $x)
throws IOException {
// Serialization calls in field order.
}
/**
* Deserialize a value of type com.io7m.idstore.protocol.admin.cb.ByTimeUpdated.
* @param $context The serialization context.
* @return A value of type com.io7m.idstore.protocol.admin.cb.ByTimeUpdated.
*/
@CBDeserializerMethod
public static ByTimeUpdated deserialize(final CBSerializationContextType $context) throws
IOException {
// Deserialization calls in field order.
return new ByTimeUpdated();
}
}
}