2019-04-16 08:30:31 +02:00
|
|
|
|
2018-09-22 12:34:26 +02:00
|
|
|
import { SymbolMetadata } from "./SymbolMetadata"
|
|
|
|
|
|
|
|
export class ClassMetadata {
|
|
|
|
constructor(
|
|
|
|
public members: Map<string, SymbolMetadata> = new Map<
|
|
|
|
string,
|
|
|
|
SymbolMetadata
|
|
|
|
>(),
|
|
|
|
) {}
|
|
|
|
|
2019-03-26 06:34:40 +01:00
|
|
|
public setMember(name: string, s: SymbolMetadata) {
|
2018-09-22 12:34:26 +02:00
|
|
|
this.members.set(name, s)
|
|
|
|
}
|
|
|
|
|
2019-03-26 06:34:40 +01:00
|
|
|
public getMember(name: string) {
|
2018-09-22 12:34:26 +02:00
|
|
|
return this.members.get(name)
|
|
|
|
}
|
|
|
|
|
2019-03-26 06:34:40 +01:00
|
|
|
public getMembers() {
|
2018-09-22 12:34:26 +02:00
|
|
|
return this.members.keys()
|
|
|
|
}
|
|
|
|
|
2019-03-26 06:34:40 +01:00
|
|
|
public toConstructor() {
|
2018-09-22 12:34:26 +02:00
|
|
|
return (
|
|
|
|
`new ClassMetadata(new Map<string, SymbolMetadata>([` +
|
|
|
|
Array.from(this.members.entries())
|
|
|
|
.map(([n, m]) => `[${JSON.stringify(n)}, ${m.toConstructor()}]`)
|
|
|
|
.join(",\n") +
|
|
|
|
`]))`
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|