code: public static <T> T newInstance(final Class<T> interfaz) {
  		String classname = ConfigurationProperties.getFactoryImplementation(interfaz.getName());
  
  		if (classname == null) {
  			// Hmmm - this is bad. For the time being let's dump the parameters.
  			LOG.fatal("No implementing class for " + interfaz.getName());
  			LOG.fatal("There needs to be a parameter defined for " + ConfigurationProperties.FACTORY_PREFIX + interfaz.getName());
  
  			throw new SystemException("No implementing class for " + interfaz.getName() + "; "
  					+ "There needs to be a parameter defined for " + ConfigurationProperties.FACTORY_PREFIX + interfaz.getName());
  		}
  
  		try {
  			Class<T> clas = (Class<T>) Class.forName(classname.trim());
  			return clas.newInstance();
  		} catch (Exception ex) {
  			throw new SystemException("Failed to instantiate object of class " + classname, ex);
  		}
  	}
docs: Given an interface, instantiate a class implementing that interface.
  
  The classname to instantiate is obtained by looking in the runtime {@link Config configuration}, under the
  bordertech.wcomponents.factory.impl.&lt;interface name&gt; key.
  
  @param <T> the interface type.
  @param interfaz the interface to instantiate an implementation for.
  @return an Object which implements the given interface.
  @throws SystemException if no implementing class is registered in the {@link Config configuration}.