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

📄 memoryuser.java

📁 一个Struts写的网上购物系统,是一个不错的实例.
💻 JAVA
字号:
/* * $Header: /home/cvspublic/jakarta-struts/src/example/org/apache/struts/webapp/example/memory/MemoryUser.java,v 1.1 2002/03/05 04:23:57 craigmcc Exp $ * $Revision: 1.1 $ * $Date: 2002/03/05 04:23:57 $ * * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, if *    any, must include the following acknowlegement: *       "This product includes software developed by the *        Apache Software Foundation (http://www.apache.org/)." *    Alternately, this acknowlegement may appear in the software itself, *    if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Struts", and "Apache Software *    Foundation" must not be used to endorse or promote products derived *    from this software without prior written permission. For written *    permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache" *    nor may "Apache" appear in their names without prior written *    permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation.  For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */package org.apache.struts.webapp.example.memory;import java.util.HashMap;import org.apache.struts.webapp.example.Subscription;import org.apache.struts.webapp.example.User;import org.apache.struts.webapp.example.UserDatabase;/** * <p>Concrete implementation of {@link User} for an in-memory * database backed by an XML data file.</p> * * @author Craig R. McClanahan * @version $Revision: 1.1 $ $Date: 2002/03/05 04:23:57 $ * @since Struts 1.1 */public final class MemoryUser implements User {    // ----------------------------------------------------------- Constructors    /**     * <p>Construct a new User associated with the specified     * {@link UserDatabase}.     *     * @param database The user database with which we are associated     * @param username The username of this user     */    public MemoryUser(MemoryUserDatabase database, String username) {        super();        this.database = database;        this.username = username;    }    // ----------------------------------------------------- Instance Variables    /**     * The {@link UserDatabase} with which we are associated.     */    private MemoryUserDatabase database = null;    /**     * The {@link Subscription}s for this User, keyed by hostname.     */    private HashMap subscriptions = new HashMap();    /**     * The username for this user.     */    private String username = null;    // ------------------------------------------------------------- Properties    /**     * The {@link UserDatabase} with which we are associated.     */    public UserDatabase getDatabase() {        return (this.database);    }    /**     * The email address from which messages are sent.     */    private String fromAddress = null;    public String getFromAddress() {        return (this.fromAddress);    }    public void setFromAddress(String fromAddress) {        this.fromAddress = fromAddress;    }    /**     * The full name of this user, included in from addresses.     */    private String fullName = null;    public String getFullName() {        return (this.fullName);    }    public void setFullName(String fullName) {        this.fullName = fullName;    }    /**     * The password (in clear text).     */    private String password = null;    public String getPassword() {        return (this.password);    }    public void setPassword(String password) {        this.password = password;    }    /**     * The EMAIL address to which replies should be sent.     */    private String replyToAddress = null;    public String getReplyToAddress() {        return (this.replyToAddress);    }    public void setReplyToAddress(String replyToAddress) {        this.replyToAddress = replyToAddress;    }    /**     * Find and return all {@link Subscription}s associated with this user.     * If there are none, a zero-length array is returned.     */    public Subscription[] getSubscriptions() {        synchronized (subscriptions) {            Subscription results[] = new Subscription[subscriptions.size()];            return ((Subscription[]) subscriptions.values().toArray(results));        }    }    /**     * The username (must be unique).     */    public String getUsername() {        return (this.username);    }    // --------------------------------------------------------- Public Methods    /**     * Create and return a new {@link Subscription} associated with this     * User, for the specified host name.     *     * @param host Host name for which to create a subscription     *     * @exception IllegalArgumentException if the host name is not unique     *  for this user     */    public Subscription createSubscription(String host) {        synchronized (subscriptions) {            if (subscriptions.get(host) != null) {                throw new IllegalArgumentException("Duplicate host '" + host                                                   + "' for user '" +                                                   username + "'");            }            MemorySubscription subscription =                new MemorySubscription(this, host);            synchronized (subscriptions) {                subscriptions.put(host, subscription);            }            return (subscription);        }    }    /**     * Find and return the {@link Subscription} associated with the specified     * host.  If none is found, return <code>null</code>.     *     * @param host Host name to look up     */    public Subscription findSubscription(String host) {        synchronized (subscriptions) {            return ((Subscription) subscriptions.get(host));        }    }    /**     * Remove the specified {@link Subscription} from being associated     * with this User.     *     * @param subscription Subscription to be removed     *     * @exception IllegalArgumentException if the specified subscription is not     *  associated with this User     */    public void removeSubscription(Subscription subscription) {        if (!(this == subscription.getUser())) {            throw new IllegalArgumentException                ("Subscription not associated with this user");        }        synchronized (subscriptions) {            subscriptions.remove(subscription.getHost());        }    }    /**     * Return a String representation of this object.     */    public String toString() {        StringBuffer sb = new StringBuffer("<user username=\"");        sb.append(username);        sb.append("\"");        if (fromAddress != null) {            sb.append(" fromAddress=\"");            sb.append(fromAddress);            sb.append("\"");        }        if (fullName != null) {            sb.append(" fullName=\"");            sb.append(fullName);            sb.append("\"");        }        if (password != null) {            sb.append(" password=\"");            sb.append(password);            sb.append("\"");        }        if (replyToAddress != null) {            sb.append(" replyToAddress=\"");            sb.append(replyToAddress);            sb.append("\"");        }        sb.append(">");        return (sb.toString());    }}

⌨️ 快捷键说明

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