1 /* 2 ServiceLocationAttributeVerifier.java 3 4 (C) Copyright IBM Corp. 2005, 2009 5 6 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 7 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 8 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 9 10 You can obtain a current copy of the Eclipse Public License from 11 http://www.opensource.org/licenses/eclipse-1.0.php 12 13 @author : Roberto Pineiro, IBM, roberto.pineiro@us.ibm.com 14 * @author : Chung-hao Tan, IBM, chungtan@us.ibm.com 15 * 16 * Change History 17 * Flag Date Prog Description 18 *------------------------------------------------------------------------------- 19 * 1516246 2006-07-22 lupusalex Integrate SLP client code 20 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL 21 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1) 22 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2) 23 */ 24 25 package org.metricshub.wbem.sblim.slp; 26 27 /*- 28 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 29 * WBEM Java Client 30 * ჻჻჻჻჻჻ 31 * Copyright 2023 - 2025 MetricsHub 32 * ჻჻჻჻჻჻ 33 * Licensed under the Apache License, Version 2.0 (the "License"); 34 * you may not use this file except in compliance with the License. 35 * You may obtain a copy of the License at 36 * 37 * http://www.apache.org/licenses/LICENSE-2.0 38 * 39 * Unless required by applicable law or agreed to in writing, software 40 * distributed under the License is distributed on an "AS IS" BASIS, 41 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 42 * See the License for the specific language governing permissions and 43 * limitations under the License. 44 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 45 */ 46 47 import java.util.Enumeration; 48 import java.util.Locale; 49 import java.util.Vector; 50 51 /** 52 * The ServiceLocationAttributeVerifier provides access to service templates. 53 * Classes implementing this interface parse SLP template definitions, provide 54 * information on attribute definitions for service types, and verify whether a 55 * ServiceLocationAttribute object matches a template for a particular service 56 * type. Clients obtain ServiceLocationAttributeVerifier objects for specific 57 * SLP service types through the TemplateRegistry. 58 * 59 * 60 */ 61 public interface ServiceLocationAttributeVerifier { 62 /** 63 * Returns the SLP service type for which this is the verifier. 64 * 65 * @return The service type 66 */ 67 public abstract ServiceType getServiceType(); 68 69 /** 70 * Return the language locale of the template. 71 * 72 * @return The locale 73 */ 74 public abstract Locale getLocale(); 75 76 /** 77 * Return the template version number identifier. 78 * 79 * @return The version 80 */ 81 public abstract String getVersion(); 82 83 /** 84 * Return the URL syntax expression for the service: URL. 85 * 86 * @return The url syntax 87 */ 88 public abstract String getURLSyntax(); 89 90 /** 91 * Return the descriptive help text for the template. 92 * 93 * @return The description 94 */ 95 public abstract String getDescription(); 96 97 /** 98 * Return the ServiceLocationAttributeDescriptor for the attribute having 99 * the named id. If no such attribute exists in this template, return null. 100 * This method is primarily for GUI tools to display attribute information. 101 * Programmatic verification of attributes should use the verifyAttribute() 102 * method. 103 * 104 * @param pAttributeId 105 * The attribute id 106 * @return The descriptor 107 */ 108 public abstract ServiceLocationAttributeDescriptor getAttributeDescriptor(String pAttributeId); 109 110 /** 111 * Returns an Enumeration allowing introspection on the attribute definition 112 * in the service template. The Enumeration returns 113 * ServiceLocationAttributeDescriptor objects for the attributes. This 114 * method is primarily for GUI tools to display attribute information. 115 * Programmatic verification of attributes should use the verifyAttribute() 116 * method. 117 * 118 * @return Enumeration of attribute descriptors 119 */ 120 public abstract Enumeration<?> getAttributeDescriptors(); 121 122 /** 123 * Verify that the attribute matches the template definition. If the 124 * attribute doesn't match, ServiceLocationException is thrown with the 125 * error code as ServiceLocationException.PARSE_ERROR. 126 * 127 * @param pAttribute 128 * The ServiceLocationAttribute object to be verified. 129 * @throws ServiceLocationException 130 * if validation failed 131 * 132 */ 133 public abstract void verifyAttribute(ServiceLocationAttribute pAttribute) throws ServiceLocationException; 134 135 /** 136 * Verify that the Vector of ServiceLocationAttribute objects matches the 137 * template for this service type. The vector must contain all the required 138 * attributes, and all attributes must match their template definitions. If 139 * the attributes don't match, ServiceLocationException is thrown with the 140 * error code as ServiceLocationException.PARSE_ERROR 141 * 142 * @param pAttributeVector 143 * A Vector of ServiceLocationAttribute objects for the 144 * registration. 145 * @throws ServiceLocationException 146 * if attributes don't match 147 */ 148 public abstract void verifyRegistration(Vector<?> pAttributeVector) throws ServiceLocationException; 149 }