/* Copyright (c) 2001 - 2010 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, availible at the root * application directory. */ package org.geoserver.ows; import java.util.Map; /** * Mangles service URL's based on teh presence of a {@link LocalWorkspace} and {@link LocalLayer}. * <p> * When the local workspace and layer are present this mangler will turns urls of the form: * <pre> * /geoserver/wfs?... * </pre> * into: * <pre> * /geoserver/<localWorkspace>/<localLayer>/wfs?... * </pre> * </p> * @author Justin Deoliveira, OpenGeo * */ public class LocalWorkspaceURLMangler implements URLMangler { /** * the name/identifier of the ows: wfs, wms, wcs, etc... */ String ows; public LocalWorkspaceURLMangler(String ows) { this.ows = ows; } public void mangleURL(StringBuilder baseURL, StringBuilder path, Map<String, String> kvp, URLType type) { if (type == URLType.SERVICE && path.toString().equalsIgnoreCase(ows)) { if (LocalWorkspace.get() != null) { path.insert(0, LocalWorkspace.get().getName()+"/"); if (LocalLayer.get() != null) { int i = LocalWorkspace.get().getName().length()+1; path.insert(i, LocalLayer.get().getName()+"/"); } } } } }