projects/wms-framework/src/lib/helpers/StreamsSupport.ts
Text writer with string backend
Properties |
|
Methods |
Private contents |
Default value : new StringBuilder()
|
Public toString |
toString()
|
Converts this writer to a string vcalue
Returns :
string
{string} |
Public Write | ||||||
Write(obj: unknown)
|
||||||
Inherited from
TextWriter
|
||||||
Defined in
TextWriter:131
|
||||||
Writes the value to the internal buffer
Parameters :
Returns :
void
|
Dispose |
Dispose()
|
Inherited from
TextWriter
|
Defined in
TextWriter:110
|
Cleanup
Returns :
void
|
import { IDisposable } from '../baseframework/IDisposable';
import { StringBuilder } from '../baseframework/StringBuilder';
/**
* SmStream class
*
* @export
* @class SmStream
* @implements {IDisposable}
* @wType System.IO.Stream
* @wNetSupport
*/
export class SmStream implements IDisposable {
private length = 0;
/**
* Gets or sets the length of the stream
*
* @type {number}
* @memberof SmStream
*/
public get Length(): number {
return this.length;
}
public set Length(v: number) {
this.length = v;
}
/**
* Closes the current stream
*
* @memberof SmStream
* @wNoMap
*/
public Close(): void {}
/**
* Disposes unmanaged resources
*
* @memberof SmStream
* @wNoMap
*/
public Dispose(): void {}
}
/**
* MemoryStream class
*
* @export
* @class MemoryStream
* @extends {SmStream}
* @wType System.IO.MemoryStream
* @wNetSupport
*/
export class MemoryStream extends SmStream {
private data: Array<number>;
public Position: number = 0;
constructor(data?: Array<number>) {
super();
this.data = data ?? new Array<number>();
}
public ToArray(): Array<number> {
return this.data;
}
}
/**
* Base class for text writers
*
* @export
* @abstract
* @class TextWriter
* @wType System.IO.TextWriter
* @wNetSupport
*/
export abstract class TextWriter implements IDisposable {
/**
* Abstract implementation of the `Write` method
*
* @abstract
* @param {unknown} obj
* @memberof TextWriter
*/
public abstract Write(obj: unknown): void;
/**
* Cleanup
*
* @memberof TextWriter
* @wNoMap
*/
Dispose(): void {}
}
/**
* Text writer with string `backend`
*
* @export
* @class StringWriter
* @extends {TextWriter}
* @wType System.IO.StringWriter
* @wNetSupport
*/
export class StringWriter extends TextWriter {
private contents = new StringBuilder();
/**
* Writes the value to the internal buffer
*
* @param {unknown} obj
* @memberof StringWriter
*/
public Write(obj: unknown): void {
let value = null;
if (obj == null) {
value = '';
} else if (obj['ToString']) {
value = obj['ToString']();
} else {
value = obj.toString();
}
this.contents.append(value);
}
/**
* Converts this writer to a string vcalue
*
* @return {*} {string}
* @memberof StringWriter
* @wMethod ToString
*/
public toString(): string {
return this.contents.toString();
}
}