1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright (c) 1999 by Sun Microsystems, Inc.
23 * All rights reserved.
24 *
25 */
26
27//  ServiceLocationAttributeVerifier.java: Attribute parser for SLP templates.
28//  Author:           James Kempf
29//  Created On:       Thu Jun 19 10:20:25 1997
30//  Last Modified By: James Kempf
31//  Last Modified On: Wed Jun 24 15:50:43 1998
32//  Update Count:     22
33//
34
35package com.sun.slp;
36
37import java.util.*;
38
39/**
40 * Classes implementing the <b>ServiceLocationAttributeVerifier</b> interface
41 * parse SLP template definitions, provide information on attribute
42 * definitions for service types, and verify whether a
43 * <b>ServiceLocationAttribute</b> object matches a template for a particular
44 * service type. Clients obtain <b>ServiceLocationAttributeVerifier</b>
45 * objects for specific SLP service types through the <b>TemplateRegistry</b>.
46 *
47 * @author James Kempf
48 *
49 */
50
51public interface ServiceLocationAttributeVerifier {
52
53    /**
54     * Returns the SLP service type for which this is the verifier.
55     *
56     * @return The SLP service type name.
57     */
58
59    public ServiceType getServiceType();
60
61    /**
62     * Returns the SLP language locale of this is the verifier.
63     *
64     * @return The SLP language locale.
65     */
66
67    public Locale getLocale();
68
69    /**
70     * Returns the SLP version of this is the verifier.
71     *
72     * @return The SLP version.
73     */
74
75    public String getVersion();
76
77    /**
78     * Returns the SLP URL syntax of this is the verifier.
79     *
80     * @return The SLP URL syntax.
81     */
82
83    public String getURLSyntax();
84
85    /**
86     * Returns the SLP description of this is the verifier.
87     *
88     * @return The SLP description.
89     */
90
91    public String getDescription();
92
93    /**
94     * Returns the <b>ServiceLocationAttributeDescriptor</b> object for the
95     * attribute having the named id. IF no such attribute exists in the
96     * template, returns null. This method is primarily for GUI tools to
97     * display attribute information. Programmatic verification of attributes
98     * should use the <b>verifyAttribute()</b> method.
99     *
100     * @param attrId Id of attribute to return.
101     * @return The <b>ServiceLocationAttributeDescriptor<b> object
102     * 	       corresponding to the parameter, or null if none.
103     */
104
105    public ServiceLocationAttributeDescriptor
106	getAttributeDescriptor(String attrId);
107
108    /**
109     * Returns an <b>Enumeration</b> of
110     * <b>ServiceLocationAttributeDescriptors</b> for the template. This method
111     * is primarily for GUI tools to display attribute information.
112     * Programmatic verification of attributes should use the
113     * <b>verifyAttribute()</b> method. Note that small memory implementations
114     * may want to implement the <b>Enumeration</b> so that attributes are
115     * parsed on demand rather than at creation time.
116     *
117     * @return A <b>Dictionary</b> with attribute id's as the keys and
118     *	      <b>ServiceLocationAttributeDescriptor</b> objects for the
119     *	      attributes as the values.
120     */
121
122    public Enumeration getAttributeDescriptors();
123
124    /**
125     * Verify that the attribute parameter is a valid SLP attribute.
126     *
127     * @param <i>attribute</i> The <b>ServiceLocationAttribute</b> to be
128     *			      verified.
129     * @exception ServiceLocationException Thrown if the
130     *		 attribute vector is not valid. The message contains
131     *		 information on the attribute name and problem, and
132     *		 the error code is <b>ServiceLocation.PARSE_ERROR</b>.
133     */
134
135    public void verifyAttribute(ServiceLocationAttribute attribute)
136	throws ServiceLocationException;
137
138    /**
139     * Verify that the set of registration attributes matches the
140     * required attributes for the service.
141     *
142     * @param <i>attributeVector</i> A <b>Vector</b> of
143     *				    <b>ServiceLocationAttribute</b> objects
144     *				    for the registration.
145     * @exception ServiceLocationException Thrown if the
146     *		 attribute vector is not valid. The message contains
147     *		 information on the attribute name and problem, and
148     *		 the error code is <b>ServiceLocation.PARSE_ERROR</b>.
149     */
150
151    public void verifyRegistration(Vector attributeVector)
152	throws ServiceLocationException;
153}
154