/*
 *  Converter.java v0.10 20-DEC-1999
 *  Copyright (c) TKK/TLM/Calypso
 *  Author: Alexey Mednonogov
 */

package codec.convert;

import java.io.*;
import java.util.*;

import codec.*;
import codec.adapt.*;
import codec.convert.*;
import codec.debug.*;
import codec.dyntree.*;
import codec.export.*;
import codec.orb.*;
import codec.pco.*;
import codec.server.*;
import codec.client.*;
import codec.visit.*;
import codec.build.*;

/** Class containing static conversion methods between various types. */
final public class Converter extends com.t3.ot.misc.Convert {

    private static final char[] hexTable =
    { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
      'A', 'B', 'C', 'D', 'E', 'F' };

    public static byte[] octetStringToBytes(String value) {

        int i, j;
        char srcItem;
        char[] srcArray = value.toCharArray();
        byte[] dstArray = new byte[srcArray.length >> 1];

        for (i = 0; i < dstArray.length; i++)
        {
            srcItem = srcArray[i << 1];
            for (j = 0; j < hexTable.length; j++)
            {
                if (srcItem == hexTable[j])
                {
                    dstArray[i] = (byte) (j << 4);
                    break;
                }
            }

            srcItem = srcArray[(i << 1) + 1];
            for (j = 0; j < hexTable.length; j++)
            {
                if (srcItem == hexTable[j])
                {
                    dstArray[i] |= (byte) j;
                    break;
                }
            }
        }
        return dstArray;
    }
}
