⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbdataexport.java

📁 java开发的一套非常好用的oa系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    e.printStackTrace();
                }
            }
            buf.append("</MessageList>");
        }
        buf.append("</Message>");
    }

    private String getUserXML(User user, boolean IDFlag) throws UnauthorizedException {
        StringBuffer buf = new StringBuffer(512);
        if (!IDFlag) {
            buf.append("<User>");
        }
        else {
            buf.append("<User id=\"").append(user.getID()).append("\">");
        }
        buf.append("<Username>");
        buf.append(StringUtils.escapeForXML(user.getUsername()));
        buf.append("</Username><Password>");
        buf.append(StringUtils.escapeForXML(user.getPasswordHash()));
        boolean emailVisible = user.isEmailVisible();
        boolean nameVisible = user.isNameVisible();
        String name = user.getName();
        buf.append("</Password><Email visible=\"" + emailVisible + "\">");
        buf.append(StringUtils.escapeForXML(user.getEmail()));
        buf.append("</Email>");
        if (name != null) {
            buf.append("<Name visible=\"" + nameVisible + "\">");
            buf.append(StringUtils.escapeForXML(name));
            buf.append("</Name>");
        }
        // creation date / modified date
        buf.append("<CreationDate>").append(user.getCreationDate()).append("</CreationDate>");
        buf.append("<ModifiedDate>").append(user.getModifiedDate()).append("</ModifiedDate>");
        // Properties
        Iterator userProps = user.propertyNames();
        if (userProps.hasNext()) {
            buf.append("<PropertyList>");
            while (userProps.hasNext()) {
                String propName = (String)userProps.next();
                String propValue = StringUtils.escapeForXML(user.getProperty(propName));
                if (propValue != null) {
                    // XML escape these sequences
                    propName = StringUtils.escapeForXML(propName);
                    buf.append("<Property name=\"").append(propName).append("\" ");
                    buf.append("value=\"").append(propValue).append("\"/>");
                }
            }
            buf.append("</PropertyList>");
        }
        buf.append("</User>");
        return buf.toString();
    }

    private String getGroupXML(Group group, boolean IDFlag) throws UnauthorizedException {
        StringBuffer buf = new StringBuffer(512);
        if (!IDFlag) {
            buf.append("<Group>");
        }
        else {
            buf.append("<Group id=\"").append(group.getID()).append("\">");
        }

        buf.append("<Name>");
        buf.append(StringUtils.escapeForXML(group.getName()));
        buf.append("</Name><Description>");
        buf.append(StringUtils.escapeForXML(group.getDescription()));
        buf.append("</Description>");

        // creation date / modified date
        buf.append("<CreationDate>").append(group.getCreationDate()).append("</CreationDate>");
        buf.append("<ModifiedDate>").append(group.getModifiedDate()).append("</ModifiedDate>");
        // Properties
        Iterator groupProps = group.propertyNames();
        if (groupProps.hasNext()) {
            buf.append("<PropertyList>");
            while (groupProps.hasNext()) {
                String propName = (String)groupProps.next();
                String propValue = StringUtils.escapeForXML(group.getProperty(propName));
                if (propValue != null) {
                    // XML escape these sequences
                    propName = StringUtils.escapeForXML(propName);
                    buf.append("<Property name=\"").append(propName).append("\" ");
                    buf.append("value=\"").append(propValue).append("\"/>");
                }
            }
            buf.append("</PropertyList>");
        }
        // Admin list
        Iterator admins = group.administrators();
        if (admins.hasNext()) {
            buf.append("<AdministratorList>");
            while (admins.hasNext()) {
                String username = ((User)admins.next()).getUsername();
                buf.append("<Username>").append(username).append("</Username>");
            }
            buf.append("</AdministratorList>");
        }
        // Member list
        Iterator members = group.members();
        if (members.hasNext()) {
            buf.append("<MemberList>");
            while (members.hasNext()) {
                String username = ((User)members.next()).getUsername();
                buf.append("<Username>").append(username).append("</Username>");
            }
            buf.append("</MemberList>");
        }
        buf.append("</Group>");
        return buf.toString();
    }

    private void exportUsers(Writer out, boolean IDFlag) throws IOException,
            UnauthorizedException
    {
        UserManager userManager = factory.getUserManager();
        for (Iterator iter = userManager.users(); iter.hasNext(); ) {
            User user = (User)iter.next();
            out.write(getUserXML(user, IDFlag));
        }
    }

    private void exportGroups(Writer out, boolean IDFlag) throws IOException,
            UnauthorizedException
    {
        GroupManager groupManager = factory.getGroupManager();
        for (Iterator iter = groupManager.groups(); iter.hasNext(); ) {
            Group group = (Group)iter.next();
            out.write(getGroupXML(group, IDFlag));
        }
    }

    private void exportForums(Writer out, boolean IDFlag) throws IOException,
            UnauthorizedException
    {
        Iterator forums = factory.forums();
        while (forums.hasNext()) {
            Forum forum = (Forum)forums.next();
            String name = forum.getName();
            StringBuffer buf = new StringBuffer(4096);
            if (!IDFlag) {
                buf.append("<Forum>");
            }
            else {
                buf.append("<Forum id=\"").append(forum.getID()).append("\">");
            }
            buf.append("<Name>");
            buf.append(StringUtils.escapeForXML(name));
            buf.append("</Name><Description>");
            buf.append(StringUtils.escapeForXML(forum.getDescription()));
            buf.append("</Description><CreationDate>");
            buf.append(dateFormatter.format(forum.getCreationDate()));
            buf.append("</CreationDate><ModifiedDate>");
            buf.append(dateFormatter.format(forum.getModifiedDate()));
            buf.append("</ModifiedDate>");

            // export forum permissions
            PermissionsManager permManager = forum.getPermissionsManager();
            buf.append("<PermissionList>");

            // User List
            buf.append("<UserPermissionList>");
            for( int i=0; i<permNames.length; i++ ) {
            Iterator userList = permManager.usersWithPermission(permTypes[i]);
                while( userList.hasNext() ) {
                User user = (User)userList.next();
                if( user != null ) {
                    buf.append("<UserPermission usertype=\"USER\" username=\"");
                    buf.append(user.getUsername());
                    buf.append("\" permission=\"" + permNames[i] + "\"/>");
                }
                }
            if( permManager.anonymousUserHasPermission(permTypes[i]) ) {
                buf.append("<UserPermission usertype=\"ANONYMOUS\"");
                buf.append(" permission=\"" + permNames[i] + "\"/>");
            }
            if( permManager.registeredUserHasPermission(permTypes[i]) ) {
                buf.append("<UserPermission usertype=\"REGISTERED_USERS\"");
                buf.append(" permission=\"" + permNames[i] + "\"/>");
            }
            }
            buf.append("</UserPermissionList>");

            // Group List
            buf.append("<GroupPermissionList>");
            for( int i=0; i<permNames.length; i++ ) {
            Iterator groupList = permManager.groupsWithPermission(permTypes[i]);
            while( groupList.hasNext() ) {
                Group group = (Group)groupList.next();
                if( group != null ) {
                        buf.append("<GroupPermission groupname=\"" + group.getName() + "\"");
                        buf.append(" permission=\"" + permNames[i] + "\"/>");
                    }
                }
            }
            buf.append("</GroupPermissionList>");
            buf.append("</PermissionList>");

            // Properties
            Iterator propertyNames = forum.propertyNames();
            if( propertyNames.hasNext() ) {
                buf.append("<PropertyList>");
                while (propertyNames.hasNext()) {
                    String propName = (String)propertyNames.next();
                    String propValue = StringUtils.escapeForXML(
                        forum.getProperty(propName));
                    if (propValue != null) {
                        propName = StringUtils.escapeForXML(propName);
                        buf.append("<Property name=\"").append(propName).append("\" ");
                        buf.append("value=\"").append(propValue).append("\"/>");
                    }
                }
                buf.append("</PropertyList>");
            }

            // write out what we have so far
            out.write(buf.toString());

            // export threads
            out.write("<ThreadList>");
            exportThreads(forum, IDFlag, out);
            out.write("</ThreadList>");
            out.write("</Forum>");
        }
    }

    private void exportThreads(Forum forum, boolean IDFlag, Writer out) throws IOException {
        for (Iterator iter = forum.threads(); iter.hasNext(); ) {
            ForumThread thread = (ForumThread)iter.next();
            out.write(getThreadXML(thread, IDFlag));
        }
    }

    public static void main( String args[] ) {
        if( args.length < 3 ) {
            System.err.println( "USAGE: java DbDataExport [xml_uri] "
                + "[jive_username] [jive_password]" );
            System.exit(1);
        }/*
        try {
            authToken = AuthorizationFactory.getAuthorization(args[1],args[2]);
        }
        catch( UnauthorizedException e ) {
            System.err.println( "Error authenicating user " + args[1] + ". "
                + "Please make sure you're using the correct username and "
                + "password." );
            System.exit(1);
        }*/
        try {
            DbDataExport exporter = new DbDataExport(new DbForumFactory());
            System.out.println("\nBeginning export, writing to " + args[0] + "...");
            long time = System.currentTimeMillis();
            exporter.export(true);
            time = System.currentTimeMillis() - time;

            System.out.println("\nExport done, time = "
                + ((double)time/1000.0) + " seconds" );

        } catch( Exception e ) {
            e.printStackTrace();
        }
        System.exit(1);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -