diff --git a/src/main/java/com/zdjizhi/flink/voip/records/SchemaType.java b/src/main/java/com/zdjizhi/flink/voip/records/SchemaType.java new file mode 100644 index 0000000..40c4a91 --- /dev/null +++ b/src/main/java/com/zdjizhi/flink/voip/records/SchemaType.java @@ -0,0 +1,51 @@ +package com.zdjizhi.flink.voip.records; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * The SchemaType enum represents different types of data schemas. + * + * @author chaoc + * @since 1.0 + */ +@AllArgsConstructor +@Getter +public enum SchemaType { + + /** + * Represents the SIP schema type. + */ + SIP("SIP"), + + /** + * Represents the RTP schema type. + */ + RTP("RTP"), + + /** + * Represents the VoIP schema type. + */ + VOIP("VoIP"); + + /** + * The string value of the SchemaType. + */ + private final String value; + + /** + * Get the SchemaType enum based on the provided string value. + * + * @param value The string value of the SchemaType to retrieve. + * @return The corresponding SchemaType enum. + * @throws IllegalArgumentException if the provided value does not match any known SchemaType. + */ + public static SchemaType of(final String value) { + for (SchemaType schemaType : values()) { + if (schemaType.value.equalsIgnoreCase(value)) { + return schemaType; + } + } + throw new IllegalArgumentException("Unknown SchemaType value '" + value + "'."); + } +} \ No newline at end of file diff --git a/src/main/java/com/zdjizhi/flink/voip/records/StreamDir.java b/src/main/java/com/zdjizhi/flink/voip/records/StreamDir.java new file mode 100644 index 0000000..84418c8 --- /dev/null +++ b/src/main/java/com/zdjizhi/flink/voip/records/StreamDir.java @@ -0,0 +1,51 @@ +package com.zdjizhi.flink.voip.records; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * The StreamDir enum represents different types of data stream directions. + * + * @author chaoc + * @since 1.0 + */ +@AllArgsConstructor +@Getter +public enum StreamDir { + + /** + * Represents the Client-to-Server (C2S) stream direction. + */ + C2S(1), + + /** + * Represents the Server-to-Client (S2C) stream direction. + */ + S2C(2), + + /** + * Represents the bidirectional (double) stream direction. + */ + DOUBLE(3); + + /** + * The integer value of the StreamDir. + */ + private final int value; + + /** + * Get the StreamDir enum based on the provided integer value. + * + * @param value The integer value of the StreamDir to retrieve. + * @return The corresponding StreamDir enum. + * @throws IllegalArgumentException if the provided value does not match any known StreamDir. + */ + public static StreamDir of(int value) { + for (StreamDir streamDir : values()) { + if (value == streamDir.value) { + return streamDir; + } + } + throw new IllegalArgumentException("Unknown StreamDir value '" + value + "'."); + } +}