36 lines
1.5 KiB
Java
36 lines
1.5 KiB
Java
package com.thoughtworks.xstream.io.path;
|
|
|
|
import com.thoughtworks.xstream.io.AbstractWriter;
|
|
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
|
|
import com.thoughtworks.xstream.io.WriterWrapper;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class PathTrackingWriter extends WriterWrapper {
|
|
private final boolean isNameEncoding;
|
|
private final PathTracker pathTracker;
|
|
|
|
public PathTrackingWriter(HierarchicalStreamWriter hierarchicalStreamWriter, PathTracker pathTracker) {
|
|
super(hierarchicalStreamWriter);
|
|
this.isNameEncoding = hierarchicalStreamWriter.underlyingWriter() instanceof AbstractWriter;
|
|
this.pathTracker = pathTracker;
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.io.WriterWrapper, com.thoughtworks.xstream.io.HierarchicalStreamWriter
|
|
public void endNode() {
|
|
super.endNode();
|
|
this.pathTracker.popElement();
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.io.WriterWrapper, com.thoughtworks.xstream.io.HierarchicalStreamWriter
|
|
public void startNode(String str) {
|
|
this.pathTracker.pushElement(this.isNameEncoding ? ((AbstractWriter) this.wrapped.underlyingWriter()).encodeNode(str) : str);
|
|
super.startNode(str);
|
|
}
|
|
|
|
@Override // com.thoughtworks.xstream.io.WriterWrapper, com.thoughtworks.xstream.io.ExtendedHierarchicalStreamWriter
|
|
public void startNode(String str, Class cls) {
|
|
this.pathTracker.pushElement(this.isNameEncoding ? ((AbstractWriter) this.wrapped.underlyingWriter()).encodeNode(str) : str);
|
|
super.startNode(str, cls);
|
|
}
|
|
}
|