/*
* Copyright 2005 Joe Walker
*
* 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.
*/
package jsx3.net;
/**
* @author Joe Walker [joe at getahead dot ltd dot uk]
*/
public class URIResolver
{
/**
* {jsx3.net.URIResolver} The default URI resolver. This resolver can
* resolve any of the absolute URI formats supported by the system. Other
* absolute URIs and all relative URIs are unmodified. The absolute URI
* formats are:
* <ul>
* <li><code>JSX/...</code> –</li>
* <li><code>JSXAPPS/...</code> –</li>
* <li><code>GI_Builder/...</code> –</li>
* <li><code>jsx:/...</code> –</li>
* <li><code>jsxapp://appPath/...</code> –</li>
* <li><code>jsxaddin://addinKey/...</code> –</li>
* <li><code>jsxuser:/...</code> –</li>
* </ul>
*/
public static final URIResolver DEFAULT = new URIResolver("jsx3.net.URIResolver.DEFAULT");
/**
* {jsx3.net.URIResolver} Resolves URIs according to the default resolver
* except that all relative URIs are resolved relative to the
* <code>JSX/</code> directory. This resolver resolves the following URIs to
* the same value:
* <ul>
* <li><code>JSX/file.xml</code></li>
* <li><code>jsx:/file.xml</code></li>
* <li><code>file.xml</code></li>
* </ul>
*/
public static final URIResolver JSX = new URIResolver("jsx3.net.URIResolver.JSX");
/**
* {jsx3.net.URIResolver} Resolves URIs according to the default resolver
* except that all relative URIs are resolved relative to the user directory
* (or <code>JSXAPPS/../</code>). This resolver resolves the following URIs
* to the same value:
* <ul>
* <li><code>JSXAPPS/../file.xml</code></li>
* <li><code>jsxuser:/file.xml</code></li>
* <li><code>file.xml</code></li>
* </ul>
*/
public static final URIResolver USER = new URIResolver("jsx3.net.URIResolver.USER");
/**
* @param name
*/
protected static URIResolver toURIResolver(String name)
{
if (name.equals(URIResolver.DEFAULT.constant))
{
return DEFAULT;
}
if (name.equals(URIResolver.JSX.constant))
{
return JSX;
}
if (name.equals(URIResolver.USER.constant))
{
return USER;
}
return null;
}
/**
* @param constant
*/
public URIResolver(String constant)
{
this.constant = constant;
}
/**
* The string to send to Javascript
*/
protected final String constant;
}