1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.river.discovery;
20
21 import java.io.IOException;
22 import java.io.InvalidObjectException;
23 import java.io.ObjectInputStream;
24 import java.io.Serializable;
25 import net.jini.core.constraint.InvocationConstraint;
26 import org.apache.river.api.io.AtomicSerial;
27 import org.apache.river.api.io.AtomicSerial.GetArg;
28
29
30
31
32
33
34
35
36
37
38
39
40
41 @AtomicSerial
42 public final class MulticastMaxPacketSize
43 implements InvocationConstraint, Serializable
44 {
45 private static final long serialVersionUID = 2277375127808559673L;
46
47
48 public static final int MIN_MAX_PACKET_SIZE = 512;
49
50
51
52
53
54
55 private final int size;
56
57
58
59
60
61
62
63
64
65 public MulticastMaxPacketSize(int size) {
66 this(size, check(size));
67 }
68
69 MulticastMaxPacketSize(GetArg arg) throws IOException {
70 this(arg.get("size",0));
71 }
72
73 private MulticastMaxPacketSize(int size, boolean check){
74 this.size = size;
75 }
76
77 private static boolean check(int size){
78 if (size < MIN_MAX_PACKET_SIZE) {
79 throw new IllegalArgumentException("invalid size");
80 }
81 return true;
82 }
83
84
85
86
87
88
89 public int getSize() {
90 return size;
91 }
92
93 public int hashCode() {
94 return MulticastMaxPacketSize.class.hashCode() + size;
95 }
96
97 public boolean equals(Object obj) {
98 return obj instanceof MulticastMaxPacketSize &&
99 size == ((MulticastMaxPacketSize) obj).size;
100 }
101
102 public String toString() {
103 return "MulticastMaxPacketSize[" + size + "]";
104 }
105
106 private void readObject(ObjectInputStream in)
107 throws IOException, ClassNotFoundException
108 {
109 in.defaultReadObject();
110 if (size <= MIN_MAX_PACKET_SIZE) {
111 throw new InvalidObjectException("invalid size");
112 }
113 }
114 }