/* * #%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; }