1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * ident "%Z%%M% %I% %E% SMI" 24 * 25 * Copyright 2002 Sun Microsystems, Inc. All rights reserved. 26 * Use is subject to license terms. 27 */ 28 29 package com.sun.dhcpmgr.data.qualifier; 30 31 import java.util.Map; 32 import java.util.HashMap; 33 34 /** 35 * Super class for qualifier. Provides common methods and fields. 36 */ 37 public class QualifierImpl implements Qualifier { 38 39 /** 40 * Map of qualifier attributes to values. 41 */ 42 protected Map attributes; 43 44 /** 45 * Construct an empty qualifier. 46 */ 47 public QualifierImpl() { 48 } 49 50 /** 51 * Construct a qualifier, assigning all the required fields. 52 * 53 * @param keyword 54 * The name of the parameter that the qualifier is associated with. 55 * @param readOnly 56 * Inidicate whether the parameter is to be treated as read only. 57 * @param hidden 58 * Inidicate whether the parameter is hidden. 59 * @param type 60 * The parameter value type. 61 */ 62 public QualifierImpl(String keyword, 63 boolean readOnly, 64 boolean hidden, 65 QualifierType type) { 66 67 attributes = new HashMap(); 68 attributes.put(KEYWORD, keyword); 69 attributes.put(READONLY, new Boolean(readOnly)); 70 attributes.put(HIDDEN, new Boolean(hidden)); 71 attributes.put(TYPE, type); 72 } 73 74 public synchronized Object getAttribute(String attribute) { 75 return attributes.get(attribute); 76 } 77 78 public synchronized void setAttribute(String attribute, Object value) { 79 if (value == null) { 80 if (attributes.containsKey(attribute)) { 81 attributes.remove(attribute); 82 } 83 } else { 84 attributes.put(attribute, value); 85 } 86 } 87 88 public String getKeyword() { 89 return (String)attributes.get(KEYWORD); 90 } 91 92 public boolean isReadOnly() { 93 return ((Boolean)attributes.get(READONLY)).booleanValue(); 94 } 95 96 public boolean isHidden() { 97 return ((Boolean)attributes.get(HIDDEN)).booleanValue(); 98 } 99 100 public QualifierType getType() { 101 return (QualifierType)attributes.get(TYPE); 102 } 103 104 public String toString() { 105 return attributes.toString(); 106 } 107 }