##// END OF EJS Templates
Added tag v1.3.2 for changeset 32db28d9ca07
Added tag v1.3.2 for changeset 32db28d9ca07

File last commit:

r82:025f02eff3b2 v1.3.0 default
r104:da978c4e697c default
Show More
TextWriterBase.ts
48 lines | 1.3 KiB | video/mp2t | TypeScriptLexer
/ src / main / ts / text / TextWriterBase.ts
import { TextWriter } from "../interfaces";
import { FormatCompiler } from "./FormatCompiler";
import { isString, argumentNotNull } from "../safe";
import { Converter } from "./Converter";
const compiler = new FormatCompiler();
export abstract class TextWriterBase implements TextWriter {
private _converter: Converter;
constructor(converter = Converter.default) {
argumentNotNull(converter, "converter");
this._converter = converter;
}
writeNewLine() {
this.writeValue("\n");
}
write(obj: any): void;
write(format: string, ...args: any[]): void;
write(format: any, ...args: any[]): void {
if (args.length) {
const compiled = compiler.compile(format);
compiled(this, args);
} else {
this.writeValue(format);
}
}
writeLine(obj?: any): void;
writeLine(format: string, ...args: any[]): void;
writeLine(): void {
if (arguments.length)
this.write.apply(this, arguments);
this.writeNewLine();
}
writeValue(value: any, spec?: string): void {
this.writeText(
isString(value) ?
value :
this._converter.convert(value, spec)
);
}
abstract writeText(text: string);
}