| package eu.mulk.jgvariant.ostree; |
| |
| import static org.apiguardian.api.API.Status.STABLE; |
| |
| import org.apiguardian.api.API; |
| |
| /** An operation in a static delta. */ |
| @API(status = STABLE) |
| public enum DeltaOperation { |
| OPEN_SPLICE_AND_CLOSE((byte) 'S'), |
| OPEN((byte) 'o'), |
| WRITE((byte) 'w'), |
| SET_READ_SOURCE((byte) 'r'), |
| UNSET_READ_SOURCE((byte) 'R'), |
| CLOSE((byte) 'c'), |
| BSPATCH((byte) 'B'); |
| |
| private final byte byteValue; |
| |
| DeltaOperation(byte byteValue) { |
| this.byteValue = byteValue; |
| } |
| |
| /** |
| * The serialized byte value. |
| * |
| * @return a serialized byte value for use in GVariant structures. |
| */ |
| public byte byteValue() { |
| return byteValue; |
| } |
| |
| /** |
| * Returns the {@link DeltaOperation} corresponding to a serialized GVariant value. |
| * |
| * @param byteValue a serialized value as used in GVariant. |
| * @return the {@link DeltaOperation} corresponding to the serialized value. |
| * @throws IllegalArgumentException if the byte value is invalid. |
| */ |
| public static DeltaOperation valueOf(byte byteValue) { |
| return switch (byteValue) { |
| case (byte) 'S' -> OPEN_SPLICE_AND_CLOSE; |
| case (byte) 'o' -> OPEN; |
| case (byte) 'w' -> WRITE; |
| case (byte) 'r' -> SET_READ_SOURCE; |
| case (byte) 'R' -> UNSET_READ_SOURCE; |
| case (byte) 'c' -> CLOSE; |
| case (byte) 'B' -> BSPATCH; |
| default -> throw new IllegalArgumentException( |
| "invalid DeltaOperation: %d".formatted(byteValue)); |
| }; |
| } |
| } |