/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.cocoon.sitemap; import java.util.HashMap; import org.apache.avalon.framework.parameters.Parameters; import org.apache.cocoon.util.location.Locatable; import org.apache.cocoon.util.location.Location; /** * Extension to the Avalon Parameters to give location information * * @version CVS $Id$ */ public class SitemapParameters extends Parameters implements Locatable { private Location location = Location.UNKNOWN; public SitemapParameters(Location location) { this.location = location; } /* * Get the location of the statement defining these parameters. * * @since 2.1.8 * @see org.apache.cocoon.util.location.Locatable#getLocation() */ public Location getLocation() { return this.location; } /** * Get the location of a <code>Parameters</code> object, returning * {@link Location#UNKNOWN} if no location could be found. * * @param param * @return the location * @since 2.1.8 */ public static Location getLocation(Parameters param) { Location loc = null; if (param instanceof Locatable) { loc = ((Locatable)param).getLocation(); } return loc == null ? Location.UNKNOWN : loc; } /** * @deprecated use {@link #getLocation(Parameters)} */ public static String getStatementLocation(Parameters param) { return getLocation(param).toString(); } /** * For internal use only. */ public static class LocatedHashMap extends HashMap implements Locatable { private Location loc; public Location getLocation() { return this.loc; } public LocatedHashMap(Location loc) { this.loc = loc; } public LocatedHashMap(Location loc, int size) { super(size); this.loc = loc; } } }