14e11457f34addf5d10fe0c31cefd54c75c37b540sberlin/** 24e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * Copyright (C) 2010 Google Inc. 34e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * 44e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * Licensed under the Apache License, Version 2.0 (the "License"); 54e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * you may not use this file except in compliance with the License. 64e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * You may obtain a copy of the License at 74e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * 84e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * http://www.apache.org/licenses/LICENSE-2.0 94e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * 104e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * Unless required by applicable law or agreed to in writing, software 114e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * distributed under the License is distributed on an "AS IS" BASIS, 124e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * See the License for the specific language governing permissions and 144e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * limitations under the License. 154e11457f34addf5d10fe0c31cefd54c75c37b540sberlin */ 164e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 174e11457f34addf5d10fe0c31cefd54c75c37b540sberlinpackage com.google.inject.servlet; 184e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 194e11457f34addf5d10fe0c31cefd54c75c37b540sberlinimport java.util.Map; 204e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 214e11457f34addf5d10fe0c31cefd54c75c37b540sberlin/** 224e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * Abstract implementation for all servlet module bindings 234e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * 244e11457f34addf5d10fe0c31cefd54c75c37b540sberlin * @author sameb@google.com (Sam Berlin) 254e11457f34addf5d10fe0c31cefd54c75c37b540sberlin */ 264e11457f34addf5d10fe0c31cefd54c75c37b540sberlinclass AbstractServletModuleBinding<T> implements ServletModuleBinding { 274e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 284e11457f34addf5d10fe0c31cefd54c75c37b540sberlin private final Map<String, String> initParams; 294e11457f34addf5d10fe0c31cefd54c75c37b540sberlin private final String pattern; 304e11457f34addf5d10fe0c31cefd54c75c37b540sberlin private final T target; 314e11457f34addf5d10fe0c31cefd54c75c37b540sberlin private final UriPatternMatcher patternMatcher; 324e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 334e11457f34addf5d10fe0c31cefd54c75c37b540sberlin AbstractServletModuleBinding(Map<String, String> initParams, String pattern, T target, 344e11457f34addf5d10fe0c31cefd54c75c37b540sberlin UriPatternMatcher patternMatcher) { 354e11457f34addf5d10fe0c31cefd54c75c37b540sberlin this.initParams = initParams; 364e11457f34addf5d10fe0c31cefd54c75c37b540sberlin this.pattern = pattern; 374e11457f34addf5d10fe0c31cefd54c75c37b540sberlin this.target = target; 384e11457f34addf5d10fe0c31cefd54c75c37b540sberlin this.patternMatcher = patternMatcher; 394e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 404e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 414e11457f34addf5d10fe0c31cefd54c75c37b540sberlin public Map<String, String> getInitParams() { 424e11457f34addf5d10fe0c31cefd54c75c37b540sberlin return initParams; 434e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 444e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 454e11457f34addf5d10fe0c31cefd54c75c37b540sberlin public String getPattern() { 464e11457f34addf5d10fe0c31cefd54c75c37b540sberlin return pattern; 474e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 484e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 494e11457f34addf5d10fe0c31cefd54c75c37b540sberlin protected T getTarget() { 504e11457f34addf5d10fe0c31cefd54c75c37b540sberlin return target; 514e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 524e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 534e11457f34addf5d10fe0c31cefd54c75c37b540sberlin public UriPatternType getUriPatternType() { 544e11457f34addf5d10fe0c31cefd54c75c37b540sberlin return patternMatcher.getPatternType(); 554e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 564e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 574e11457f34addf5d10fe0c31cefd54c75c37b540sberlin public boolean matchesUri(String uri) { 584e11457f34addf5d10fe0c31cefd54c75c37b540sberlin return patternMatcher.matches(uri); 594e11457f34addf5d10fe0c31cefd54c75c37b540sberlin } 604e11457f34addf5d10fe0c31cefd54c75c37b540sberlin 614e11457f34addf5d10fe0c31cefd54c75c37b540sberlin} 62