Package com.cedarsoftware.io.writers
Class ReentrantLockWriter
java.lang.Object
com.cedarsoftware.io.writers.ReentrantLockWriter
- All Implemented Interfaces:
JsonClassWriter
Custom writer for ReentrantLock that outputs the fairness setting
instead of the internal sync field (which cannot be deserialized).
Output format: {"@type":"java.util.concurrent.locks.ReentrantLock","fair":true/false}
Note: Lock state (held count, owner thread) is NOT preserved - only the fairness policy is serialized.
- Author:
- John DeRegnaucourt (jdereg@gmail.com)
Copyright (c) Cedar Software LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
License
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanhasPrimitiveForm(WriterContext context) Indicates whether this class has a primitive (non-object) JSON form.voidwrite(Object obj, boolean showType, Writer output, WriterContext context) Write the object in JSON format to the output Writer.voidwritePrimitiveForm(Object o, Writer output, WriterContext context) Write the object in its primitive JSON form (without surrounding braces).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.cedarsoftware.io.JsonClassWriter
getTypeName
-
Constructor Details
-
ReentrantLockWriter
public ReentrantLockWriter()
-
-
Method Details
-
write
public void write(Object obj, boolean showType, Writer output, WriterContext context) throws IOException Description copied from interface:JsonClassWriterWrite the object in JSON format to the output Writer.- Specified by:
writein interfaceJsonClassWriter- Parameters:
obj- Object to be written in JSON formatshowType- boolean indicating whether to include @type in the outputoutput- Writer destination where the JSON is writtencontext- WriterContext providing access to WriteOptions and other write utilities- Throws:
IOException- if an I/O error occurs during writing
-
hasPrimitiveForm
Description copied from interface:JsonClassWriterIndicates whether this class has a primitive (non-object) JSON form. Most custom writers will not have a primitive form, so the default is false.- Specified by:
hasPrimitiveFormin interfaceJsonClassWriter- Parameters:
context- WriterContext providing access to WriteOptions- Returns:
- true if this class can be written as a JSON primitive value
-
writePrimitiveForm
Description copied from interface:JsonClassWriterWrite the object in its primitive JSON form (without surrounding braces). Only called ifJsonClassWriter.hasPrimitiveForm(WriterContext)returns true.- Specified by:
writePrimitiveFormin interfaceJsonClassWriter- Parameters:
o- Object to be writtenoutput- Writer destination where the JSON is writtencontext- WriterContext providing access to WriteOptions and writing tools- Throws:
IOException- if an I/O error occurs during writing
-