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

📄 userreader.java

📁 Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI
💻 JAVA
字号:
/*--------------------------------------------------------------------------*
 | Copyright (C) 2006 Christopher Kohlhaas                                  |
 |                                                                          |
 | This program is free software; you can redistribute it and/or modify     |
 | it under the terms of the GNU General Public License as published by the |
 | Free Software Foundation. A copy of the license has been included with   |
 | these distribution in the COPYING file, if not go to www.fsf.org .       |
 |                                                                          |
 | As a special exception, you are granted the permissions to link this     |
 | program with every library, which license fulfills the Open Source       |
 | Definition as published by the Open Source Initiative (OSI).             |
 *--------------------------------------------------------------------------*/

package org.rapla.storage.xml;

import org.rapla.entities.Category;
import org.rapla.entities.internal.UserImpl;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaException;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;

public class UserReader extends RaplaXMLReader
{
    UserImpl user;
    PreferenceReader preferenceHandler;

    public UserReader( RaplaContext context ) throws RaplaException
    {
        super( context );
        preferenceHandler = new PreferenceReader( context );
        addChildHandler( preferenceHandler );
    }

    public void processElement(
        String namespaceURI,
        String localName,
        String qName,
        Attributes atts ) throws SAXException
    {
        if (!namespaceURI.equals( RAPLA_NS ))
            return;

        if (localName.equals( "user" ))
        {
            user = new UserImpl();
            Object id = setId( user, atts );
            setVersionIfThere( user, atts);
            user.setUsername( getString( atts, "username", "" ) );
            user.setName( getString( atts, "name", "" ) );
            user.setEmail( getString( atts, "email", "" ) );
            user.setAdmin( getString( atts, "isAdmin", "false" ).equals( "true" ) );
            String password = getString( atts, "password", null );
            preferenceHandler.setUser( user );
            if ( password != null)
            {
                putPassword( id, password );
            }
        }

        if (localName.equals( "group" ))
        {
            Category group;
            
            String groupId = atts.getValue( "idref" );
            if (groupId !=null)
            {
                group = (Category) resolve( Category.TYPE, groupId );
            }
            else
            {
                String groupKey = getString( atts, "key" );
                group = getGroup( groupKey);
            }
            if (group != null)
            {
                user.addGroup( group );
            }
        }

        if (localName.equals( "preferences" ))
        {
            delegateElement(
                preferenceHandler,
                namespaceURI,
                localName,
                qName,
                atts );
        }
    }
    
    public void processEnd( String namespaceURI, String localName, String qName )
        throws SAXException
    {
        if (!namespaceURI.equals( RAPLA_NS ))
            return;

        if (localName.equals( "user" ))
        {
            preferenceHandler.setUser( null );
            add( user );
        }
    }

}

⌨️ 快捷键说明

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