if (target instanceof EncodedAppenderWriterFactory && target != this) {
return ((EncodedAppenderWriterFactory)target).getWriterForEncoder(encoder, encodingStateRegistry);
} else if (target instanceof EncodedAppenderFactory) {
EncodedAppender encodedAppender=((EncodedAppenderFactory)target).getEncodedAppender();
if (encodedAppender != null) {
return new EncodedAppenderWriter(encodedAppender, encoder, encodingStateRegistry);
}
}
if (target != null) {
if (encoder instanceof StreamingEncoder) {
return new StreamingEncoderWriter(target, (StreamingEncoder)encoder, encodingStateRegistry);