class RegclassType extends PGType<Regclass> {

    static final int OID = 2205;

    private static final int TYPE_LEN = 4;
    private static final int TYPE_MOD = -1;

    public static final RegclassType INSTANCE = new RegclassType();

    private RegclassType() {
        super(OID, TYPE_LEN, TYPE_MOD, "regclass");
    }

    @Override
    public int typArray() {
        return PGArray.REGCLASS_ARRAY.oid();
    }

    @Override
    public String typeCategory() {
        return TypeCategory.NUMERIC.code();
    }

    @Override
    public String type() {
        return Type.BASE.code();
    }

    @Override
    public int writeAsBinary(ByteBuf buffer, Regclass value) {
        buffer.writeInt(TYPE_LEN);
        buffer.writeInt(value.oid());
        return INT32_BYTE_SIZE + TYPE_LEN;
    }

    @Override
    public Regclass readBinaryValue(ByteBuf buffer, int valueLength) {
        int oid = buffer.readInt();
        return new Regclass(oid, String.valueOf(oid));
    }

    @Override
    byte[] encodeAsUTF8Text(Regclass value) {
        return String.valueOf(value.oid()).getBytes(StandardCharsets.UTF_8);
    }

    @Override
    Regclass decodeUTF8Text(byte[] bytes) {<FILL_FUNCTION_BODY>}
}

        String oidStr = new String(bytes, StandardCharsets.UTF_8);
        try {
            int oid = Integer.parseInt(oidStr);
            return new Regclass(oid, oidStr);
        } catch (NumberFormatException e) {
            var indexParts = new IndexParts(oidStr);
            return Regclass.fromRelationName(indexParts.toRelationName());
        }
    
<methods>public int oid() ,public abstract io.crate.types.Regclass readBinaryValue(ByteBuf, int) ,public io.crate.types.Regclass readTextValue(ByteBuf, int) ,public abstract int typArray() ,public java.lang.String typDelim() ,public int typElem() ,public io.crate.types.Regproc typInput() ,public java.lang.String typName() ,public io.crate.types.Regproc typOutput() ,public io.crate.types.Regproc typReceive() ,public io.crate.types.Regproc typSend() ,public abstract java.lang.String type() ,public abstract java.lang.String typeCategory() ,public short typeLen() ,public int typeMod() ,public abstract int writeAsBinary(ByteBuf, io.crate.types.Regclass) ,public int writeAsText(ByteBuf, io.crate.types.Regclass) <variables>static final int INT32_BYTE_SIZE,private static final Logger LOGGER,private final non-sealed int oid,private final non-sealed java.lang.String typName,private final non-sealed int typeLen,private final non-sealed int typeMod