001package org.apache.fulcrum.security.entity;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022/**
023 * This interface represents the extended functionality of a user.
024 *
025 * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
026 * @version $Id: User.java 1374616 2012-08-18 17:26:07Z tv $
027 */
028public interface ExtendedUser extends User
029{
030    /**
031     * Returns the first name for this user.
032     *
033     * @return A String with the user's first name.
034     */
035
036    String getFirstName();
037
038    /**
039     * Returns the last name for this user.
040     *
041     * @return A String with the user's last name.
042     */
043    String getLastName();
044
045    /**
046     * Returns the email address for this user.
047     *
048     * @return A String with the user's email address.
049     */
050    String getEmail();
051
052    /**
053     * Sets the first name for this user.
054     *
055     * @param firstName User's first name.
056     */
057    void setFirstName(String firstName);
058
059    /**
060     * Sets the last name for this user.
061     *
062     * @param lastName User's last name.
063     */
064    void setLastName(String lastName);
065
066    /**
067     * Sets the email address.
068     *
069     * @param address The email address.
070     */
071    void setEmail(String address);
072
073    /**
074     * Returns the value of the objectdata for this user.
075     * Objectdata is a storage area used
076     * to store the permanent storage table from the User
077     * object.
078     *
079     * @return The bytes in the objectdata for this user
080     */
081    byte[] getObjectdata();
082
083    /**
084     * Sets the value of the objectdata for the user
085     *
086     * @param objectdata The new permanent storage for the user
087     */
088    void setObjectdata(byte[] objectdata);
089}