001/* 002 * Copyright 2010, 2011 Christopher Pheby 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.jadira.bindings.core.loader; 017 018/** 019 * Represents a extension in the bindings configuration file 020 */ 021public class Extension<T> { 022 023 /** 024 * The extension's type 025 */ 026 private Class<T> extensionClass; 027 /** 028 * The implementation of the extension which will be registered 029 */ 030 private Class<? extends T> implementationClass; 031 032 /** 033 * Creates a new instance 034 * @param extensionClass The extensions's class 035 * @param implementationClass The implementation class 036 */ 037 public Extension(Class<T> extensionClass, Class<? extends T> implementationClass) { 038 this.extensionClass = extensionClass; 039 this.implementationClass = implementationClass; 040 } 041 042 /** 043 * @return The extension's class 044 */ 045 public Class<T> getExtensionClass() { 046 return extensionClass; 047 } 048 049 public Class<? extends T> getImplementationClass() { 050 return implementationClass; 051 } 052}