001package bradleyross.opensource.jackcess;
002import com.healthmarketscience.jackcess.DataType;
003/**
004 * Static methods that are designed to aid in the use
005 * of the Jackcess software to read MDB files.
006 * @author Bradley Ross
007 *
008 */
009public class helpers 
010{
011        /**
012         * There are no constructors for this method since
013         * all of the methods are static.
014         */
015        protected helpers()
016        {}
017        /**
018         * Returns a string object representing the value of 
019         * a value belonging to the 
020         * {@link com.healthmarketscience.jackcess.DataType}
021         * class.
022         * @param valueIn Type of database column
023         * @return String indicating type of value
024         */
025        public static String decodeDataType(DataType valueIn)
026        {
027                String working = null;
028                if (valueIn == DataType.BINARY) { working="BINRY"; }
029                else if (valueIn == DataType.BOOLEAN) { working="BOOLEAN"; }
030                else if (valueIn == DataType.BYTE) { working="BYTE"; }
031                else if (valueIn == DataType.DOUBLE) { working="DOUBLE"; }
032                else if (valueIn == DataType.FLOAT) { working="FLOAT"; }
033                else if (valueIn == DataType.INT) { working="INT"; }
034                else if (valueIn == DataType.LONG) { working="LONG"; }
035                else if (valueIn == DataType.MEMO) { working="MEMO"; }
036                else if (valueIn == DataType.MONEY) { working="MONEY"; }
037                else if (valueIn == DataType.NUMERIC) { working="NUMERIC"; }
038                else if (valueIn == DataType.SHORT_DATE_TIME)
039                        { working = "SHORT_DATE_TIME"; }
040                else if (valueIn == DataType.TEXT) { working="TEXT"; }
041                else if (valueIn == DataType.UNKNOWN_0D)
042                        { working = "UNKNOWN_OD"; }
043                else {working="UNKNOWN"; }
044                return working;
045        }
046        /**
047         * Prints an object that may belong to one of several
048         * classes.
049         * <p>The first step is to test if the object is
050         *    equal to null, since you can't determine the
051         *    class of a null object.  If the object is
052         *    equal to null, the string **null value**
053         *    is returned.</p>
054         *    @param o Object to be printed
055         *    @return String containing value of object
056         *    @see java.lang.Integer
057         *    @see java.lang.Short
058         *    @see java.lang.Long
059         *    @see java.lang.Float
060         *    @see java.lang.Double
061         *    @see java.lang.Boolean
062         */
063        public static String printObject (Object o)
064        {
065                if (o == null) { return "**null value**"; }
066                String working = "**bad value**";
067                String className = o.getClass().getName();
068                try
069                {
070                        if (className.equalsIgnoreCase("java.lang.String"))
071                                { working = (String) o; }
072                        else if (className.equalsIgnoreCase("java.lang.Boolean"))
073                                { working = ((Boolean) o).toString(); }
074                        else if (className.equalsIgnoreCase("java.lang.Double"))
075                                { working = ((Double) o).toString(); }
076                        else if (className.equalsIgnoreCase("java.lang.Float"))
077                                { working = ((Float) o).toString(); }
078                        else if (className.equalsIgnoreCase("java.lang.Long"))
079                                { working = ((Long) o).toString(); }
080                        else if (className.equalsIgnoreCase("java.lang.Integer"))
081                                { working = ((Integer) o).toString(); }
082                        else if (className.equalsIgnoreCase("java.lang.Short"))
083                                { working = ((Short) o).toString(); }
084                        else
085                                { working = className + " has no rules"; }
086                }
087                catch (Exception e)
088                {
089                        System.out.println("Unable to print value " + className);
090                }
091                return working;
092        }
093}