/* * Copyright (c) 2006, 2015 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.management; import java.lang.annotation.*; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.*; /** *

* An annotation on a constructor that shows how the parameters of * that constructor correspond to the constructed object's getter * methods. For example: *

*
*
 *         public class MemoryUsage {
 *             // standard JavaBean conventions with getters
 *             @ConstructorParameters({"init", "used", "committed", "max"})
 *             public MemoryUsage(long init, long used,
 *                                long committed, long max) {...}
 *             public long getInit() {...}
 *             public long getUsed() {...}
 *             public long getCommitted() {...}
 *             public long getMax() {...}
 *         }
 *     
*
*

* The annotation shows that the first parameter of the constructor * can be retrieved with the {@code getInit()} method, the second one with * the {@code getUsed()} method, and so on. Since parameter names are not in * general available at runtime, without the annotation there would be * no way of knowing which parameter corresponds to which property. *

*

* If a constructor is annotated by the both {@code @java.beans.ConstructorProperties} * and {@code @javax.management.ConstructorParameters} annotations * the JMX introspection will give an absolute precedence to the latter one. *

* * @since 9 */ @Documented @Target(CONSTRUCTOR) @Retention(RUNTIME) public @interface ConstructorParameters { /** *

The getter names.

* * @return the getter names corresponding to the parameters in the * annotated constructor. */ String[] value(); }