1 package com.sourceforge.jpatterns.patterns.config; 2 3 import com.sourceforge.jpatterns.core.configuration.exceptions.JPConfigException; 4 import com.sourceforge.jpatterns.patterns.IJPattern; 5 6 /** 7 * This interface defines the configuration patterns. It would be used just for the retrieving different not factory specific configuration 8 * information. It would have all the facilities <strong>factory</strong> has - scopes and priorities supports, lots of possible compinations to be 9 * configured - just single name<>value configs, maps with the name of the group and lots of keys<>values etc. 10 * <br/> 11 * todo [zmicer]: please extend the interface with all the possible methods user may need for this. 12 * todo [zmicer]: provide example of the configuration for each method. 13 * <p/> 14 * $Author:: $<br/> 15 * $Rev:: $<br/> 16 * $Date:: $<br/> 17 */ 18 public interface IJPConfig extends IJPattern 19 { 20 /** 21 * Get the value using the key provided. It is the simplest form of this config pattern, still if to remember about the scopes and names - it 22 * provides lots of usefull facilities. 23 * 24 * @param key the key using which we should obtain the value 25 * Can not be null (otherwise <code>IllegalArgumentException</code> would appear). 26 * @param scope the scope to be used 27 * Can not be null (otherwise <code>IllegalArgumentException</code> would appear). 28 * 29 * @return the necessary value to be retrieved. Nul won't be retrieved here as the JPConfigException would be thrown 30 * 31 * @throws JPConfigException would be thrown in the case of smth. wrong with the configuration. Please be noticed it could be 32 * <code>JPConsumerConfigException and JPFrameworkConfigException</code> 33 */ 34 String getValue(final String key, final String scope) throws JPConfigException; 35 }