public void write()

in plugin-unstructured-storage-util/src/main/java/com/alibaba/datax/plugin/unstructuredstorage/writer/DataXCsvWriter.java [98:164]


    public void write(String var1, boolean var2) throws IOException {
        this.checkClosed();
        if(var1 == null) {
            var1 = "";
        }

        if(!this.firstColumn) {
            this.writer.write(this.userSettings.Delimiter);
        }

        boolean var3 = this.userSettings.ForceQualifier;
        if(!var2 && var1.length() > 0) {
            var1 = var1.trim();
        }

        if(!var3 && this.userSettings.UseTextQualifier && (var1.indexOf(this.userSettings.TextQualifier) > -1 || var1.indexOf(this.userSettings.Delimiter) > -1 || !this.useCustomRecordDelimiter && (var1.indexOf(10) > -1 || var1.indexOf(13) > -1) || this.useCustomRecordDelimiter && var1.indexOf(this.userSettings.RecordDelimiter) > -1 || this.firstColumn && var1.length() > 0 && var1.charAt(0) == this.userSettings.Comment || this.firstColumn && var1.length() == 0)) {
            var3 = true;
        }

        if(this.userSettings.UseTextQualifier && !var3 && var1.length() > 0 && var2) {
            char var4 = var1.charAt(0);
            if(var4 == 32 || var4 == 9) {
                var3 = true;
            }

            if(!var3 && var1.length() > 1) {
                char var5 = var1.charAt(var1.length() - 1);
                if(var5 == 32 || var5 == 9) {
                    var3 = true;
                }
            }
        }

        if(var3) {
            this.writer.write(this.userSettings.TextQualifier);
            if(this.userSettings.EscapeMode == 2) {
                var1 = replace(var1, "\\", "\\\\");
                var1 = replace(var1, "" + this.userSettings.TextQualifier, "\\" + this.userSettings.TextQualifier);
            } else {
                var1 = replace(var1, "" + this.userSettings.TextQualifier, "" + this.userSettings.TextQualifier + this.userSettings.TextQualifier);
            }
        } else if(this.userSettings.EscapeMode == 2) {
            var1 = replace(var1, "\\", "\\\\");
            var1 = replace(var1, "" + this.userSettings.Delimiter, "\\" + this.userSettings.Delimiter);
            if(this.useCustomRecordDelimiter) {
                var1 = replace(var1, "" + this.userSettings.RecordDelimiter, "\\" + this.userSettings.RecordDelimiter);
            } else {
                var1 = replace(var1, "\r", "\\\r");
                var1 = replace(var1, "\n", "\\\n");
            }

            if(this.firstColumn && var1.length() > 0 && var1.charAt(0) == this.userSettings.Comment) {
                if(var1.length() > 1) {
                    var1 = "\\" + this.userSettings.Comment + var1.substring(1);
                } else {
                    var1 = "\\" + this.userSettings.Comment;
                }
            }
        }

        this.writer.write(var1);
        if(var3) {
            this.writer.write(this.userSettings.TextQualifier);
        }

        this.firstColumn = false;
    }