org.broadleafcommerce.common.sitemap.service.SiteMapService Maven / Gradle / Ivy
/*
* #%L
* BroadleafCommerce Common Libraries
* %%
* Copyright (C) 2009 - 2013 Broadleaf Commerce
* %%
* 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.
* #L%
*/
package org.broadleafcommerce.common.sitemap.service;
import org.broadleafcommerce.common.sitemap.exception.SiteMapException;
import java.io.File;
import java.io.IOException;
/**
* Class responsible for generating the SiteMap.xml and related files.
*
* This service generates the structure of the SiteMap file. It assumes the use of SiteMap indexes
* and follows the convention siteMap#.xml
*
* @author bpolster
*
*/
public interface SiteMapService {
/**
* Generates a well formed SiteMap. When {@link #getSiteMapFile(String)} is called, if no file is found then
* it will invoke this method. Typically, an implementation will setup scheduled jobs to create the
* siteMap.xml.
*
* Implementation should implement a well formed SiteMap (for example, the default Broadleaf SiteMapImpl
* returns a SiteMap compatible with this schema.
*
* http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd
*
* Implementations should utilize the list of SiteMapGenerators that build the actual entries in the sitemap.xml
* files.
* @throws SiteMapException
*
* @see SiteMapGenerator
*/
SiteMapGenerationResponse generateSiteMap() throws IOException, SiteMapException;
/**
* Returns the File object that can be used to retrieve the SiteMap.xml file
* @throws IOException
* @throws SiteMapException
*/
File getSiteMapFile(String fileName) throws SiteMapException, IOException;
}