| Home >> All >> com >> k_int >> codec >> [ util Javadoc ] |
Source code: com/k_int/codec/util/OIDRegister.java
1 /** 2 * 3 * OIDRegister 4 * 5 * @author Ian Ibbotson ( ibbo@k-int.com ) 6 * @version $Id: OIDRegister.java,v 1.2 2001/01/18 14:48:05 ianibbo Exp $ 7 * 8 * Copyright: Copyright (C) 2000, Knowledge Integration Ltd (See the file LICENSE for details.) 9 * 10 */ 11 12 package com.k_int.codec.util; 13 14 import java.util.Hashtable; 15 import java.io.StringWriter; 16 import com.k_int.codec.runtime.base_codec; 17 18 // The idea of this class is to map an OID onto a class that is capable of 19 // turning a Stream into some kind of structured object 20 21 public class OIDRegister 22 { 23 private static OIDRegister me = null; 24 private Hashtable register_by_name = new Hashtable(); 25 private Hashtable register_by_value = new Hashtable(); 26 27 public static OIDRegister getRegister() 28 { 29 if ( null == me ) 30 me = new OIDRegister(); 31 32 return me; 33 } 34 35 36 public void register_oid(OIDRegisterEntry entry) 37 { 38 // System.err.println("Registering entry "+entry.getName()+" with oid "+entry.getStringValue()); 39 register_by_name.put(entry.getName(), entry); 40 register_by_value.put(entry.getStringValue(), entry); 41 } 42 43 public OIDRegisterEntry lookupByOID(String oid_as_string) 44 { 45 OIDRegisterEntry e = (OIDRegisterEntry)register_by_value.get(oid_as_string); 46 47 if ( null != e ) 48 { 49 return e; 50 } 51 52 return null; 53 } 54 55 public OIDRegisterEntry lookupByOID(int[] oid) 56 { 57 StringWriter sw = new StringWriter(); 58 59 sw.write("{"); 60 61 for ( int i = 0; i<oid.length; i++) 62 { 63 if ( i > 0 ) 64 sw.write(","); 65 66 sw.write(""+oid[i]); 67 } 68 69 sw.write("}"); 70 71 // System.err.println("OID:"+sw.toString()); 72 73 return lookupByOID(sw.toString()); 74 } 75 76 public int[] oidByName(String name) 77 { 78 OIDRegisterEntry o = lookupByName(name); 79 80 if ( null != o ) 81 { 82 return o.getValue(); 83 } 84 85 return null; 86 } 87 88 public OIDRegisterEntry lookupByName(String name) 89 { 90 return (OIDRegisterEntry) register_by_name.get(name); 91 } 92 93 }