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