79 lines
3.5 KiB
Java
79 lines
3.5 KiB
Java
package com.thoughtworks.xstream.converters.extended;
|
|
|
|
import com.thoughtworks.xstream.converters.MarshallingContext;
|
|
import com.thoughtworks.xstream.converters.UnmarshallingContext;
|
|
import com.thoughtworks.xstream.converters.collections.CollectionConverter;
|
|
import com.thoughtworks.xstream.core.util.HierarchicalStreams;
|
|
import com.thoughtworks.xstream.io.ExtendedHierarchicalStreamWriterHelper;
|
|
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
|
|
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
|
import com.thoughtworks.xstream.mapper.Mapper;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class NamedCollectionConverter extends CollectionConverter {
|
|
static /* synthetic */ Class class$com$thoughtworks$xstream$mapper$Mapper$Null;
|
|
private final String name;
|
|
private final Class type;
|
|
|
|
public NamedCollectionConverter(Mapper mapper, String str, Class cls) {
|
|
this(null, mapper, str, cls);
|
|
}
|
|
|
|
static /* synthetic */ Class class$(String str) {
|
|
try {
|
|
return Class.forName(str);
|
|
} catch (ClassNotFoundException e) {
|
|
throw new NoClassDefFoundError().initCause(e);
|
|
}
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter
|
|
protected Object readBareItem(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext, Object obj) {
|
|
String readClassAttribute = HierarchicalStreams.readClassAttribute(hierarchicalStreamReader, mapper());
|
|
Class realClass = readClassAttribute == null ? this.type : mapper().realClass(readClassAttribute);
|
|
Class cls = class$com$thoughtworks$xstream$mapper$Mapper$Null;
|
|
if (cls == null) {
|
|
cls = class$("com.thoughtworks.xstream.mapper.Mapper$Null");
|
|
class$com$thoughtworks$xstream$mapper$Mapper$Null = cls;
|
|
}
|
|
if (cls.equals(realClass)) {
|
|
return null;
|
|
}
|
|
return unmarshallingContext.convertAnother(obj, realClass);
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter
|
|
protected void writeCompleteItem(Object obj, MarshallingContext marshallingContext, HierarchicalStreamWriter hierarchicalStreamWriter) {
|
|
writeItem(obj, marshallingContext, hierarchicalStreamWriter);
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter
|
|
protected void writeItem(Object obj, MarshallingContext marshallingContext, HierarchicalStreamWriter hierarchicalStreamWriter) {
|
|
Class<?> cls;
|
|
String aliasForSystemAttribute;
|
|
if (obj == null) {
|
|
cls = class$com$thoughtworks$xstream$mapper$Mapper$Null;
|
|
if (cls == null) {
|
|
cls = class$("com.thoughtworks.xstream.mapper.Mapper$Null");
|
|
class$com$thoughtworks$xstream$mapper$Mapper$Null = cls;
|
|
}
|
|
} else {
|
|
cls = obj.getClass();
|
|
}
|
|
ExtendedHierarchicalStreamWriterHelper.startNode(hierarchicalStreamWriter, this.name, cls);
|
|
if (!cls.equals(this.type) && (aliasForSystemAttribute = mapper().aliasForSystemAttribute("class")) != null) {
|
|
hierarchicalStreamWriter.addAttribute(aliasForSystemAttribute, mapper().serializedClass(cls));
|
|
}
|
|
if (obj != null) {
|
|
marshallingContext.convertAnother(obj);
|
|
}
|
|
hierarchicalStreamWriter.endNode();
|
|
}
|
|
|
|
public NamedCollectionConverter(Class cls, Mapper mapper, String str, Class cls2) {
|
|
super(mapper, cls);
|
|
this.name = str;
|
|
this.type = cls2;
|
|
}
|
|
}
|