-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassData.ts
41 lines (40 loc) · 2.05 KB
/
ClassData.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
import type { Collection } from '@discordjs/collection';
import type { CommonEntityData } from '../common/CommonEntityData';
import type { DeprecationContent } from '../deprecation/DeprecationContent';
import type { ExternalEntityData } from '../external/ExternalEntityData';
import type { FieldData } from '../field/FieldData';
import type { InterfaceData } from '../interface/InterfaceData';
import type { MethodData } from '../method/MethodData';
import type { Modifier } from '../modifier/Modifier';
import type { ObjectTypeParameterData } from '../object/ObjectTypeParameterData';
import type { PackageData } from '../package/PackageData';
import type { EntityTypeEnum } from '../type/EntityType';
/** Data for a Java class. */
export interface ClassData
extends CommonEntityData<typeof EntityTypeEnum.Class> {
/** The fully qualified name of the class (eg. `java.lang.String`). */
qualifiedName: string;
/** The class's Javadocs URL. */
url: string;
/** The package that the class is in. */
package: PackageData;
/** The class' modifiers. */
modifiers: Modifier[];
/** The class' methods, keyed by their {@link MethodData#prototype}. */
methods: Collection<string, MethodData<ClassData | InterfaceData | null>>;
/** The class' fields, keyed by their `{@link FieldData#qualifiedName}`. */
fields: Collection<string, FieldData<ClassData | InterfaceData | null>>;
/** The interfaces that this class implements, keyed by their {@link InterfaceData#qualifiedName} (or {@link ExternalEntityData#qualifiedName}). */
implements: Collection<string, InterfaceData | ExternalEntityData>;
/** The class that this class extends, if any. */
extends: ClassData | ExternalEntityData | null;
/**
* The class' deprecation notice, if any.
*
* This property is always present if the class is deprecated, regardless
* of whether it the notice any description or not.
*/
deprecation: DeprecationContent | null;
/** The class' type parameters, keyed by their {@link ObjectTypeParameterData#name}. */
typeParameters: Collection<string, ObjectTypeParameterData>;
}