001/*****************************************************************************
002 * Copyright (C) NanoContainer Organization. All rights reserved.            *
003 * ------------------------------------------------------------------------- *
004 * The software in this package is published under the terms of the BSD      *
005 * style license a copy of which has been included with this distribution in *
006 * the LICENSE.txt file.                                                     *
007 *                                                                           *
008 * Original code by Joerg Schaible                                           *
009 *****************************************************************************/
010
011package org.picocontainer.gems.jmx;
012
013import javax.management.MBeanInfo;
014import javax.management.NotCompliantMBeanException;
015import javax.management.StandardMBean;
016
017
018/**
019 * StandardMBean with a provided MBeanInfo.
020 * @author Jörg Schaible
021 */
022public final class StandardNanoMBean extends StandardMBean {
023    private final MBeanInfo mBeanInfo;
024
025    /**
026     * Construct a StandardNanoMBean. The only difference to a {@link StandardMBean} of the JSR 3 is the user provided
027     * {@link MBeanInfo}.
028     * @param implementation
029     * @param management
030     * @param mBeanInfo
031     * @throws NotCompliantMBeanException
032     */
033    public StandardNanoMBean(final Object implementation, final Class management, final MBeanInfo mBeanInfo)
034            throws NotCompliantMBeanException {
035        super(implementation, management);
036        this.mBeanInfo = mBeanInfo;
037    }
038
039    /**
040     * Return the provided {@link MBeanInfo}.
041     * @see javax.management.StandardMBean#getMBeanInfo()
042     */
043    @Override
044        public MBeanInfo getMBeanInfo() {
045        return mBeanInfo;
046    }
047}