view src/global/UrlMapperImpl.java @ 23:e424dc827823

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 14 Jun 2020 15:44:42 -0600
parents 02b2fdfc07e2
children
line wrap: on
line source

package global;

import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import fschmidt.util.servlet.UrlMapper;
import fschmidt.util.servlet.UrlMapping;


enum UrlMapperImpl implements UrlMapper {
	INSTANCE;

	private static final Pattern ROOT_FORUMS_PATTERN = Pattern.compile("/free-apps/page(\\d+)\\.html$");

	public UrlMapping getUrlMapping(HttpServletRequest request) {
		String path = request.getServletPath();

		if( path.equals("/") )
			return new UrlMapping( global.web.Index.class, Collections.<String,String[]>emptyMap() );

		if( path.equals("/tools/") )
			return new UrlMapping( global.web.tools.Index.class, Collections.<String,String[]>emptyMap() );

		Matcher m = ROOT_FORUMS_PATTERN.matcher(path);
		if( m.find() ) {
			Map<String,String[]> params = new HashMap<String,String[]>();
			String s = m.group(1);
			if( s != null )
				params.put( "page", new String[]{s} );
			return new UrlMapping( global.web.RootForums.class, params );
		}

		if( path.equals("/sitemap.txt") )
			return new UrlMapping( global.web.Sitemap.class, Collections.<String,String[]>emptyMap() );

		if( path.equals("/ads.txt") )
			return new UrlMapping( global.web.Ads.class, Collections.<String,String[]>emptyMap() );

		return null;
	}
}