From bd2208922ea6a0486074c72a57b01d7df368f885 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 6 Jan 2021 09:12:56 +0100 Subject: Generating IP addresses. --- .../java/io/trygvis/rules/network/Ipv4Address.java | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/io/trygvis/rules/network/Ipv4Address.java (limited to 'src/main/java/io/trygvis/rules/network/Ipv4Address.java') diff --git a/src/main/java/io/trygvis/rules/network/Ipv4Address.java b/src/main/java/io/trygvis/rules/network/Ipv4Address.java new file mode 100644 index 0000000..071bca9 --- /dev/null +++ b/src/main/java/io/trygvis/rules/network/Ipv4Address.java @@ -0,0 +1,35 @@ +package io.trygvis.rules.network; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import java.io.IOException; + +@JsonSerialize(using = Ipv4Address.Serializer.class) +public class Ipv4Address { + public final int address; + + public Ipv4Address(int address) { + this.address = address; + } + + @Override + public String toString() { + return "%d.%d.%d.%d".formatted( + address >> 24 & 0xff, + address >> 16 & 0xff, + address >> 8 & 0xff, + address & 0xff); + } + + public static class Serializer extends JsonSerializer { + @Override + public void serialize(Ipv4Address value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeStartObject(); + gen.writeObjectField("value", value.toString()); + gen.writeEndObject(); + } + } +} -- cgit v1.2.3