/** * Comparison is based solely on the pathSpec */ @Override public int compareTo(MappedResource<E> other) { return this.pathSpec.compareTo(other.pathSpec); }
@Override public <T> T[] toArray(T[] a) { int i = 0; for (PathSpec spec : specs) { a[i++] = (T)spec.getDeclaration(); } return a; }
@Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((pathSpec == null) ? 0 : pathSpec.hashCode()); return result; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } MappedResource<?> other = (MappedResource<?>)obj; if (pathSpec == null) { if (other.pathSpec != null) { return false; } } else if (!pathSpec.equals(other.pathSpec)) { return false; } return true; }
@Override public boolean test(String s) { for (PathSpec spec : specs) { if (spec.matches(s)) { return true; } } return false; }
PathSpecGroup group=mr.getPathSpec().getGroup(); if (group!=last_group) if (candidate==null) break; if (candidate.getPathSpec().matches(path)) return candidate; i=candidate.getPathSpec().getPrefix().length()-1; if (candidate==null) break; if (candidate.getPathSpec().matches(path)) return candidate; i=candidate.getPathSpec().getPrefix().length()-1; if (candidate!=null && candidate.getPathSpec().matches(path)) return candidate; if (mr.getPathSpec().matches(path)) return mr;
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; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } MappedResource<?> other = (MappedResource<?>)obj; if (pathSpec == null) { if (other.pathSpec != null) { return false; } } else if (!pathSpec.equals(other.pathSpec)) { return false; } return true; }
@Override public boolean test(String s) { for (PathSpec spec : specs) { if (spec.matches(s)) { return true; } } return false; }
PathSpecGroup group=mr.getPathSpec().getGroup(); if (group!=last_group) if (candidate==null) break; if (candidate.getPathSpec().matches(path)) return candidate; i=candidate.getPathSpec().getPrefix().length()-1; if (candidate==null) break; if (candidate.getPathSpec().matches(path)) return candidate; i=candidate.getPathSpec().getPrefix().length()-1; if (candidate!=null && candidate.getPathSpec().matches(path)) return candidate; if (mr.getPathSpec().matches(path)) return mr;
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 E get(PathSpec spec) { Optional<E> optionalResource = _mappings.stream() .filter(mappedResource -> mappedResource.getPathSpec().equals(spec)) .map(mappedResource -> mappedResource.getResource()) .findFirst(); if(!optionalResource.isPresent()) return null; return optionalResource.get(); }
public MappedResource<E> getMatch(String path) { if (path.equals("/") && rootResource != null) { return rootResource; } int len = mappings.size(); for (int i = 0; i < len; i++) { MappedResource<E> mr = mappings.get(i); if (mr.getPathSpec().matches(path)) { return mr; } } return defaultResource; }
@Override public <T> T[] toArray(T[] a) { int i = 0; for (PathSpec spec : specs) { a[i++] = (T)spec.getDeclaration(); } return a; }
/** * Comparison is based solely on the pathSpec */ @Override public int compareTo(MappedResource<E> other) { return this.pathSpec.compareTo(other.pathSpec); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((pathSpec == null) ? 0 : pathSpec.hashCode()); return result; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } MappedResource<?> other = (MappedResource<?>)obj; if (pathSpec == null) { if (other.pathSpec != null) { return false; } } else if (!pathSpec.equals(other.pathSpec)) { return false; } return true; }
public MappedResource<E> getMatch(String path) { if (path.equals("/") && rootResource != null) { return rootResource; } int len = mappings.size(); for (int i = 0; i < len; i++) { MappedResource<E> mr = mappings.get(i); if (mr.getPathSpec().matches(path)) { return mr; } } return defaultResource; }