001    /*
002     * Copyright (c) OSGi Alliance (2000, 2008). All Rights Reserved.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.osgi.service.device;
017    
018    /**
019     * This interface defines standard names for property keys associated with
020     * {@link Device} and {@link Driver} services.
021     * 
022     * <p>
023     * The values associated with these keys are of type <code>java.lang.String</code>,
024     * unless otherwise stated.
025     * 
026     * @version $Revision: 5673 $
027     * @since 1.1
028     * @see Device
029     * @see Driver
030     */
031    public interface Constants {
032            /**
033             * Property (named &quot;DRIVER_ID&quot;) identifying a driver.
034             * 
035             * <p>
036             * A <code>DRIVER_ID</code> should start with the reversed domain name of the
037             * company that implemented the driver (e.g., <code>com.acme</code>), and
038             * must meet the following requirements:
039             * 
040             * <ul>
041             * <li>It must be independent of the location from where it is obtained.
042             * <li>It must be independent of the {@link DriverLocator} service that
043             * downloaded it.
044             * <li>It must be unique.
045             * <li>It must be different for different revisions of the same driver.
046             * </ul>
047             * 
048             * <p>
049             * This property is mandatory, i.e., every <code>Driver</code> service must be
050             * registered with it.
051             */
052            public static final String      DRIVER_ID                       = "DRIVER_ID";
053            /**
054             * Property (named &quot;DEVICE_CATEGORY&quot;) containing a human readable
055             * description of the device categories implemented by a device. This
056             * property is of type <code>String[]</code>
057             * 
058             * <p>
059             * Services registered with this property will be treated as devices and
060             * discovered by the device manager
061             */
062            public static final String      DEVICE_CATEGORY         = "DEVICE_CATEGORY";
063            /**
064             * Property (named &quot;DEVICE_SERIAL&quot;) specifying a device's serial
065             * number.
066             */
067            public static final String      DEVICE_SERIAL           = "DEVICE_SERIAL";
068            /**
069             * Property (named &quot;DEVICE_DESCRIPTION&quot;) containing a human
070             * readable string describing the actual hardware device.
071             */
072            public static final String      DEVICE_DESCRIPTION      = "DEVICE_DESCRIPTION";
073    }