/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.props;
/**
* Interface for property driven object initialization.
*
* @param <T> type of object to invoke properties on
*
* @author Middleware Services
*/
public interface PropertySource<T>
{
/** Enum to define the domain for properties. */
enum PropertyDomain {
/** ldap property domain. */
LDAP("org.ldaptive."),
/** auth property domain. */
AUTH("org.ldaptive.auth."),
/** pool property domain. */
POOL("org.ldaptive.pool.");
/** properties domain. */
private final String domain;
/**
* Creates a new property domain.
*
* @param s properties domain
*/
PropertyDomain(final String s)
{
domain = s;
}
/**
* Returns the properties domain value.
*
* @return properties domain
*/
public String value()
{
return domain;
}
}
/** Initializes the object for this property source. */
void initialize();
}