Package hudson.util
Class RobustReflectionConverter
java.lang.Object
hudson.util.RobustReflectionConverter
- All Implemented Interfaces:
com.thoughtworks.xstream.converters.Converter
,com.thoughtworks.xstream.converters.ConverterMatcher
public class RobustReflectionConverter
extends Object
implements com.thoughtworks.xstream.converters.Converter
Custom
ReflectionConverter
that handle errors more gracefully.
- If the field is missing, the value is ignored instead of causing an error. This makes evolution easy.
- If the type found in XML is no longer available, the element is skipped instead of causing an error.
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected final com.thoughtworks.xstream.mapper.Mapper
protected final com.thoughtworks.xstream.converters.reflection.ReflectionProvider
protected com.thoughtworks.xstream.core.util.SerializationMembers
-
Constructor Summary
ConstructorDescriptionRobustReflectionConverter
(com.thoughtworks.xstream.mapper.Mapper mapper, com.thoughtworks.xstream.converters.reflection.ReflectionProvider reflectionProvider) -
Method Summary
Modifier and TypeMethodDescriptionstatic void
addErrorInContext
(com.thoughtworks.xstream.converters.UnmarshallingContext context, Throwable e) boolean
canConvert
(Class type) protected void
doMarshal
(Object source, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context) doUnmarshal
(Object result, com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) protected Object
instantiateNewInstance
(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) void
marshal
(Object original, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context) protected void
marshallField
(com.thoughtworks.xstream.converters.MarshallingContext context, Object newObj, Field field) unmarshal
(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) protected Object
unmarshalField
(com.thoughtworks.xstream.converters.UnmarshallingContext context, Object result, Class type, Field field)
-
Field Details
-
reflectionProvider
protected final com.thoughtworks.xstream.converters.reflection.ReflectionProvider reflectionProvider -
mapper
protected final com.thoughtworks.xstream.mapper.Mapper mapper -
serializationMethodInvoker
protected transient com.thoughtworks.xstream.core.util.SerializationMembers serializationMethodInvoker
-
-
Constructor Details
-
RobustReflectionConverter
public RobustReflectionConverter(com.thoughtworks.xstream.mapper.Mapper mapper, com.thoughtworks.xstream.converters.reflection.ReflectionProvider reflectionProvider)
-
-
Method Details
-
canConvert
- Specified by:
canConvert
in interfacecom.thoughtworks.xstream.converters.ConverterMatcher
-
marshal
public void marshal(Object original, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context) - Specified by:
marshal
in interfacecom.thoughtworks.xstream.converters.Converter
-
doMarshal
protected void doMarshal(Object source, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context) -
marshallField
-
unmarshal
public Object unmarshal(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) - Specified by:
unmarshal
in interfacecom.thoughtworks.xstream.converters.Converter
-
doUnmarshal
-
addErrorInContext
public static void addErrorInContext(com.thoughtworks.xstream.converters.UnmarshallingContext context, Throwable e) -
unmarshalField
-
instantiateNewInstance
protected Object instantiateNewInstance(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context)
-