package cz.habarta.typescript.generator.parser;
import cz.habarta.typescript.generator.compiler.EnumMemberModel;
import cz.habarta.typescript.generator.compiler.EnumKind;
import java.util.*;
// T extends String | Number
public class EnumModel<T> extends DeclarationModel {
private final EnumKind<T> kind;
private final List<EnumMemberModel<T>> members;
public EnumModel(Class<?> origin, EnumKind<T> kind, List<EnumMemberModel<T>> members, List<String> comments) {
super (origin, comments);
this.kind = kind;
this.members = members;
}
public EnumKind<T> getKind() {
return kind;
}
public List<EnumMemberModel<T>> getMembers() {
return members;
}
public EnumModel<T> withMembers(List<EnumMemberModel<T>> members) {
return new EnumModel<>(origin, kind, members, comments);
}
@Override
public EnumModel<T> withComments(List<String> comments) {
return new EnumModel<>(origin, kind, members, comments);
}
}