View Javadoc
1   /*
2    *  Copyright 2010, 2011 Christopher Pheby
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package org.jadira.bindings.core.loader;
17  
18  import java.util.ArrayList;
19  import java.util.Collections;
20  import java.util.List;
21  
22  /**
23   * Represents the contents of a bindings.xml configuration file. The
24   * configuration contains providers which represent implementations of a
25   * facility capable of resolving converters at runtime and binding configuration
26   * entries which specifically register converters for a given class
27   */
28  public class BindingConfiguration {
29  
30  	private List<Provider> providers = new ArrayList<Provider>();
31  	
32  	private List<Extension<?>> extensions = new ArrayList<Extension<?>>();
33  
34  	private List<BindingConfigurationEntry> bindingEntries = new ArrayList<BindingConfigurationEntry>();
35  
36  	/**
37  	 * Return the registered providers
38  	 * @return List of {@link Provider}
39  	 */
40  	public List<Provider> getProviders() {
41  		return Collections.unmodifiableList(providers);
42  	}
43  
44  	/**
45  	 * Registers a new provider
46  	 * @param provider The new {@link Provider}
47  	 */
48  	public void addProvider(Provider provider) {
49  		providers.add(provider);
50  	}
51  
52  	/**
53  	 * Return the registered extensions
54  	 * @return List of {@link Extension}
55  	 */
56  	public List<Extension<?>> getExtensions() {
57  		return Collections.unmodifiableList(extensions);
58  	}
59  	
60  	/**
61  	 * Registers a new extension
62  	 * @param extension The new {@link Extension}
63  	 */
64  	public void addExtension(Extension<?> extension) {
65  		extensions.add(extension);
66  	}
67  
68  	/**
69  	 * Return the registered {@link BindingConfigurationEntry} instances
70  	 * @return List of {@link BindingConfigurationEntry}
71  	 */
72  	public List<BindingConfigurationEntry> getBindingEntries() {
73  		return Collections.unmodifiableList(bindingEntries);
74  	}
75  
76  	/**
77  	 * Registers a new binding entry
78  	 * @param bindingEntry The new {@link BindingConfigurationEntry}
79  	 */
80  	public void addBindingEntry(BindingConfigurationEntry bindingEntry) {
81  		bindingEntries.add(bindingEntry);
82  	}
83  }