All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencms.site.xmlsitemap.CmsXmlSitemapUrlBean Maven / Gradle / Ivy

Go to download

OpenCms is an enterprise-ready, easy to use website content management system based on Java and XML technology. Offering a complete set of features, OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.

There is a newer version: 18.0
Show newest version
/*
 * This library is part of OpenCms -
 * the Open Source Content Management System
 *
 * Copyright (C) Alkacon Software (http://www.alkacon.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * For further information about Alkacon Software, please see the
 * company website: http://www.alkacon.com
 *
 * For further information about OpenCms, please see the
 * project website: http://www.opencms.org
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.opencms.site.xmlsitemap;

import org.opencms.file.CmsResource;
import org.opencms.i18n.CmsEncoder;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;

/**
 * A bean which represents an entry in an XML sitemap for SEO purposes.

*/ public class CmsXmlSitemapUrlBean { /** The format used to format the last modification date. */ private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); /** The change frequency. */ private String m_changeFrequency; /** The detail page resource. */ private CmsResource m_detailPageResource; /** The last modification date. */ private Date m_lastModified; /** The locale for which the bean has been created (only used for detail pages). */ private Locale m_locale; /** The original resource. */ private CmsResource m_origResource; /** The priority. */ private double m_priority; /** The subsite for which the bean has been created (only used for detail pages). */ private String m_subsite; /** The URL. */ private String m_url; /** * Creates a new instance.

* * @param url the URL * @param lastModified the last modification date * @param changeFrequency the change frequency string * @param priority the priority */ public CmsXmlSitemapUrlBean(String url, long lastModified, String changeFrequency, double priority) { m_url = url; if (lastModified >= 0) { m_lastModified = new Date(lastModified); } m_changeFrequency = changeFrequency; m_priority = priority; } /** * Helper method to format a date in the W3C datetime format.

* * @param date the date to format * * @return the formatted date */ private static String formatDate(Date date) { String dateStr = dateFormat.format(date); // insert colon into timezone return dateStr.substring(0, 22) + ":" + dateStr.substring(22); } /** * Gets the change frequency string.

* * @return the change frequency string */ public String getChangeFrequency() { return m_changeFrequency; } /** * Gets the last modification date.

* * @return the last modification date */ public Date getDateLastModified() { return m_lastModified; } /** * Gets the detail page resource in case the link is the link to a detail page, else returns null.

* * @return the container page used as the detail page */ public CmsResource getDetailPageResource() { return m_detailPageResource; } /** * Gets the last modification date formatted as W3C datetime.

* * @return the formatted last modification date */ public String getFormattedDate() { return formatDate(m_lastModified); } /** * Returns the locale.

* * @return the locale */ public Locale getLocale() { return m_locale; } /** * Gets the original resource belonging to the link.

* * In case this is a link to a detail page, the resource will be the resource displayed on the detail page * * @return the original resource */ public CmsResource getOriginalResource() { return m_origResource; } /** * Gets the priority for the page.

* * @return the priority */ public double getPriority() { return m_priority; } /** * Returns the subsite.

* * @return the subsite */ public String getSubsite() { return m_subsite; } /** * Gets the page URL.

* * @return the page URL */ public String getUrl() { return m_url; } /** * Sets the detail page resource.

* * @param detailPageResource the detail page resource */ public void setDetailPageResource(CmsResource detailPageResource) { m_detailPageResource = detailPageResource; } /** * Sets the locale.

* * @param locale the locale to set */ public void setLocale(Locale locale) { m_locale = locale; } /** * Sets the original resource.

* * @param resource the original resource */ public void setOriginalResource(CmsResource resource) { m_origResource = resource; } /** * Sets the subsite.

* * @param subsite the subsite to set */ public void setSubsite(String subsite) { m_subsite = subsite; } /** * @see java.lang.Object#toString() */ @Override public String toString() { return m_url + " [" + ReflectionToStringBuilder.toString(this) + "]"; } /** * Writes the changefreq node to the buffer.

* * @param buffer the buffer to write to */ public void writeChangefreq(StringBuffer buffer) { if (m_changeFrequency != null) { writeElement(buffer, "changefreq", getChangeFrequency()); } } /** * Writes a single XML element with text content to a string buffer.

* * @param buffer the string buffer to write to * @param tag the XML tag name * @param content the content of the XML element */ public void writeElement(StringBuffer buffer, String tag, String content) { buffer.append("<" + tag + ">"); buffer.append(CmsEncoder.escapeXml(content)); buffer.append(""); } /** * Writes the lastmod node to the buffer.

* * @param buffer the buffer to write to */ public void writeLastmod(StringBuffer buffer) { if (m_lastModified != null) { writeElement(buffer, "lastmod", getFormattedDate()); } } /** * Writes the priority node to the buffer.

* * @param buffer the buffer to write to */ public void writePriority(StringBuffer buffer) { if ((m_priority >= 0) && (m_priority <= 1)) { writeElement(buffer, "priority", "" + getPriority()); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy