File

projects/wms-framework/src/lib/helpers/StreamsSupport.ts

Description

Text writer with string backend

Extends

TextWriter

Index

Properties
Methods

Properties

Private contents
Default value : new StringBuilder()

Methods

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 :
Name Type Optional
obj unknown No
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();
  }
}

result-matching ""

    No results matching ""