001// Licensed under the MIT license. See LICENSE file in the project root for full license information.
002
003package de.bytefish.pgbulkinsert.pgsql.model.network;
004
005import java.util.Arrays;
006import java.util.List;
007import java.util.stream.Collectors;
008import java.util.stream.IntStream;
009import java.util.stream.StreamSupport;
010
011public class MacAddress {
012
013    private final byte[] addressBytes;
014
015    public MacAddress(byte[] addressBytes) {
016
017        if(addressBytes == null) {
018            throw new IllegalArgumentException("addressBytes");
019        }
020
021        if(addressBytes.length != 6) {
022            throw new IllegalArgumentException("addressBytes");
023        }
024
025        this.addressBytes = addressBytes;
026    }
027
028    public byte[] getAddressBytes() {
029        return addressBytes;
030    }
031
032    @Override
033    public String toString() {
034
035        List<String> bytesAsHexString = IntStream
036                .range(0, addressBytes.length)
037                .map(idx -> addressBytes[idx])
038                .mapToObj(value -> String.format("0x%x", value))
039                .collect(Collectors.toList());
040
041        return String.join("-", bytesAsHexString);
042    }
043}