blob: ce9b4ebdd54e2001a6e3d2b11d3f69df111416e8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Oracle.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php.
* You may elect to redistribute this code under either of these licenses.
*
* Contributors:
* Hal Hildebrand - Initial JMX support
******************************************************************************/
package org.eclipse.gemini.mgmt.useradmin.internal;
import java.util.HashMap;
import java.util.Map;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.OpenDataException;
import org.osgi.jmx.service.useradmin.UserAdminMBean;
import org.osgi.service.useradmin.Group;
import org.osgi.service.useradmin.Role;
/**
*/
public final class OSGiGroup extends OSGiUser {
/**
* the members
*/
private String[] members;
/**
* the required members
*/
private String[] requiredMembers;
/**
* Construct an instance from the OSGi group
*
* @param group
*/
public OSGiGroup(Group group) {
super(group);
Role[] m = group.getMembers();
if (m != null) {
members = new String[m.length];
int i = 0;
for (Role role : m) {
members[i++] = role.getName();
}
} else {
members = new String[0];
}
Role[] rm = group.getRequiredMembers();
if (rm != null) {
requiredMembers = new String[rm.length];
int i = 0;
for (Role role : rm) {
requiredMembers[i++] = role.getName();
}
} else {
requiredMembers = new String[0];
}
}
/**
* Construct an instance from the supplied composite data
*
* @param data
*/
public OSGiGroup(CompositeData data) {
super(data);
members = (String[]) data.get(UserAdminMBean.MEMBERS);
requiredMembers = (String[]) data.get(UserAdminMBean.REQUIRED_MEMBERS);
}
/**
* Convert the receiver into the composite data representation
*
* @return the composite data representation of the receiver
* @throws OpenDataException
*/
public CompositeData asCompositeData() throws OpenDataException {
Map<String, Object> items = new HashMap<String, Object>();
items.put(UserAdminMBean.NAME, name);
items.put(UserAdminMBean.TYPE, type);
items.put(UserAdminMBean.MEMBERS, members);
items.put(UserAdminMBean.REQUIRED_MEMBERS, requiredMembers);
return new CompositeDataSupport(UserAdminMBean.GROUP_TYPE, items);
}
/**
* @return the members
*/
public String[] getMembers() {
return members;
}
/**
* @return the requiredMembers
*/
public String[] getRequiredMembers() {
return requiredMembers;
}
}