001: /**
002: * The XMOJO Project 5
003: * Copyright © 2003 XMOJO.org. All rights reserved.
004:
005: * NO WARRANTY
006:
007: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
008: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
009: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
010: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
011: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
012: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
013: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
014: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
015: * REPAIR OR CORRECTION.
016:
017: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
018: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
019: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
020: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
021: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
022: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
023: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
024: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
025: * SUCH DAMAGES.
026: **/package javax.management.relation;
027:
028: import java.io.Serializable;
029: import java.util.List;
030: import java.util.ArrayList;
031:
032: import javax.management.ObjectName;
033:
034: /**
035: * Represents an unresolved role: a role not retrieved from a relation due to
036: * a problem. It provides the role name, value (if problem when trying to set
037: * the role) and an integer defining the problem (constants defined in RoleStatus).
038: */
039: public class RoleUnresolved implements Serializable {
040: // role name
041: String roleName = null;
042:
043: // list of role values (contains list of ObjectNames)
044: List roleValueList = null;
045:
046: // problem type
047: int pbType;
048:
049: /**
050: * Constructor to create RoleUnresolved
051: *
052: * @param theRoleName - name of the role
053: *
054: * @param theRoleValue - value of the role (if problem when setting the role)
055: *
056: * @param thePbType - type of problem (according to known problem types,
057: * listed as static final members).
058: *
059: * @exception java.lang.IllegalArgumentException - if null parameter
060: * or incorrect problem type
061: */
062: public RoleUnresolved(String theRoleName, List theRoleValue,
063: int thePbType) throws IllegalArgumentException {
064: if (thePbType < 0 || thePbType > 7)
065: throw new IllegalArgumentException();
066:
067: if (theRoleName == null)
068: throw new IllegalArgumentException();
069:
070: this .roleName = theRoleName;
071: this .roleValueList = theRoleValue;
072: this .pbType = thePbType;
073: }
074:
075: /**
076: * Clone. To create a duplicate copy of the current object (i.e) RoleUnresolved
077: *
078: * Overrides:
079: * clone in class java.lang.Object
080: * @return
081: * an independent clone
082: */
083: public Object clone() {
084: return new RoleUnresolved(getRoleName(), getRoleValue(),
085: getProblemType());
086: }
087:
088: /**
089: * Retrieves problem type
090: *
091: * @return an integer corresponding to a problem, those being described
092: * as static final members of current class.
093: */
094: public int getProblemType() {
095: return this .pbType;
096: }
097:
098: /**
099: * Retrieves role name
100: *
101: * @return Name of the role
102: */
103: public String getRoleName() {
104: return this .roleName;
105: }
106:
107: /**
108: * Retrieves role value
109: *
110: * @return an ArrayList of ObjectName objects, the one provided to be set
111: * in given role. Null if the unresolved role is returned
112: * for a read access.
113: */
114: public List getRoleValue() {
115: return this .roleValueList;
116: }
117:
118: /**
119: * Sets problem type
120: *
121: * @param thePbType - integer corresponding to a problem. Must be one of
122: * those described as static final members of current class.
123: *
124: * @exception java.lang.IllegalArgumentException - if incorrect problem type
125: */
126: public void setProblemType(int thePbType)
127: throws IllegalArgumentException {
128: if (thePbType < 1 || thePbType > 7)
129: throw new IllegalArgumentException();
130: }
131:
132: /**
133: * Sets role name
134: *
135: * @exception java.lang.IllegalArgumentException - if null parameter
136: */
137: public void setRoleName(String theRoleName)
138: throws IllegalArgumentException {
139: if (theRoleName == null)
140: throw new IllegalArgumentException();
141:
142: this .roleName = theRoleName;
143: }
144:
145: /**
146: * Sets role value
147: *
148: * @param theRoleValue - ArrayList of ObjectName objects for referenced
149: * MBeans not set in role.
150: */
151: public void setRoleValue(List theRoleValue) {
152: this .roleValueList = (ArrayList) theRoleValue;
153: }
154:
155: /**
156: * Prints a string describing the role
157: *
158: * Overrides:
159: * toString in class java.lang.Object
160: *
161: * @return String representation of the role
162: */
163: public String toString() {
164: StringBuffer str = new StringBuffer();
165: str.append(getRoleName());
166: str.append(":");
167:
168: for (int i = 0; i < roleValueList.size(); i++) {
169: str
170: .append(((ObjectName) (roleValueList.get(i)))
171: .toString());
172: str.append(",");
173: }
174:
175: String toRet = str.toString();
176:
177: return toRet.substring(0, toRet.length() - 1);
178: }
179: }
|