jimu-decompiled/sources/com/thoughtworks/xstream/converters/collections/ArrayConverter.java
2025-05-13 19:24:51 +02:00

47 lines
2.1 KiB
Java

package com.thoughtworks.xstream.converters.collections;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.mapper.Mapper;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Iterator;
/* loaded from: classes.dex */
public class ArrayConverter extends AbstractCollectionConverter {
public ArrayConverter(Mapper mapper) {
super(mapper);
}
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter, com.thoughtworks.xstream.converters.ConverterMatcher
public boolean canConvert(Class cls) {
return cls != null && cls.isArray();
}
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter, com.thoughtworks.xstream.converters.Converter
public void marshal(Object obj, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) {
int length = Array.getLength(obj);
for (int i = 0; i < length; i++) {
writeCompleteItem(Array.get(obj, i), marshallingContext, hierarchicalStreamWriter);
}
}
@Override // com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter, com.thoughtworks.xstream.converters.Converter
public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) {
ArrayList arrayList = new ArrayList();
while (hierarchicalStreamReader.hasMoreChildren()) {
arrayList.add(readCompleteItem(hierarchicalStreamReader, unmarshallingContext, null));
}
Object newInstance = Array.newInstance(unmarshallingContext.getRequiredType().getComponentType(), arrayList.size());
int i = 0;
Iterator it = arrayList.iterator();
while (it.hasNext()) {
Array.set(newInstance, i, it.next());
i++;
}
return newInstance;
}
}