/
SetIterator.ts
91 lines (83 loc) · 1.93 KB
/
SetIterator.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/// <reference path="../../API.ts" />
/// <reference path="ListIterator.ts" />
namespace std.base
{
/**
* Iterator of Set Containers.
*
* @author Jeongho Nam <http://samchon.org>
*/
export class SetIterator<Key, Source extends SetContainer<Key, Source>>
extends ListIterator<Key,
Source,
SetIterator<Key, Source>,
SetReverseIterator<Key, Source>>
{
/**
* @hidden
*/
private source_: _SetElementList<Key, Source>;
/* ---------------------------------------------------------
CONSTRUCTORS
--------------------------------------------------------- */
/**
* @hidden
*/
public constructor(list: _SetElementList<Key, Source>, prev: SetIterator<Key, Source>, next: SetIterator<Key, Source>, key: Key)
{
super(prev, next, key);
this.source_ = list;
}
/**
* @inheritDoc
*/
public reverse(): SetReverseIterator<Key, Source>
{
return new SetReverseIterator(this);
}
/* ---------------------------------------------------------
ACCESSORS
--------------------------------------------------------- */
/**
* @inheritDoc
*/
public source(): Source
{
return this.source_.associative();
}
}
}
namespace std.base
{
/**
* Reverse iterator of Set Containers.
*
* @author Jeongho Nam <http://samchon.org>
*/
export class SetReverseIterator<Key, Source extends SetContainer<Key, Source>>
extends ReverseIterator<Key,
Source,
SetIterator<Key, Source>,
SetReverseIterator<Key, Source>>
{
/* ---------------------------------------------------------
CONSTRUCTORS
--------------------------------------------------------- */
/**
* Initializer Constructor.
*
* @param base The base iterator.
*/
public constructor(base: SetIterator<Key, Source>)
{
super(base);
}
/**
* @hidden
*/
protected _Create_neighbor(base: SetIterator<Key, Source>): SetReverseIterator<Key, Source>
{
return new SetReverseIterator(base);
}
}
}