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

📄 gdataaccount.java

📁 lucene2.2.0版本
💻 JAVA
字号:
/**  * Copyright 2004 The Apache Software Foundation  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  *     http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */package org.apache.lucene.gdata.data;import java.net.URL;import java.util.HashSet;import java.util.Set;import com.google.gdata.data.Person;/** * The GData-Server system provides acccount to be associated with registered * feed. Every feed has an owner account. The account holder is automaticaly in * role to modify his feeds. One account can own <i>n</i> feeds having <i>m</i> * entries. * <p> * Additionally an account can be in role to modify other feeds, create accounts * or feeds. See {@link AccountRole} for detailed infomation about roles. One * account can also have more than one role. All roles in {@link AccountRole} * can be combined * </p> * <p> * For each account values for author name, author email and author link can be * set at creation time or during an update. These values will be used as the * corresponding values for the feed * {@link org.apache.lucene.gdata.data.ServerBaseFeed#addAuthor(Person)} if no * value for the feed has be specified. * </p> *  * @author Simon Willnauer *  */public class GDataAccount {    private String name;    private String authorname;    private String authorMail;    private URL authorLink;    private String password;    private Set<AccountRole> roles = new HashSet<AccountRole>(4);    /**     * Creates a new GDataAccount. The default role {@link AccountRole#USER}     * will be set.     *      */    public GDataAccount() {        this.roles.add(AccountRole.USER);    }    /**     * @return - the password     */    public String getPassword() {        return this.password;    }    /**     * @param password -     *            the account Password     */    public void setPassword(String password) {        this.password = password;    }    /**     * @return - the account name     */    public String getName() {        return this.name;    }    /**     * @param name     *            The name to set.     */    public void setName(String name) {        this.name = name;    }    /**     * @return - the http link specified for the author     */    public URL getAuthorLink() {        return this.authorLink;    }    /**     * @param authorLink -     *            the http link specified for the author     */    public void setAuthorLink(URL authorLink) {        this.authorLink = authorLink;    }    /**     * @return - the authors mail address     */    public String getAuthorMail() {        return this.authorMail;    }    /**     * @param authorMail -     *            the authors mail address     */    public void setAuthorMail(String authorMail) {        this.authorMail = authorMail;    }    /**     * @return - the name specified as being the author name     */    public String getAuthorname() {        return this.authorname;    }    /**     * @param authorname -     *            the name specified as being the author name     */    public void setAuthorname(String authorname) {        this.authorname = authorname;    }    /**     * Adds the given role to the role list     *      * @param role -     *            the role to add to the role list     */    public void setRole(AccountRole role) {        if (role == null)            return;        this.roles.add(role);    }    /**     * @return - the set containing all roles     */    public Set<AccountRole> getRoles() {        return this.roles;    }    /**     * @param role -     *            the role to check     * @return <code>true</code> if the role list contains the given role     */    public boolean isUserInRole(AccountRole role) {        if (role == null)            return false;        return this.roles.contains(role);    }    /**     * @see GDataAccount#setRolesAsInt(int)     * @return - the integer representation for the user roles     */    public int getRolesAsInt() {        // 1 as the Userrole is always set        int bits = 1;        for (AccountRole role : this.roles) {            if (role == AccountRole.ENTRYAMINISTRATOR)                bits ^= 2;            else if (role == AccountRole.FEEDAMINISTRATOR)                bits ^= 4;            else if (role == AccountRole.USERADMINISTRATOR)                bits ^= 8;        }        return bits;    }    /**     * Sets the roles from a int representation.     * <ol>     * <li>The fist bit set indicates a {@link AccountRole#USER} - int value 1</li>     * <li>The second bit set indicates a {@link AccountRole#ENTRYAMINISTRATOR} -     * int value 2</li>     * <li>The third bit set indicates a {@link AccountRole#FEEDAMINISTRATOR} -     * int value 4</li>     * <li>The forth bit set indicates a {@link AccountRole#USERADMINISTRATOR} -     * int value 8</li>     * <ol>     * This method will only set roles, will not remove roles! A combination of     * roles is also possible e.g. the int value 6 combines     * {@link AccountRole#ENTRYAMINISTRATOR} and     * {@link AccountRole#FEEDAMINISTRATOR}.     *      * @param i -     *            the integer used to set the roles     */    public void setRolesAsInt(int i) {        if ((i & 2) > 0)            this.roles.add(AccountRole.ENTRYAMINISTRATOR);        if ((i & 4) > 0)            this.roles.add(AccountRole.FEEDAMINISTRATOR);        if ((i & 8) > 0)            this.roles.add(AccountRole.USERADMINISTRATOR);    }    /**     * @see java.lang.Object#equals(java.lang.Object)     */    public boolean equals(Object o) {        if(this.name == null)            return super.equals(o);        if(o == null)            return false;        if (this == o)            return true;        if (!(o instanceof GDataAccount))            return false;        GDataAccount toCompare = (GDataAccount) o;        if (this.name.equals(toCompare.name))            return true;        return false;    }    /**     * @see java.lang.Object#hashCode()     */    public int hashCode() {        if(this.name == null)            return super.hashCode();        int ret = 37;        ret = 9 * ret + this.name.hashCode();        return ret;    }    /**     * Checks the requiered values for creating an account are set. Required     * values are <tt>name</tt> and <tt>password</tt> the minimum length of     * these values is 6.     *      * @return <code>true</code> if an only if password and name are not <code>null</code> and the length is <tt>> 5</tt>     */    public boolean requiredValuesSet() {        return (this.name != null && this.password != null                && this.name.length() > 5 && this.password.length() > 5);    }        /**     * @see java.lang.Object#toString()     */    public String toString(){        StringBuilder builder = new StringBuilder("GdataAccount: ");        builder.append("name: ").append(this.name);        builder.append(" password: ").append((this.password!= null?" length: "+this.password.length():null));        builder.append(" author: ").append(this.authorname);        builder.append(" author email: ").append(this.authorMail);        builder.append(" author link: ").append(this.authorLink!=null?"":this.authorLink);        return builder.toString();    }        /**     * checks whether the given integer matches the account role.     * @param intRole - integer representation of a role     * @param role - the account role to match     * @return <code>true</code> if and only if the given roles match, otherwise <code>false</code>     */    public static boolean isInRole(int intRole, AccountRole role){        if(role == AccountRole.USER)            return (intRole&1)>0;        if (role == AccountRole.ENTRYAMINISTRATOR)            return (intRole&2) >0 ;        else if (role == AccountRole.FEEDAMINISTRATOR)            return (intRole&4) >0 ;        else if (role == AccountRole.USERADMINISTRATOR)            return (intRole&8) >0 ;        return false;    }        /**     * @return - a new Administrator account      */    public static final GDataAccount createAdminAccount(){        GDataAccount retVal = new GDataAccount();        retVal.setName("administrator");        retVal.setPassword("password");        retVal.setRole(AccountRole.USERADMINISTRATOR);        retVal.setRole(AccountRole.FEEDAMINISTRATOR);        retVal.setRole(AccountRole.ENTRYAMINISTRATOR);        return retVal;    }        /**     * This enum respesents all account roles an account can have.     *      * @author Simon Willnauer     *      */    public enum AccountRole {        /**         * Can create / alter user         */        USERADMINISTRATOR,        /**         * Can create / alter feeds         */        FEEDAMINISTRATOR,        /**         * Can create / alter entries         */        ENTRYAMINISTRATOR,        /**         * can create / alter his own feed entries         */        USER    }}

⌨️ 快捷键说明

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