|
OptionsMap |
|
1 /* 2 * Copyright (c) 1998-2001, The University of Sheffield. 3 * 4 * This file is part of GATE (see http://gate.ac.uk/), and is free 5 * software, licenced under the GNU Library General Public License, 6 * Version 2, June 1991 (in the distribution as file licence.html, 7 * and also available at http://gate.ac.uk/gate/licence.html). 8 * 9 * Valentin Tablan, 09/11/2001 10 * 11 * $Id: OptionsMap.java,v 1.2 2001/11/15 14:21:15 valyt Exp $ 12 */ 13 package gate.util; 14 15 import java.util.HashMap; 16 import java.awt.Font; 17 import java.awt.font.TextAttribute; 18 import java.util.*; 19 /** 20 * A map that stores values as strings and provides support for converting some 21 * frequently used types to and from string 22 */ 23 public class OptionsMap extends HashMap { 24 25 /** 26 * Converts the value to string using its toString() method and then stores it 27 */ 28 public Object put(Object key, Object value){ 29 if(value instanceof Font){ 30 Font font = (Font)value; 31 String family = font.getFamily(); 32 int size = font.getSize(); 33 boolean italic = font.isItalic(); 34 boolean bold = font.isBold(); 35 value = family + "#" + size + "#" + italic + "#" + bold; 36 } 37 38 Object res = super.put(key, value.toString()); 39 return res; 40 } 41 42 /** 43 * If the object stored under key is an Integer then returns its value 44 * otherwise returns null; 45 */ 46 public Integer getInt(Object key){ 47 String stringValue = getString(key); 48 Integer value = null; 49 try{ 50 value = Integer.decode(stringValue); 51 }catch(Exception e){}; 52 return value; 53 } 54 55 /** 56 * If the object stored under key is a Boolean then returns its value 57 * otherwise returns null; 58 */ 59 public Boolean getBoolean(Object key){ 60 String stringValue = getString(key); 61 Boolean value = null; 62 try{ 63 value = Boolean.valueOf(stringValue); 64 }catch(Exception e){}; 65 return value; 66 } 67 68 /** 69 * If the object stored under key is a String then returns its value 70 * otherwise returns null; 71 */ 72 public String getString(Object key){ 73 String stringValue = null; 74 try{ 75 stringValue = (String)get(key); 76 }catch(Exception e){}; 77 return stringValue; 78 } 79 80 /** 81 * If the object stored under key is a String then returns its value 82 * otherwise returns null; 83 */ 84 public Font getFont(Object key){ 85 String stringValue = null; 86 try{ 87 stringValue = (String)get(key); 88 }catch(Exception e){}; 89 if(stringValue == null) return null; 90 StringTokenizer strTok = new StringTokenizer(stringValue, "#", false); 91 String family = strTok.nextToken(); 92 int size = Integer.parseInt(strTok.nextToken()); 93 boolean italic = Boolean.valueOf(strTok.nextToken()).booleanValue(); 94 boolean bold = Boolean.valueOf(strTok.nextToken()).booleanValue(); 95 96 Map fontAttrs = new HashMap(); 97 fontAttrs.put(TextAttribute.FAMILY, family); 98 fontAttrs.put(TextAttribute.SIZE, new Float(size)); 99 if(bold) fontAttrs.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); 100 else fontAttrs.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR); 101 if(italic) fontAttrs.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); 102 else fontAttrs.put(TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); 103 104 return new Font(fontAttrs); 105 } 106 107 108 109 }
|
OptionsMap |
|