xref: /illumos-gate/usr/src/lib/libslp/javalib/com/sun/slp/ServiceLocationAttributeVerifier.java (revision 9a70fc3be3b1e966bf78825cdb8d509963a6f0a1)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*9a70fc3bSMark J. Nelson  * Common Development and Distribution License (the "License").
6*9a70fc3bSMark J. Nelson  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
207c478bd9Sstevel@tonic-gate  */
217c478bd9Sstevel@tonic-gate /*
227c478bd9Sstevel@tonic-gate  * Copyright (c) 1999 by Sun Microsystems, Inc.
237c478bd9Sstevel@tonic-gate  * All rights reserved.
247c478bd9Sstevel@tonic-gate  *
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate 
277c478bd9Sstevel@tonic-gate //  ServiceLocationAttributeVerifier.java: Attribute parser for SLP templates.
287c478bd9Sstevel@tonic-gate //  Author:           James Kempf
297c478bd9Sstevel@tonic-gate //  Created On:       Thu Jun 19 10:20:25 1997
307c478bd9Sstevel@tonic-gate //  Last Modified By: James Kempf
317c478bd9Sstevel@tonic-gate //  Last Modified On: Wed Jun 24 15:50:43 1998
327c478bd9Sstevel@tonic-gate //  Update Count:     22
337c478bd9Sstevel@tonic-gate //
347c478bd9Sstevel@tonic-gate 
357c478bd9Sstevel@tonic-gate package com.sun.slp;
367c478bd9Sstevel@tonic-gate 
377c478bd9Sstevel@tonic-gate import java.util.*;
387c478bd9Sstevel@tonic-gate 
397c478bd9Sstevel@tonic-gate /**
407c478bd9Sstevel@tonic-gate  * Classes implementing the <b>ServiceLocationAttributeVerifier</b> interface
417c478bd9Sstevel@tonic-gate  * parse SLP template definitions, provide information on attribute
427c478bd9Sstevel@tonic-gate  * definitions for service types, and verify whether a
437c478bd9Sstevel@tonic-gate  * <b>ServiceLocationAttribute</b> object matches a template for a particular
447c478bd9Sstevel@tonic-gate  * service type. Clients obtain <b>ServiceLocationAttributeVerifier</b>
457c478bd9Sstevel@tonic-gate  * objects for specific SLP service types through the <b>TemplateRegistry</b>.
467c478bd9Sstevel@tonic-gate  *
477c478bd9Sstevel@tonic-gate  * @author James Kempf
487c478bd9Sstevel@tonic-gate  *
497c478bd9Sstevel@tonic-gate  */
507c478bd9Sstevel@tonic-gate 
517c478bd9Sstevel@tonic-gate public interface ServiceLocationAttributeVerifier {
527c478bd9Sstevel@tonic-gate 
537c478bd9Sstevel@tonic-gate     /**
547c478bd9Sstevel@tonic-gate      * Returns the SLP service type for which this is the verifier.
557c478bd9Sstevel@tonic-gate      *
567c478bd9Sstevel@tonic-gate      * @return The SLP service type name.
577c478bd9Sstevel@tonic-gate      */
587c478bd9Sstevel@tonic-gate 
getServiceType()597c478bd9Sstevel@tonic-gate     public ServiceType getServiceType();
607c478bd9Sstevel@tonic-gate 
617c478bd9Sstevel@tonic-gate     /**
627c478bd9Sstevel@tonic-gate      * Returns the SLP language locale of this is the verifier.
637c478bd9Sstevel@tonic-gate      *
647c478bd9Sstevel@tonic-gate      * @return The SLP language locale.
657c478bd9Sstevel@tonic-gate      */
667c478bd9Sstevel@tonic-gate 
getLocale()677c478bd9Sstevel@tonic-gate     public Locale getLocale();
687c478bd9Sstevel@tonic-gate 
697c478bd9Sstevel@tonic-gate     /**
707c478bd9Sstevel@tonic-gate      * Returns the SLP version of this is the verifier.
717c478bd9Sstevel@tonic-gate      *
727c478bd9Sstevel@tonic-gate      * @return The SLP version.
737c478bd9Sstevel@tonic-gate      */
747c478bd9Sstevel@tonic-gate 
getVersion()757c478bd9Sstevel@tonic-gate     public String getVersion();
767c478bd9Sstevel@tonic-gate 
777c478bd9Sstevel@tonic-gate     /**
787c478bd9Sstevel@tonic-gate      * Returns the SLP URL syntax of this is the verifier.
797c478bd9Sstevel@tonic-gate      *
807c478bd9Sstevel@tonic-gate      * @return The SLP URL syntax.
817c478bd9Sstevel@tonic-gate      */
827c478bd9Sstevel@tonic-gate 
getURLSyntax()837c478bd9Sstevel@tonic-gate     public String getURLSyntax();
847c478bd9Sstevel@tonic-gate 
857c478bd9Sstevel@tonic-gate     /**
867c478bd9Sstevel@tonic-gate      * Returns the SLP description of this is the verifier.
877c478bd9Sstevel@tonic-gate      *
887c478bd9Sstevel@tonic-gate      * @return The SLP description.
897c478bd9Sstevel@tonic-gate      */
907c478bd9Sstevel@tonic-gate 
getDescription()917c478bd9Sstevel@tonic-gate     public String getDescription();
927c478bd9Sstevel@tonic-gate 
937c478bd9Sstevel@tonic-gate     /**
947c478bd9Sstevel@tonic-gate      * Returns the <b>ServiceLocationAttributeDescriptor</b> object for the
957c478bd9Sstevel@tonic-gate      * attribute having the named id. IF no such attribute exists in the
967c478bd9Sstevel@tonic-gate      * template, returns null. This method is primarily for GUI tools to
977c478bd9Sstevel@tonic-gate      * display attribute information. Programmatic verification of attributes
987c478bd9Sstevel@tonic-gate      * should use the <b>verifyAttribute()</b> method.
997c478bd9Sstevel@tonic-gate      *
1007c478bd9Sstevel@tonic-gate      * @param attrId Id of attribute to return.
1017c478bd9Sstevel@tonic-gate      * @return The <b>ServiceLocationAttributeDescriptor<b> object
1027c478bd9Sstevel@tonic-gate      * 	       corresponding to the parameter, or null if none.
1037c478bd9Sstevel@tonic-gate      */
1047c478bd9Sstevel@tonic-gate 
1057c478bd9Sstevel@tonic-gate     public ServiceLocationAttributeDescriptor
getAttributeDescriptor(String attrId)1067c478bd9Sstevel@tonic-gate 	getAttributeDescriptor(String attrId);
1077c478bd9Sstevel@tonic-gate 
1087c478bd9Sstevel@tonic-gate     /**
1097c478bd9Sstevel@tonic-gate      * Returns an <b>Enumeration</b> of
1107c478bd9Sstevel@tonic-gate      * <b>ServiceLocationAttributeDescriptors</b> for the template. This method
1117c478bd9Sstevel@tonic-gate      * is primarily for GUI tools to display attribute information.
1127c478bd9Sstevel@tonic-gate      * Programmatic verification of attributes should use the
1137c478bd9Sstevel@tonic-gate      * <b>verifyAttribute()</b> method. Note that small memory implementations
1147c478bd9Sstevel@tonic-gate      * may want to implement the <b>Enumeration</b> so that attributes are
1157c478bd9Sstevel@tonic-gate      * parsed on demand rather than at creation time.
1167c478bd9Sstevel@tonic-gate      *
1177c478bd9Sstevel@tonic-gate      * @return A <b>Dictionary</b> with attribute id's as the keys and
1187c478bd9Sstevel@tonic-gate      *	      <b>ServiceLocationAttributeDescriptor</b> objects for the
1197c478bd9Sstevel@tonic-gate      *	      attributes as the values.
1207c478bd9Sstevel@tonic-gate      */
1217c478bd9Sstevel@tonic-gate 
getAttributeDescriptors()1227c478bd9Sstevel@tonic-gate     public Enumeration getAttributeDescriptors();
1237c478bd9Sstevel@tonic-gate 
1247c478bd9Sstevel@tonic-gate     /**
1257c478bd9Sstevel@tonic-gate      * Verify that the attribute parameter is a valid SLP attribute.
1267c478bd9Sstevel@tonic-gate      *
1277c478bd9Sstevel@tonic-gate      * @param <i>attribute</i> The <b>ServiceLocationAttribute</b> to be
1287c478bd9Sstevel@tonic-gate      *			      verified.
1297c478bd9Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if the
1307c478bd9Sstevel@tonic-gate      *		 attribute vector is not valid. The message contains
1317c478bd9Sstevel@tonic-gate      *		 information on the attribute name and problem, and
1327c478bd9Sstevel@tonic-gate      *		 the error code is <b>ServiceLocation.PARSE_ERROR</b>.
1337c478bd9Sstevel@tonic-gate      */
1347c478bd9Sstevel@tonic-gate 
verifyAttribute(ServiceLocationAttribute attribute)1357c478bd9Sstevel@tonic-gate     public void verifyAttribute(ServiceLocationAttribute attribute)
1367c478bd9Sstevel@tonic-gate 	throws ServiceLocationException;
1377c478bd9Sstevel@tonic-gate 
1387c478bd9Sstevel@tonic-gate     /**
1397c478bd9Sstevel@tonic-gate      * Verify that the set of registration attributes matches the
1407c478bd9Sstevel@tonic-gate      * required attributes for the service.
1417c478bd9Sstevel@tonic-gate      *
1427c478bd9Sstevel@tonic-gate      * @param <i>attributeVector</i> A <b>Vector</b> of
1437c478bd9Sstevel@tonic-gate      *				    <b>ServiceLocationAttribute</b> objects
1447c478bd9Sstevel@tonic-gate      *				    for the registration.
1457c478bd9Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if the
1467c478bd9Sstevel@tonic-gate      *		 attribute vector is not valid. The message contains
1477c478bd9Sstevel@tonic-gate      *		 information on the attribute name and problem, and
1487c478bd9Sstevel@tonic-gate      *		 the error code is <b>ServiceLocation.PARSE_ERROR</b>.
1497c478bd9Sstevel@tonic-gate      */
1507c478bd9Sstevel@tonic-gate 
verifyRegistration(Vector attributeVector)1517c478bd9Sstevel@tonic-gate     public void verifyRegistration(Vector attributeVector)
1527c478bd9Sstevel@tonic-gate 	throws ServiceLocationException;
1537c478bd9Sstevel@tonic-gate }
154