org.osgi.jmx.JmxConstants Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.aries.jmx.api Show documentation
Show all versions of org.apache.aries.jmx.api Show documentation
This bundle contains the JMX 1.1.0 API
The newest version!
/*
* Copyright (c) OSGi Alliance (2009). All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.osgi.jmx;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.management.openmbean.ArrayType;
import javax.management.openmbean.CompositeType;
import javax.management.openmbean.SimpleType;
import javax.management.openmbean.TabularType;
/**
* Constants for OSGi JMX Specification.
*
* Additionally, this class contains a number of utility types that are used in
* different places in the specification. These are {@link #LONG_ARRAY_TYPE},
* {@link #STRING_ARRAY_TYPE}, and {@link #PROPERTIES_TYPE}.
*
* @version $Rev: 1222666 $
* @Immutable
*/
public class JmxConstants {
/*
* Empty constructor to make sure this is not used as an object.
*/
private JmxConstants() {
// empty
}
/**
* The MBean Open type for an array of strings
*/
public static final ArrayType STRING_ARRAY_TYPE = Item
.arrayType(
1,
SimpleType.STRING);
/**
* The MBean Open type for an array of longs
*/
public static final ArrayType LONG_ARRAY_TYPE = Item
.arrayType(
1,
SimpleType.LONG);
/**
* For an encoded array we need to start with ARRAY_OF. This must be
* followed by one of the names in {@link #SCALAR}.
*
*/
public final static String ARRAY_OF = "Array of ";
/**
* For an encoded vector we need to start with ARRAY_OF. This must be
* followed by one of the names in {@link #SCALAR}.
*/
public final static String VECTOR_OF = "Vector of ";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link org.osgi.framework.Version}
*/
public static final String VERSION = "Version";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.String}
*/
public static final String STRING = "String";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Integer}
*/
public static final String INTEGER = "Integer";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Long}
*/
public static final String LONG = "Long";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Float}
*/
public static final String FLOAT = "Float";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Double}
*/
public static final String DOUBLE = "Double";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Byte}
*/
public static final String BYTE = "Byte";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Short}
*/
public static final String SHORT = "Short";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Character}
*/
public static final String CHARACTER = "Character";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.lang.Boolean}
*/
public static final String BOOLEAN = "Boolean";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.math.BigDecimal}
*/
public static final String BIGDECIMAL = "BigDecimal";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* {@link java.math.BigInteger}
*/
public static final String BIGINTEGER = "BigInteger";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the double
primitive type.
*/
public static final String P_DOUBLE = "double";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the float
primitive type.
*/
public static final String P_FLOAT = "float";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the long
primitive type.
*/
public static final String P_LONG = "long";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the int
primitive type.
*/
public static final String P_INT = "int";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the short
primitive type.
*/
public static final String P_SHORT = "short";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the byte
primitive type.
*/
public static final String P_BYTE = "byte";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the char
primitive type.
*/
public static final String P_CHAR = "char";
/**
* Value for {@link #PROPERTY_TYPE} Type
value in the case of
* the boolean
primitive type.
*/
public static final String P_BOOLEAN = "boolean";
/**
* A set of all scalars that can be used in the {@link #TYPE} property of a
* {@link #PROPERTIES_TYPE}. This contains the following names:
*
* - {@link #BIGDECIMAL}
* - {@link #BIGINTEGER}
* - {@link #BOOLEAN}
* - {@link #BYTE}
* - {@link #CHARACTER}
* - {@link #DOUBLE}
* - {@link #FLOAT}
* - {@link #INTEGER}
* - {@link #LONG}
* - {@link #SHORT}
* - {@link #STRING}
* - {@link #P_BYTE}
* - {@link #P_CHAR}
* - {@link #P_DOUBLE}
* - {@link #P_FLOAT}
* - {@link #P_INT}
* - {@link #P_LONG}
* - {@link #P_SHORT}
*/
public final static List SCALAR = Collections
.unmodifiableList(Arrays
.asList(
STRING,
INTEGER,
LONG,
FLOAT,
DOUBLE,
BYTE,
SHORT,
CHARACTER,
BOOLEAN,
BIGDECIMAL,
BIGINTEGER,
P_BYTE,
P_CHAR,
P_SHORT,
P_INT,
P_LONG,
P_DOUBLE,
P_FLOAT));
/**
* The key KEY.
*/
public static final String KEY = "Key";
/**
* The key of a property. The key is {@link #KEY} and the type is
* {@link SimpleType#STRING}.
*/
public static final Item KEY_ITEM = new Item(
KEY,
"The key of the property",
SimpleType.STRING);
/**
* The key VALUE.
*/
public static final String VALUE = "Value";
/**
* The value of a property. The key is {@link #VALUE} and the type is
* {@link SimpleType#STRING}. A value will be encoded by the string given in
* {@link #TYPE}. The syntax for this type is given in {@link #TYPE_ITEM}.
*/
public static final Item VALUE_ITEM = new Item(
VALUE,
"The value of the property",
SimpleType.STRING);
/**
* The key PROPERTY_TYPE.
*
* ### can we call this value PropertyType and service type ServiceType?
*/
public static final String TYPE = "Type";
/**
* The type of the property. The key is {@link #TYPE} and the type is
* {@link SimpleType#STRING}. This string must follow the following syntax:
*
* TYPE ::= ( 'Array of ' | 'Vector of ' )? {@link #SCALAR}
*
* ### why can't we just use the class name?
*
* ### why do we have to distinguish between primitives and wrappers?
*/
public static final Item TYPE_ITEM = new Item(
TYPE,
"The type of the property",
SimpleType.STRING,
STRING,
INTEGER,
LONG,
FLOAT,
DOUBLE,
BYTE,
SHORT,
CHARACTER,
BOOLEAN,
BIGDECIMAL,
BIGINTEGER,
P_DOUBLE,
P_FLOAT,
P_LONG,
P_INT,
P_SHORT,
P_CHAR,
P_BYTE,
P_BOOLEAN);
/**
* A Composite Type describing a a single property. A property consists of
* the following items {@link #KEY_ITEM}, {@link #VALUE_ITEM}, and
* {@link #TYPE_ITEM}.
*/
public static final CompositeType PROPERTY_TYPE = Item
.compositeType(
"PROPERTY",
"This type encapsulates a key/value pair",
KEY_ITEM,
VALUE_ITEM,
TYPE_ITEM);
/**
* Describes a map with properties. The row type is {@link #PROPERTY_TYPE}.
* The index is defined to the {@link #KEY} of the property.
*/
public static final TabularType PROPERTIES_TYPE = Item
.tabularType(
"PROPERTIES",
"A table of PROPERTY",
PROPERTY_TYPE,
KEY);
/**
* The domain name of the core OSGi MBeans
*/
public static final String OSGI_CORE = "osgi.core";
/**
* The domain name of the selected OSGi compendium MBeans
*/
public static final String OSGI_COMPENDIUM = "osgi.compendium";
}