xref: /illumos-gate/usr/src/lib/libslp/javalib/com/sun/slp/ServiceLocationAttributeVerifier.java (revision 5422785d352a2bb398daceab3d1898a8aa64d006)
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 
35 package com.sun.slp;
36 
37 import 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 
51 public 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