@Service public class PropertyFileHandleImpl extends java.lang.Object implements PropertyFileHandle
Modifier and Type | Class and Description |
---|---|
private static class |
PropertyFileHandleImpl.TypeData |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
defaultInstanceName |
private java.lang.String |
defaultType |
private Hub |
hub |
private java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> |
lastRead |
private java.lang.Object |
lock |
private static int |
MAX_TRIES |
private boolean |
open |
private ClassReflectionHelper |
reflectionHelper |
private static char |
SEPARATOR |
private static java.lang.String |
SET |
private java.lang.String |
specificType |
Constructor and Description |
---|
PropertyFileHandleImpl(java.lang.String specificType,
java.lang.String defaultType,
java.lang.String defaultInstanceName,
Hub hub) |
Modifier and Type | Method and Description |
---|---|
private static void |
addMultiValue(java.util.Map<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> buildMe,
PropertyFileHandleImpl.TypeData key,
java.lang.String param,
java.lang.String value) |
private void |
addValues(WriteableBeanDatabase wbd,
java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans) |
private java.lang.Object |
convertBean(java.lang.String typeName,
java.util.Map<java.lang.String,java.lang.String> rawBean) |
private java.lang.Object |
convertValue(java.lang.String value,
java.lang.Class<?> intoMe) |
void |
dispose()
Will remove any instances added by this handle from
the hub, and make it such that this handle can no longer
be used
|
private static java.lang.String |
emptyNull(java.lang.String input) |
private void |
extractData(java.lang.String keyString,
java.lang.String value,
java.util.Map<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> buildMe) |
private java.lang.reflect.Method |
findMethod(java.lang.Class<?> clazz,
java.util.Set<java.lang.String> possibleSetterNames) |
private java.lang.String |
getDefaultInstance(java.lang.String instanceString) |
java.lang.String |
getDefaultInstanceName()
Gets the default instance name that will be given
to instances whose name cannot otherwise be determined
|
java.lang.String |
getDefaultType()
Returns the default type name if the type cannot
be determined from the key of the property.
|
private java.lang.String |
getDefaultType(java.lang.String typeString) |
private static java.lang.String |
getDefaultType(java.lang.String typeString,
java.lang.String defaultDefault,
java.lang.String defaultValue) |
private static java.util.HashSet<java.lang.String> |
getInstances(java.lang.String typeName,
java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> lastRead) |
private static java.util.Set<java.lang.String> |
getPossibleSetterNames(java.lang.String key) |
java.lang.String |
getSpecificType()
Returns the specific type associated with this handle
|
private static java.util.HashSet<java.lang.String> |
getTypes(java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> lastRead) |
private void |
modifyValues(WriteableBeanDatabase wbd,
java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans) |
void |
readProperties(java.util.Properties properties)
Reads the file associated with this handle and will do the following:
Add any type found not previously added by this handle
Add any instance found not previously added by this handle
Modify any property that has changed value
Remove any instance no longer seen in the file but that had previously been added
In particular this method will NOT remove a type that was previously added but
which has no more instances (other files may be contributing to the same type).
|
private void |
removeInstances(WriteableBeanDatabase wbd,
java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans) |
private static final int MAX_TRIES
private static final char SEPARATOR
private final java.lang.Object lock
private java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> lastRead
private boolean open
private final java.lang.String specificType
private final java.lang.String defaultType
private final java.lang.String defaultInstanceName
private final Hub hub
private final ClassReflectionHelper reflectionHelper
private static java.lang.String SET
PropertyFileHandleImpl(java.lang.String specificType, java.lang.String defaultType, java.lang.String defaultInstanceName, Hub hub)
private static java.lang.String emptyNull(java.lang.String input)
private static java.lang.String getDefaultType(java.lang.String typeString, java.lang.String defaultDefault, java.lang.String defaultValue)
private java.lang.String getDefaultType(java.lang.String typeString)
private java.lang.String getDefaultInstance(java.lang.String instanceString)
private static void addMultiValue(java.util.Map<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> buildMe, PropertyFileHandleImpl.TypeData key, java.lang.String param, java.lang.String value)
private void extractData(java.lang.String keyString, java.lang.String value, java.util.Map<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> buildMe)
private void removeInstances(WriteableBeanDatabase wbd, java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans)
private static java.util.Set<java.lang.String> getPossibleSetterNames(java.lang.String key)
private java.lang.reflect.Method findMethod(java.lang.Class<?> clazz, java.util.Set<java.lang.String> possibleSetterNames)
private java.lang.Object convertValue(java.lang.String value, java.lang.Class<?> intoMe)
private java.lang.Object convertBean(java.lang.String typeName, java.util.Map<java.lang.String,java.lang.String> rawBean)
private void modifyValues(WriteableBeanDatabase wbd, java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans)
private void addValues(WriteableBeanDatabase wbd, java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> allBeans)
public void readProperties(java.util.Properties properties)
PropertyFileHandle
readProperties
in interface PropertyFileHandle
properties
- The properties object to inspect. May not be nullprivate static java.util.HashSet<java.lang.String> getTypes(java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> lastRead)
private static java.util.HashSet<java.lang.String> getInstances(java.lang.String typeName, java.util.HashMap<PropertyFileHandleImpl.TypeData,java.util.Map<java.lang.String,java.lang.String>> lastRead)
public java.lang.String getSpecificType()
PropertyFileHandle
getSpecificType
in interface PropertyFileHandle
public java.lang.String getDefaultType()
PropertyFileHandle
getDefaultType
in interface PropertyFileHandle
public java.lang.String getDefaultInstanceName()
PropertyFileHandle
getDefaultInstanceName
in interface PropertyFileHandle
public void dispose()
PropertyFileHandle
dispose
in interface PropertyFileHandle