Source code: net/jxta/ext/config/MulticastAddress.java
1 /*
2 * Copyright (c) 2001 Sun Microsystems, Inc. All rights
3 * reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. The end-user documentation included with the redistribution,
18 * if any, must include the following acknowledgment:
19 * "This product includes software developed by the
20 * Sun Microsystems, Inc. for Project JXTA."
21 * Alternately, this acknowledgment may appear in the software itself,
22 * if and wherever such third-party acknowledgments normally appear.
23 *
24 * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"
25 * must not be used to endorse or promote products derived from this
26 * software without prior written permission. For written
27 * permission, please contact Project JXTA at http://www.jxta.org.
28 *
29 * 5. Products derived from this software may not be called "JXTA",
30 * nor may "JXTA" appear in their name, without prior written
31 * permission of Sun.
32 *
33 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
37 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
40 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * SUCH DAMAGE.
45 * ====================================================================
46 *
47 * This software consists of voluntary contributions made by many
48 * individuals on behalf of Project JXTA. For more
49 * information on Project JXTA, please see
50 * <http://www.jxta.org/>.
51 *
52 * This license is based on the BSD license adopted by the Apache Foundation.
53 *
54 * $Id: MulticastAddress.java,v 1.10 2004/11/30 22:42:10 gonzo Exp $
55 */
56 package net.jxta.ext.config;
57
58 import java.net.URI;
59
60 /**
61 * Multicast address container.
62 *
63 * @author james todd [gonzo at jxta dot org]
64 * @version
65 * @created November 13, 2003
66 */
67 public class MulticastAddress
68 extends Address {
69
70 private boolean isMulticast = Default.MULTICAST_IS_ENABLED;
71 private int size = Default.MULTICAST_SIZE;
72
73
74 /**
75 * Constructor for the MulticastAddress object
76 */
77 public MulticastAddress() {
78 this(null);
79 }
80
81
82 /**
83 * Constructor for the MulticastAddress object
84 *
85 * @param ma Description of the Parameter
86 */
87 public MulticastAddress(MulticastAddress ma) {
88 super(ma);
89
90 setAddress(ma != null ? ma.getAddress() : Default.MULTICAST_ADDRESS);
91 setMulticast(ma != null ? ma.isMulticast() : Default.MULTICAST_IS_ENABLED);
92 setSize(ma != null ? ma.getSize() : Default.MULTICAST_SIZE);
93 }
94
95
96 /**
97 * Gets the multicast attribute of the MulticastAddress object
98 *
99 * @return The multicast value
100 */
101 public boolean isMulticast() {
102 return this.isMulticast;
103 }
104
105
106 /**
107 * Sets the multicast attribute of the MulticastAddress object
108 *
109 * @param isMulticast The new multicast value
110 */
111 public void setMulticast(boolean isMulticast) {
112 this.isMulticast = isMulticast;
113 }
114
115
116 /**
117 * Gets the size attribute of the MulticastAddress object
118 *
119 * @return The size value
120 */
121 public int getSize() {
122 return this.size;
123 }
124
125
126 /**
127 * Sets the size attribute of the MulticastAddress object
128 *
129 * @param size The new size value
130 */
131 public void setSize(int size) {
132 this.size = size;
133 }
134
135
136 /**
137 * Sets the multicastAddress attribute of the MulticastAddress object
138 *
139 * @param multicastAddress The new multicastAddress value
140 * @exception IllegalArgumentException Description of the Exception
141 */
142 public void setAddress(URI multicastAddress) {
143 if (multicastAddress != null &&
144 !multicastAddress.getScheme().equals(Default.ANY_UDP_ADDRESS.getScheme())) {
145 throw new IllegalArgumentException("invalid multicast address: " + multicastAddress);
146 }
147
148 super.setAddress(multicastAddress);
149 }
150 }
151