Class LayoutPreservingProperties
- All Implemented Interfaces:
- Serializable,- Cloneable,- Map<Object,- Object> 
A Properties collection which preserves comments and whitespace present in the input stream from which it was loaded.
The class defers the usual work of the java.util.Properties class to there, but it also keeps track of the contents of the input stream from which it was loaded (if applicable), so that it can write out the properties in as close a form as possible to the input.
If no changes occur to property values, the output should be the same
 as the input, except for the leading date stamp, as normal for a
 properties file. Properties added are appended to the file. Properties
 whose values are changed are changed in place. Properties that are
 removed are excised. If the removeComments flag is set,
 then the comments immediately preceding the property are also removed.
If a second set of properties is loaded into an existing set, the lines of the second set are added to the end. Note however, that if a property already stored is present in a stream subsequently loaded, then that property is removed before the new value is set. For example, consider the file
# the first line alpha=one # the second line beta=two
This file is loaded, and then the following is also loaded into the
 same LayoutPreservingProperties object
# association beta=band # and finally gamma=rays
The resulting collection sequence of logical lines depends on whether
 or not removeComments was set at the time the second stream
 is loaded. If it is set, then the resulting list of lines is
# the first line alpha=one # association beta=band # and finally gamma=rays
If the flag is not set, then the comment "the second line" is retained,
 although the key-value pair beta=two is removed.
- See Also:
- 
Field SummaryFields inherited from class java.util.Propertiesdefaults
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new, empty, Properties collection, with no defaults.LayoutPreservingProperties(Properties defaults) Create a new, empty, Properties collection, with the specified defaults.
- 
Method SummaryModifier and TypeMethodDescriptionvoidclear()clone()booleanReturnstrueif comments are removed along with properties, orfalseotherwise.voidlistLines(PrintStream out) Echo the lines of the properties (including blanks and comments) to the stream.voidload(InputStream inStream) voidSave the properties to a file.setProperty(String key, String value) voidsetRemoveComments(boolean val) Sets the behaviour for comments accompanying properties that are being removed.voidstore(OutputStream out, String header) Methods inherited from class java.util.Propertiescompute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, get, getOrDefault, getProperty, getProperty, hashCode, isEmpty, keys, keySet, list, list, load, loadFromXML, merge, propertyNames, putAll, putIfAbsent, rehash, remove, replace, replace, replaceAll, save, size, store, storeToXML, storeToXML, storeToXML, stringPropertyNames, toString, values
- 
Constructor Details- 
LayoutPreservingPropertiespublic LayoutPreservingProperties()Create a new, empty, Properties collection, with no defaults.
- 
LayoutPreservingPropertiesCreate a new, empty, Properties collection, with the specified defaults.- Parameters:
- defaults- the default property values
 
 
- 
- 
Method Details- 
isRemoveCommentspublic boolean isRemoveComments()Returnstrueif comments are removed along with properties, orfalseotherwise. Iftrue, then when a property is removed, the comment preceding it in the original file is removed also.- Returns:
- trueif leading comments are removed when a property is removed;- falseotherwise
 
- 
setRemoveCommentspublic void setRemoveComments(boolean val) Sets the behaviour for comments accompanying properties that are being removed. Iftrue, then when a property is removed, the comment preceding it in the original file is removed also.- Parameters:
- val-- trueif leading comments are to be removed when a property is removed;- falseotherwise
 
- 
load- Overrides:
- loadin class- Properties
- Throws:
- IOException
 
- 
put- Specified by:
- putin interface- Map<Object,- Object> 
- Overrides:
- putin class- Properties
- Throws:
- NullPointerException
 
- 
setProperty- Overrides:
- setPropertyin class- Properties
- Throws:
- NullPointerException
 
- 
clear
- 
remove
- 
clone- Overrides:
- clonein class- Properties
 
- 
listLinesEcho the lines of the properties (including blanks and comments) to the stream.- Parameters:
- out- the stream to write to
 
- 
saveAsSave the properties to a file.- Parameters:
- dest- the file to write to
- Throws:
- IOException- if save fails
 
- 
store- Overrides:
- storein class- Properties
- Throws:
- IOException
 
 
-