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}