package cz.habarta.typescript.generator.emitter; import cz.habarta.typescript.generator.compiler.EnumKind; import cz.habarta.typescript.generator.compiler.EnumMemberModel; import cz.habarta.typescript.generator.compiler.Symbol; import cz.habarta.typescript.generator.parser.EnumModel; import java.util.List; // T extends String | Number public class TsEnumModel<T> extends TsDeclarationModel { private final EnumKind<T> kind; private final List<EnumMemberModel<T>> members; public TsEnumModel(Class<?> origin, Symbol name, EnumKind<T> kind, List<EnumMemberModel<T>> members, List<String> comments) { super(origin, null, name, comments); this.kind = kind; this.members = members; } public static <T> TsEnumModel<T> fromEnumModel(Symbol name, EnumModel<T> enumModel) { return new TsEnumModel<>(enumModel.getOrigin(), name, enumModel.getKind(), enumModel.getMembers(), enumModel.getComments()); } public EnumKind<T> getKind() { return kind; } public List<EnumMemberModel<T>> getMembers() { return members; } }