@siberiaweb/components
Version:
81 lines (64 loc) • 1.84 kB
text/typescript
/**
* Позиция.
*/
export default class Item {
/**
* Идентификатор.
*/
private readonly id: any;
/**
* Текст.
*/
private readonly text: string;
/**
* Группа, которой принадлежит позиция или признак, что позиция играет роль группы.
*/
private readonly group: Item | boolean;
/**
* Получение идентификатора.
*/
public getId(): any {
return this.id;
}
/**
* Получение текста.
*/
public getText(): string {
return this.text;
}
/**
* Получение группы, которой принадлежит позиция.
*/
public getGroup(): Item | null {
return this.group instanceof Item ? this.group : null;
}
/**
* Получение признака, что позиция играет роль группы.
*/
public isGroup(): boolean {
return this.group === true;
}
/**
* Получение признака, что позиция относится к группе.
*/
public isGrouped(): boolean {
return this.group instanceof Item;
}
/**
* Конструктор.
*
* @param id Идентификатор.
* @param text Текст.
* @param group Группа, которой принадлежит позиция или признак, что позиция играет роль группы. Опционально. По
* умолчанию false.
*/
constructor(
id: any,
text: string,
group: Item | boolean = false
) {
this.id = id;
this.text = text;
this.group = group;
}
}