/* * 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. * */ // TemplateRegistry.java: // Author: James Kempf // Created On: Fri Jul 4 11:38:39 1997 // Last Modified By: James Kempf // Last Modified On: Mon Jun 1 13:41:07 1998 // Update Count: 26 // package com.sun.slp; import java.util.*; /** * Classes subclassing the TemplateRegistry class register and * unregister service templates, look up the template URL's based on the * service type name, and return attribute verifiers for verifying * template attributes. * * @author James Kempf * */ public abstract class TemplateRegistry extends Object { protected static TemplateRegistry templateRegistry = null; /** * The property accessor for the TemplateRegistry. * * @return The TemplateRegistry object. * @exception ServiceLocationException If the registry can't be created. */ public static TemplateRegistry getTemplateRegistry() throws ServiceLocationException { if (templateRegistry == null) { templateRegistry = new SLPTemplateRegistry(); } return templateRegistry; } /** * Register the new service. * * @param serviceType Name of the service. * @param documentURL URL of the template document. * @param languageLocale Locale of the template langugae. * @param version Version number of template document. * @exception ServiceLocationException If the registration fails. * @exception IllegalArgumentException Thrown if any parameters are null. * */ abstract public void registerServiceTemplate(ServiceType serviceType, String documentURL, Locale languageLocale, String version) throws ServiceLocationException; /** * Deregister the template for service type. * * @param serviceType Name of service. * @param languageLocale Language locale of template. * @param version Version of the template, null for latest. * @exception ServiceLocationException Thrown if the template * is not registered. * @exception IllegalArgumentException Thrown if the serviceType or * languageLocale parameter is null. * */ abstract public void deregisterServiceTemplate(ServiceType serviceType, Locale languageLocale, String version) throws ServiceLocationException; /** * Find the document URL for the service. * * @param serviceType Name of service. * @param languageLocale Language locale of template. * @param version Version of the template, null for latest. * @return String for the service's template document. * If the service doesn't exist, returns null. * @exception ServiceLocationException If more than one template * document URL is returned. * * @exception IllegalArgumentException Thrown if the service type or * languageLocal parameter is null. * */ abstract public String findTemplateURL(ServiceType serviceType, Locale languageLocale, String version) throws ServiceLocationException; /** * Create an attribute verifier for the template document URL. * * @param documentURL A URL for the template document. * @return An attribute verifier for the service * @exception ServiceLocationException If a parse error occurs or * if the document can't be found. * @exception IllegalArgumentException Thrown if any parameters are null. * */ abstract public ServiceLocationAttributeVerifier attributeVerifier(String documentURL) throws ServiceLocationException; }