/
codebase/src/net/sourceforge/pain/admin/console/command/
codebase/src/net/sourceforge/pain/data/role/
codebase/src/net/sourceforge/pain/network/console/telnet/
codebase/src/net/sourceforge/pain/network/guitool/
codebase/src/net/sourceforge/pain/plugin/
codebase/src/net/sourceforge/pain/util/
db/src/net/sourceforge/pain/util/
gui/
gui/lib/
gui/src/net/sourceforge/pain/tools/guitool/dbbrowse/
gui/src/net/sourceforge/pain/tools/guitool/dialog/
gui/src/net/sourceforge/pain/tools/guitool/menu/
gui/src/net/sourceforge/pain/tools/guitool/resources/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/explorer/
mudlibs/tinylib/
mudlibs/tinylib/area/
mudlibs/tinylib/etc/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/prototype/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/deploy/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/fn/util/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/impl/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/command/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/reset/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/shutdown/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/social/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/util/
tests/
tests/src/
tests/src/net/sourceforge/pain/db/data/
package net.sourceforge.pain.tools.guitool.dbbrowse;

import net.sourceforge.pain.network.guitool.*;

import java.util.*;

/**
 * User: fmike  Date: Apr 19, 2004  Time: 2:07:50 AM
 */
public class DatabaseSchema {
    private ArrayList classes = new ArrayList();

    public DatabaseSchema(GTNetPacket packet) {
        ArrayList pclasses = (ArrayList) packet.data;
        for (int i = 0; i < pclasses.size(); i++) {
            ArrayList classInfoData = (ArrayList) pclasses.get(i);
            final ClassInfo classInfo = new ClassInfo((String) classInfoData.get(0), (String[]) classInfoData.get(1), (byte[]) classInfoData.get(2));
            classes.add(classInfo);
        }
    }

    public ClassInfo findClassName(String className) {
        for (int i = 0; i < classes.size(); i++) {
            ClassInfo classInfo = (ClassInfo) classes.get(i);
            if (classInfo.className.endsWith(className)) {
                return classInfo;
            }
        }
        return null;
    }

    public class ClassInfo {
        private String className;
        private String[] fieldsNames;
        private byte[] fieldsTypes;

        public ClassInfo(String className, String[] names, byte[] types) {
            this.className = className;
            fieldsNames = names;
            fieldsTypes = types;
        }

        public int getFieldType(String fieldName) {
            for (int i = 0; i < fieldsNames.length; i++) {
                if (fieldName.equals(fieldsNames[i])) {
                    return fieldsTypes[i];
                }
            }
            return -1;
        }

    }
}