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
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.thoughtworks.xstream.mapper.Mapperprotected final com.thoughtworks.xstream.converters.reflection.ReflectionProviderprotected com.thoughtworks.xstream.core.util.SerializationMembers -
Constructor Summary
ConstructorsConstructorDescriptionRobustReflectionConverter(com.thoughtworks.xstream.mapper.Mapper mapper, com.thoughtworks.xstream.converters.reflection.ReflectionProvider reflectionProvider) -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddErrorInContext(com.thoughtworks.xstream.converters.UnmarshallingContext context, Throwable e) booleancanConvert(Class type) protected voiddoMarshal(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 ObjectinstantiateNewInstance(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) voidmarshal(Object original, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context) protected voidmarshallField(com.thoughtworks.xstream.converters.MarshallingContext context, Object newObj, Field field) unmarshal(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context) protected ObjectunmarshalField(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:
canConvertin 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:
marshalin 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:
unmarshalin 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)
-