Skip to content

Commit afd2ac9

Browse files
committed
[INTERNAL] AbstractReader: Add getName() function to prepare for better reader tracing
1 parent 2b8a34d commit afd2ac9

8 files changed

+34
-16
lines changed

lib/AbstractReader.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import randomInt from "random-int";
22
import Trace from "./tracing/Trace.js";
33

44
/**
5-
* Abstract resource locator
5+
* Abstract resource locator implementing the general API for <b>reading</b> resources
66
*
77
* @abstract
88
* @public
@@ -14,11 +14,22 @@ class AbstractReader {
1414
* The constructor.
1515
*
1616
* @public
17+
* @param {string} name Name of the reader. Typically used for tracing purposes
1718
*/
18-
constructor() {
19+
constructor(name) {
1920
if (new.target === AbstractReader) {
2021
throw new TypeError("Class 'AbstractReader' is abstract");
2122
}
23+
this._name = name;
24+
}
25+
26+
/*
27+
* Returns the name of the reader instance. This can be used for logging/tracing purposes.
28+
*
29+
* @returns {string} Name of the reader
30+
*/
31+
getName() {
32+
return this._name || `<unnamed ${this.constructor.name} Reader>`;
2233
}
2334

2435
/**

lib/AbstractReaderWriter.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import AbstractReader from "./AbstractReader.js";
22

33
/**
4-
* Abstract resource locator
4+
* Abstract resource locator implementing the general API for <b>reading and writing</b> resources
55
*
66
* @abstract
77
* @public
@@ -14,12 +14,22 @@ class AbstractReaderWriter extends AbstractReader {
1414
* The constructor.
1515
*
1616
* @public
17+
* @param {string} name Name of the reader/writer. Typically used for tracing purposes
1718
*/
18-
constructor() {
19+
constructor(name) {
1920
if (new.target === AbstractReaderWriter) {
2021
throw new TypeError("Class 'AbstractReaderWriter' is abstract");
2122
}
22-
super();
23+
super(name);
24+
}
25+
26+
/*
27+
* Returns the name of the reader/writer instance. This can be used for logging/tracing purposes.
28+
*
29+
* @returns {string} Name of the reader/writer
30+
*/
31+
getName() {
32+
return this._name || `<unnamed ${this.constructor.name} Reader/Writer>`;
2333
}
2434

2535
/**

lib/DuplexCollection.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ class DuplexCollection extends AbstractReaderWriter {
2020
* @param {string} [parameters.name=""] The collection name
2121
*/
2222
constructor({reader, writer, name = ""}) {
23-
super();
23+
super(name);
2424
this._reader = reader;
2525
this._writer = writer;
2626

2727
this._combo = new ReaderCollectionPrioritized({
28-
name: name,
28+
name: `${name} - ReaderCollectionPrioritized`,
2929
readers: [
3030
writer,
3131
reader

lib/ReaderCollection.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ class ReaderCollection extends AbstractReader {
1717
* @param {@ui5/fs/AbstractReader[]} parameters.readers List of resource readers (all tried in parallel)
1818
*/
1919
constructor({name, readers}) {
20-
super();
21-
this._name = name;
20+
super(name);
2221
this._readers = readers;
2322
}
2423

lib/ReaderCollectionPrioritized.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ class ReaderCollectionPrioritized extends AbstractReader {
1818
* (first is tried first)
1919
*/
2020
constructor({readers, name}) {
21-
super();
22-
this._name = name;
21+
super(name);
2322
this._readers = readers;
2423
}
2524

lib/WriterCollection.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ class WriterCollection extends AbstractReaderWriter {
2929
* });
3030
*/
3131
constructor({name, writerMapping}) {
32-
super();
33-
this._name = name;
32+
super(name);
3433

3534
if (!writerMapping) {
3635
throw new Error("Missing parameter 'writerMapping'");

test/lib/DuplexCollection.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ test("DuplexCollection: constructor", (t) => {
1414
t.deepEqual(duplexCollection._reader, {}, "reader assigned");
1515
t.deepEqual(duplexCollection._writer, {}, "writer assigned");
1616
t.true(duplexCollection._combo instanceof ReaderCollectionPrioritized, "prioritized reader collection created");
17-
t.is(duplexCollection._combo._name, "myCollection", "name assigned");
17+
t.is(duplexCollection._combo.getName(), "myCollection - ReaderCollectionPrioritized", "name assigned");
1818
t.deepEqual(duplexCollection._combo._readers, [{}, {}], "reader and writer assigned to readers");
1919
});
2020

@@ -27,7 +27,7 @@ test("DuplexCollection: constructor with setting default name of an empty string
2727
t.deepEqual(duplexCollection._reader, {}, "reader assigned");
2828
t.deepEqual(duplexCollection._writer, {}, "writer assigned");
2929
t.true(duplexCollection._combo instanceof ReaderCollectionPrioritized, "prioritized reader collection created");
30-
t.is(duplexCollection._combo._name, "", "name assigned");
30+
t.is(duplexCollection._combo.getName(), " - ReaderCollectionPrioritized", "name assigned");
3131
t.deepEqual(duplexCollection._combo._readers, [{}, {}], "reader and writer assigned to readers");
3232
});
3333

test/lib/ReaderCollection.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ test("ReaderCollection: constructor", (t) => {
99
readers: [{}, {}, {}]
1010
});
1111

12-
t.is(readerCollection._name, "myReader", "correct name assigned");
12+
t.is(readerCollection.getName(), "myReader", "correct name assigned");
1313
t.deepEqual(readerCollection._readers, [{}, {}, {}], "correct readers assigned");
1414
});
1515

0 commit comments

Comments
 (0)