/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1999 by Sun Microsystems, Inc.
* All rights reserved.
*
*/
// UserAgent.java: Interface for the SLP User Agent operations
// Author: James Kempf
// Created On: Mon Jul 7 09:15:56 1997
// Last Modified By: James Kempf
// Last Modified On: Wed May 13 17:46:29 1998
// Update Count: 17
//
package com.sun.slp;
import java.util.*;
/**
* The Locator interface allows clients to query SLP for existing
* services, scopes, and service instances, and to query about attributes
* of a particular service instance.
*
* @see ServiceLocationManager
*
* @author James Kempf, Erik Guttman
*/
public interface Locator {
/**
* Return the Locator's locale object.
*
* @return The Locale object.
*/
Locale getLocale();
/**
* Return an enumeration of known service types for this scope and naming
* authority. Unless a proprietary or experimental service is being
* discovered, the namingAuthority parameter should be the empty
* string, "".
*
* @param namingAuthority The naming authority, "" for default,
* '*' for any naming authority.
* @param scopes The SLP scopes of the types.
* @return ServiceLocationEnumeration of ServiceType objects for
* the service type names.
* @exception IllegalArgumentException If any of the parameters are
* null or syntactically incorrect.
* @exception ServiceLocationException An exception is thrown if the
* operation fails.
*/
public ServiceLocationEnumeration findServiceTypes(String namingAuthority,
Vector scopes)
throws ServiceLocationException;
/**
* Return an enumeration of ServiceURL objects for services matching
* the query. The services are returned from the locale of the
* locator.
*
* @param type The type of the service (e.g. printer, etc.).
* @param scopes The SLP scopes of the service types.
* @param query A string with the SLP query.
* @return ServiceLocationEnumeration of ServiceURL objects for
* services matching the
* attributes.
* @exception ServiceLocationException An exception is returned if the
* operation fails.
* @see ServiceURL
*/
public ServiceLocationEnumeration findServices(ServiceType type,
Vector scopes,
String query)
throws ServiceLocationException;
/**
* Return the attributes for the service URL, using the locale
* of the locator.
*
* @param URL The service URL.
* @param scopes The SLP scopes of the service.
* @param attributeIds A vector of strings identifying the desired
* attributes. A null value means return all
* the attributes. Partial id strings may
* begin with '*' to match all ids which end with
* the given suffix, or end with '*' to match all
* ids which begin with a given prefix, or begin
* and end with '*' to do substring matching for
* ids containing the given partial id.
* @return ServiceLocationEnumeration of ServiceLocationAttribute
* objects matching the ids.
* @exception ServiceLocationException An exception is returned if the
* operation fails.
* @exception IllegalArgumentException If any of the parameters are
* null or syntactically incorrect.
* @see ServiceLocationAttribute
*
*/
public ServiceLocationEnumeration findAttributes(ServiceURL URL,
Vector scopes,
Vector attributeIds)
throws ServiceLocationException;
/**
* Return all attributes for all service URL's having this
* service type in the locale of the Locator.
*
* @param type The service type.
* @param scopes The SLP scopes of the service type.
* @param attributeIds A vector of strings identifying the desired
* attributes. A null value means return all
* the attributes. Partial id strings may
* begin with '*' to match all ids which end with
* the given suffix, or end with '*' to match all
* ids which begin with a given prefix, or begin
* and end with '*' to do substring matching for
* ids containing the given partial id.
* @return ServiceLocationEnumeration of ServiceLocationAttribute
* objects matching the ids.
* @exception ServiceLocationException An exception is returned if the
* operation fails.
* @exception IllegalArgumentException If any of the parameters are
* null or syntactically incorrect.
* @see ServiceLocationAttribute
*
*/
public ServiceLocationEnumeration findAttributes(ServiceType type,
Vector scopes,
Vector attributeIds)
throws ServiceLocationException;
}