baseprofile.java

来自「jetspeed源代码」· Java 代码 · 共 138 行

JAVA
138
字号
/*
 * Copyright 2000-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.jetspeed.om.profile;

import org.apache.jetspeed.portal.PortletSet;
import org.apache.jetspeed.services.PortalToolkit;
import org.apache.jetspeed.services.PsmlManager;

/**
Provides base functionality within a Registry.

@author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
@version $Id: BaseProfile.java,v 1.19 2004/02/23 03:05:01 jford Exp $
*/

public class BaseProfile  extends BaseProfileLocator implements Profile
{

    protected PSMLDocument document = null;

    public BaseProfile()
    {}

    public BaseProfile(ProfileLocator locator)
    {
        init(locator);
    }

    public void init(ProfileLocator locator)
    {
        this.setAnonymous(locator.getAnonymous());
        this.setCountry(locator.getCountry());
        this.setGroup(locator.getGroup());
        this.setLanguage(locator.getLanguage());
        this.setMediaType(locator.getMediaType());
        this.setName(locator.getName());
        this.setRole(locator.getRole());
        this.setUser(locator.getUser());        
    }
    
    /**
     * @see Object#clone
     * @return an instance copy of this object
     */
    public Object clone() throws java.lang.CloneNotSupportedException
    {
        Object cloned = super.clone();

        // clone the document
        ((BaseProfile)cloned).document = ((this.document == null) ? null : (PSMLDocument) this.document.clone());

        return cloned;
    }

    /**
       Gets the root set of portlets for this profile object.

       @return The root portlet set for this profile.
     */
    public PortletSet getRootSet()
    {
        return PortalToolkit.getSet( getDocument().getPortlets() );
    }

    /**
       Gets the root set of portlets for this profile object.

       @return The root portlet set for this profile.
     */
    public PSMLDocument getDocument()
    {
        synchronized (this)
        {
            if ((this.document == null) || (this.document.getPortlets() == null))
            {
                this.document = PsmlManager.getDocument(this);
            }
        }

        return this.document;
    }

    /*
     * Sets the psml document attached to this profile
     *
     * @param The PSML document for this profile.
     */
    public void setDocument(PSMLDocument document)
    {
        this.document = document;
    }

    /**
       stores the resource by merging and rewriting the psml file

       @throws ProfileException if an error occurs storing the profile
    */
    public void store() throws ProfileException
    {
        if (document != null)
        {
            PsmlManager.store(this);
        }
    }

    /**
     provide useful info for ease of debugging
    */
    public String toString()
    {
        return "BaseProfile["+ getId() + "]"; /*
               getUser().getUserName()+","+
               getGroup().getName()+","+
               getRole().getName()+","+
               (getAnonymous() ? "anon,":"")+
               getMediaType()+","+
               getCountry()+","+
               getLanguage()+","+
               getName()+"]"; */
    }


}

⌨️ 快捷键说明

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