Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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  }