/*
* 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.
*
*/
// ServiceLocationAttributeDescriptor.java: Describes an SLP attribute.
// Author: James Kempf
// Created On: Thu Jun 19 10:38:01 1997
// Last Modified By: James Kempf
// Last Modified On: Fri May 22 13:01:18 1998
// Update Count: 16
//
package com.sun.slp;
import java.util.*;
/**
* Objects implementing the <b>ServiceLocationAttributeDescriptor</b>
* interface return information on a particular service location attribute.
* This information is primarily for GUI tools. Programmatic attribute
* verification should be done through the
* <b>ServiceLocationAttributeVerifier</b>.
*
* @author James Kempf
*
*/
public interface ServiceLocationAttributeDescriptor {
/**
* Return the attribute's id.
*
* @return A <b>String</b> for the attribute's id.
*/
public String getId();
/**
* Return the fully qualified Java type of the attribute. SLP types
* are translated into Java types as follows:<br>
*<ol>
* <li><i>STRING</i> -- <i>"java.lang.String"</i></li>
* <li><i>INTEGER</i> -- <i>"java.lang.Integer"</i></li>
* <li><i>BOOLEAN</i> -- <i>"java.lang.Boolean"</i></li>
* <li><i>OPAQUE</i> -- <i>"[B"</i> (i.e. array of byte,
* <b>byte[]</b>)</li>
* <li><i>KEYWORD</i> -- null string, <i>""</i></li>
*</ol>
*
* @return A <b>String</b> containing the Java type name for the
* attribute values.
*/
public String getValueType();
/**
* Return attribute's help text.
*
* @return A <b>String</b> containing the attribute's help text.
*/
public String getDescription();
/**
* Return an <b>Enumeration</b> of allowed values for the attribute type.
* For keyword attributes returns null. For no allowed values
* (i.e. unrestricted) returns an empty <b>Enumeration</b>. Small memory
* implementations may want to parse values on demand rather
* than at the time the descriptor is created.
*
* @return An <b>Enumeration</b> of allowed values for the attribute,
* or null if the attribute is keyword.
*/
public Enumeration getAllowedValues();
/**
* Return an <b>Enumeration</b> of default values for the attribute type.
* For keyword attributes returns null. For no allowed values
* (i.e. unrestricted) returns an empty <b>Enumeration</b>. Small memory
* implementations may want to parse values on demand rather
* than at the time the descriptor is created.
*
* @return An <b>Enumeration</b> of default values for the attribute or
* null if the attribute is keyword.
*/
public Enumeration getDefaultValues();
/**
* Returns true if the <i>"M"</i> flag is set.
*
* @return True if the <i>"M"</i> flag is set.
*/
public boolean getIsMultivalued();
/**
* Returns true if the <i>"O"</i>" flag is set.
*
* @return True if the <i>"O"</i>" flag is set.
*/
public boolean getIsOptional();
/**
* Returns true if the <i>"X"</i>" flag is set.
*
* @return True if the <i>"X"</i> flag is set.
*/
public boolean getRequiresExplicitMatch();
/**
* Returns true if the <i>"L"</i> flag is set.
*
* @return True if the <i>"L"</i> flag is set.
*/
public boolean getIsLiteral();
/**
* Returns <i>true</i> if the attribute is a keyword attribute.
*
* @return <i>true</i> if the attribute is a keyword attribute
*/
public boolean getIsKeyword();
}