OSGi™ Service Platform
Release 2

org.osgi.service.metatype
Interface AttributeDefinition


public interface AttributeDefinition

An interface to describe an attribute.

An AttributeDefinition object defines a description of the data type of a property/attribute.


Field Summary
static int BIGDECIMAL
          The BIGDECIMAL(10) type.
static int BIGINTEGER
          The BIGINTEGER(9) type.
static int BOOLEAN
          The BOOLEAN(11) type.
static int BYTE
          The BYTE(6) type.
static int CHARACTER
          The CHARACTER(5) type.
static int DOUBLE
          The DOUBLE(7) type.
static int FLOAT
          The FLOAT(8) type.
static int INTEGER
          The INTEGER(3) type.
static int LONG
          The LONG(2) type.
static int SHORT
          The SHORT(4) type.
static int STRING
          The STRING(1) type.
 
Method Summary
 int getCardinality()
          Return the cardinality of this attribute.
 java.lang.String[] getDefaultValue()
          Return a default for this attribute.
 java.lang.String getDescription()
          Return a description of this attribute.
 java.lang.String getID()
          Unique identity for this attribute.
 java.lang.String getName()
          Get the name of the attribute.
 java.lang.String[] getOptionLabels()
          Return a list of labels of option values.
 java.lang.String[] getOptionValues()
          Return a list of option values that this attribute can take.
 int getType()
          Return the type for this attribute.
 java.lang.String validate(java.lang.String value)
          Validate an attribute in String form.
 

Field Detail

STRING

public static final int STRING
The STRING(1) type.

Attributes of this type should be stored as String, Vector with String or String[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

LONG

public static final int LONG
The LONG(2) type. Attributes of this type should be stored as Long, Vector with Long or long[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

INTEGER

public static final int INTEGER
The INTEGER(3) type. Attributes of this type should be stored as Integer, Vector with Integer or int[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

SHORT

public static final int SHORT
The SHORT(4) type. Attributes of this type should be stored as Short, Vector with Short or short[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

CHARACTER

public static final int CHARACTER
The CHARACTER(5) type. Attributes of this type should be stored as Character, Vector with Character or char[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

BYTE

public static final int BYTE
The BYTE(6) type. Attributes of this type should be stored as Byte, Vector with Byte or byte[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

DOUBLE

public static final int DOUBLE
The DOUBLE(7) type. Attributes of this type should be stored as Double, Vector with Double or double[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

FLOAT

public static final int FLOAT
The FLOAT(8) type. Attributes of this type should be stored as Float Vector with Float or float[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

BIGINTEGER

public static final int BIGINTEGER
The BIGINTEGER(9) type. Attributes of this type should be stored as BigInteger, Vector with BigInteger or BigInteger[] objects, depending on the getCardinality() value.

See Also:
Constant Field Values

BIGDECIMAL

public static final int BIGDECIMAL
The BIGDECIMAL(10) type. Attributes of this type should be stored as BigDecimal Vector with BigDecimal or BigDecimal[] objects depending on getCardinality().

See Also:
Constant Field Values

BOOLEAN

public static final int BOOLEAN
The BOOLEAN(11) type. Attributes of this type should be stored as Boolean, Vector with Boolean or boolean[] objects depending on getCardinality().

See Also:
Constant Field Values
Method Detail

getName

public java.lang.String getName()
Get the name of the attribute. This name may be localized.


getID

public java.lang.String getID()
Unique identity for this attribute. Attributes share a global namespace in the registry. E.g. an attribute cn or commonName must always be a String and the semantics are always a name of some object. They share this aspect with LDAP/X.500 attributes. In these standards the OSI Object Identifier (OID) is used to uniquely identify an attribute. If such an OID exists, (which can be requested at several standard organisations and many companies already have a node in the tree) it can be returned here. Otherwise, a unique id should be returned which can be a Java class name (reverse domain name) or generated with a GUID algorithm. Note that all LDAP defined attributes already have an OID. It is strongly advised to define the attributes from existing LDAP schemes which will give the OID. Many such schemes exist ranging from postal addresses to DHCP parameters.


getDescription

public java.lang.String getDescription()
Return a description of this attribute. The description may be localized and must describe the semantics of this type and any constraints.


getCardinality

public int getCardinality()
Return the cardinality of this attribute. The OSGi environment handles multi valued attributes in arrays ([]) or in Vector objects. The return value is defined as follows:
 x = Integer.MIN_VALUE    no limit, but use Vector
 x < 0                    -x = max occurrences, store in Vector
 x > 0                     x = max occurrences, store in array []
 x = Integer.MAX_VALUE    no limit, but use array []
 x = 0                     1 occurrence required
 


getType

public int getType()
Return the type for this attribute.

Defined in the following constants which map to the appropriate Java type. STRING, LONG, INTEGER, CHAR, BYTE, DOUBLE, FLOAT, BIGINTEGER, BIGDECIMAL, BOOLEAN.


getOptionValues

public java.lang.String[] getOptionValues()
Return a list of option values that this attribute can take.

If the function returns null, there are no option values available.

Each value must be acceptable to validate() (return "") and must be a String object that can be converted to the data type defined by getType() for this attribute.

This list must be in the same sequence as getOptionLabels(). I.e. for each index i in getOptionValues, i in getOptionLabels() should be the label.

For example, if an attribute can have the value male, female, unknown, this list can return new String[] { "male", "female", "unknown" }.


getOptionLabels

public java.lang.String[] getOptionLabels()
Return a list of labels of option values.

The purpose of this method is to allow menus with localized labels. It is associated with getOptionValues. The labels returned here are ordered in the same way as the values in that method.

If the function returns null, there are no option labels available.

This list must be in the same sequence as the getOptionValues() method. I.e. for each index i in getOptionLabels, i in getOptionValues() should be the associated value.

For example, if an attribute can have the value male, female, unknown, this list can return (for dutch) new String[] { "Man", "Vrouw", "Onbekend" }.


validate

public java.lang.String validate(java.lang.String value)
Validate an attribute in String form. An attribute might be further constrained in value. This method will attempt to validate the attribute according to these constraints. It can return three different values:
 null                no validation present
 ""                   no problems detected
 "..."                A localized description of why the value is wrong
 

Parameters:
value - The value before turning it into the basic data type

getDefaultValue

public java.lang.String[] getDefaultValue()
Return a default for this attribute. The object must be of the appropriate type as defined by the cardinality and getType(). The return type is a list of String objects that can be converted to the appropriate type. The cardinality of the return array must follow the absolute cardinality of this type. E.g. if the cardinality = 0, the array must contain 1 element. If the cardinality is 1, it must contain 0 or 1 elements. If it is -5, it must contain from 0 to max 5 elements. Note that the special case of a 0 cardinality, meaning a single value, does not allow arrays or vectors of 0 elements.


OSGi™ Service Platform
Release 2

Copyright © OSGi Alliance (2000, 2002). All Rights Reserved. Licensed under the OSGi Specification License, Version 1.0