blob: 51de097c561c72457906868a5c8157c7fd204370 [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.Authorization;
/**
*
*/
public final class OSGiAuthorization {
/**
* The name of the authorization
*/
private String name;
/**
* The roles
*/
private String[] roles;
/**
* Construct the instance from the supplied composite data
*
* @param data
*/
public OSGiAuthorization(CompositeData data) {
if (data != null) {
this.name = (String) data.get(UserAdminMBean.NAME);
this.roles = (String[]) data.get(UserAdminMBean.ROLES);
}
}
/**
* Construct an instance from the OSGi authorization instance
*
* @param authorization
*/
public OSGiAuthorization(Authorization authorization) {
this(authorization.getName(), authorization.getRoles());
}
/**
* Construct and instance using the supplied name and role names
*
* @param name
* @param roles
*/
public OSGiAuthorization(String name, String[] roles) {
this.name = name;
this.roles = roles;
}
/**
* Convert the receiver into the composite data it represents
*
* @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.ROLES, roles);
return new CompositeDataSupport(UserAdminMBean.AUTORIZATION_TYPE, items);
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @return the roles
*/
public String[] getRoles() {
return roles;
}
}