package org.red5.server; /* * RED5 Open Source Flash Server - http://www.osflash.org/red5 * * Copyright (c) 2006-2009 by respective authors (see below). All rights reserved. * * 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. * * 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 */ import org.red5.server.api.IMappingStrategy; /** * Basic mapping strategy implementation. This one uses slash as filesystem path separator, * '.service' postfix for services naming, '.handler' for handlers naming and 'default' string as * default application name. */ public class MappingStrategy implements IMappingStrategy { /** * Root constant */ private static final String ROOT = ""; /** * Handler extension constant */ private static final String HANDLER = ".handler"; /** * Dir separator constant */ private static final String DIR = "/"; /** * Service extension constant */ private static final String SERVICE = ".service"; /** * Default application name */ private String defaultApp = "default"; /** * Setter for default application name ('default' by default). * @param defaultApp Default application */ public void setDefaultApp(String defaultApp) { this.defaultApp = defaultApp; } /** * Resolves resource prefix from path. Default application used as root when path is specified * @param path Path * @return Resource prefix according to this naming strategy */ public String mapResourcePrefix(String path) { if (path == null || path.equals(ROOT)) { return defaultApp + DIR; } else { return path + DIR; } } /** * Resolves scope handler name for path& Default application used as root when path is specified * @param path Path * @return Scope handler name according to this naming strategy */ public String mapScopeHandlerName(String path) { if (path == null || path.equals(ROOT)) { return defaultApp + HANDLER; } else { return path + HANDLER; } } /** * Resolves service filename name from name * @param name Service name * @return Service filename according to this naming strategy */ public String mapServiceName(String name) { return name + SERVICE; } }