001/*
002 * This library is part of OpenCms -
003 * the Open Source Content Management System
004 *
005 * Copyright (C) Alkacon Software (http://www.alkacon.com)
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * For further information about Alkacon Software, please see the
018 * company website: http://www.alkacon.com
019 *
020 * For further information about OpenCms, please see the
021 * project website: http://www.opencms.org
022 *
023 * You should have received a copy of the GNU Lesser General Public
024 * License along with this library; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026 */
027
028package org.opencms.ade.configuration;
029
030import org.opencms.file.CmsResource;
031
032/**
033 * This class contains the model page configuration for a sitemap region.<p>
034 *
035 * @author Georg Westenberger
036 *
037 * @version $Revision: 1.0 $
038 *
039 * @since 8.0.0
040 */
041public class CmsModelPageConfig implements I_CmsConfigurationObject<CmsModelPageConfig>, Cloneable {
042
043    /** The model page resource. */
044    private CmsResource m_resource;
045
046    /** True if this is a default model page. */
047    private boolean m_isDefault;
048
049    /** True if this bean disables a model page rather than adding one.*/
050    private boolean m_isDisabled;
051
052    /**
053     * Creates a new model page configuration bean.<p>
054     *
055     * @param res the model page resource
056     * @param isDefault true if this is a default model page
057     * @param isDisabled true if this is a disabled model page
058     */
059    public CmsModelPageConfig(CmsResource res, boolean isDefault, boolean isDisabled) {
060
061        m_resource = res;
062        m_isDefault = isDefault;
063        m_isDisabled = isDisabled;
064    }
065
066    /**
067     * @see java.lang.Object#clone()
068     */
069    @Override
070    public CmsModelPageConfig clone() {
071
072        return new CmsModelPageConfig(m_resource, m_isDefault, m_isDisabled);
073    }
074
075    /**
076     * @see org.opencms.ade.configuration.I_CmsConfigurationObject#getKey()
077     */
078    public String getKey() {
079
080        return m_resource.getStructureId().toString();
081    }
082
083    /**
084     * Gets the model page resource.<p>
085     *
086     * @return the model page resource
087     */
088    public CmsResource getResource() {
089
090        return m_resource;
091    }
092
093    /**
094     * Returns true if this is a default model page.<p>
095     *
096     * @return true if this is a default model page
097     */
098    public boolean isDefault() {
099
100        return m_isDefault;
101    }
102
103    /**
104     * Returns true if this entry disables the model page.<p>
105     *
106     * @return true if this entry disables the model page
107     */
108    public boolean isDisabled() {
109
110        return m_isDisabled;
111    }
112
113    /**
114     * @see org.opencms.ade.configuration.I_CmsConfigurationObject#merge(org.opencms.ade.configuration.I_CmsConfigurationObject)
115     */
116    public CmsModelPageConfig merge(CmsModelPageConfig child) {
117
118        return child.clone();
119    }
120}