public static IpProto fromJson(Object json) throws JSONParseException { if (json instanceof Integer) { return IpProto.of(((Integer) json).intValue()); } else if (json instanceof String) { if (((String) json).equalsIgnoreCase("icmp")) return ICMP; else if (((String) json).equalsIgnoreCase("tcp")) return TCP; else if (((String) json).equalsIgnoreCase("udp")) return UDP; else throw new JSONParseException("Unknown IP protocol: " + (String) json); } else { throw new JSONParseException("Invalid value for IP protocol: " + json); } }
@Override public IpProto applyMask(IpProto mask) { return IpProto.of(this.ipProto & mask.ipProto); }