public Object getPropertyValue(TOObject obj, TOProperty prop) {
        TOObjectProperty objprop = getObjectProperty(obj, prop);
        if (objprop != null) {
            Object ret = null;
            switch (objprop.getPropType()) {
                case TOPropertyType.TYPE_STR: {
                    ret = objprop.getStrval();
                }
                break;
                case TOPropertyType.TYPE_INT: {
                    ret = objprop.getIntval();
                }
                break;
                case TOPropertyType.TYPE_FLOAT: {
                    ret = objprop.getFloatval();
                }
                break;
                case TOPropertyType.TYPE_TEXT: {
                    ret = objprop.getTextval();
                }
                break;
                case TOPropertyType.TYPE_DATE: {
                    ret = objprop.getDateval();
                }
                break;
                case TOPropertyType.TYPE_LIST: {
                    //ret = getObjIdsListByPropertyId(objprop.getListval());
                }
                break;
            }
            return ret;
        }
        throw new RuntimeException("Object " + obj.getObjectId() + " doesn't have property " + prop.getPropId());
    }