/** * ServletHolder matching path. * * @param target Path within _context or servlet name * @return MappedResource to the ServletHolder. Named servlets have a null PathSpec */ public MappedResource<ServletHolder> getMappedServlet(String target) { if (target.startsWith("/")) { if (_servletPathMap==null) return null; return _servletPathMap.getMatch(target); } if (_servletNameMap==null) return null; ServletHolder holder = _servletNameMap.get(target); if (holder==null) return null; return new MappedResource<>(null,holder); }
@SuppressWarnings("incomplete-switch") public void put(PathSpec pathSpec, E resource) { MappedResource<E> entry = new MappedResource<>(pathSpec,resource); switch (pathSpec.group) { case DEFAULT: defaultResource = entry; break; case ROOT: rootResource = entry; break; } // TODO: add warning when replacing an existing pathspec? mappings.add(entry); if (LOG.isDebugEnabled()) LOG.debug("Added {} to {}",entry,this); Collections.sort(mappings); }
@SuppressWarnings("incomplete-switch") public void put(PathSpec pathSpec, E resource) { MappedResource<E> entry = new MappedResource<>(pathSpec,resource); switch (pathSpec.group) { case DEFAULT: defaultResource = entry; break; case ROOT: rootResource = entry; break; } // TODO: add warning when replacing an existing pathspec? mappings.add(entry); if (LOG.isDebugEnabled()) LOG.debug("Added {} to {}",entry,this); Collections.sort(mappings); }
public boolean put(PathSpec pathSpec, E resource) { MappedResource<E> entry = new MappedResource<>(pathSpec,resource); switch (pathSpec.group) { case EXACT: String exact = pathSpec.getPrefix(); while (exact!=null && !_exactMap.put(exact,entry)) _exactMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_exactMap,1.5); break; case PREFIX_GLOB: String prefix = pathSpec.getPrefix(); while (prefix!=null && !_prefixMap.put(prefix,entry)) _prefixMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_prefixMap,1.5); break; case SUFFIX_GLOB: String suffix = pathSpec.getSuffix(); while (suffix!=null && !_suffixMap.put(suffix,entry)) _suffixMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_prefixMap,1.5); break; default: } boolean added =_mappings.add(entry); if (LOG.isDebugEnabled()) LOG.debug("{} {} to {}",added?"Added":"Ignored",entry,this); return added; }
public boolean put(PathSpec pathSpec, E resource) { MappedResource<E> entry = new MappedResource<>(pathSpec,resource); switch (pathSpec.group) { case EXACT: String exact = pathSpec.getPrefix(); while (exact!=null && !_exactMap.put(exact,entry)) _exactMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_exactMap,1.5); break; case PREFIX_GLOB: String prefix = pathSpec.getPrefix(); while (prefix!=null && !_prefixMap.put(prefix,entry)) _prefixMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_prefixMap,1.5); break; case SUFFIX_GLOB: String suffix = pathSpec.getSuffix(); while (suffix!=null && !_suffixMap.put(suffix,entry)) _suffixMap=new ArrayTernaryTrie<>((ArrayTernaryTrie<MappedResource<E>>)_prefixMap,1.5); break; default: } boolean added =_mappings.add(entry); if (LOG.isDebugEnabled()) LOG.debug("{} {} to {}",added?"Added":"Ignored",entry,this); return added; }