default-listable.ts 1003 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { IListable } from '../interfaces/listable-interface';
  2. export abstract class DefaultListable<T> implements IListable<T> {
  3. private isSearch: boolean;
  4. private elements: Array<T>;
  5. constructor(
  6. ) {
  7. this.isSearch = false;
  8. this.elements = [];
  9. }
  10. /**
  11. *
  12. */
  13. add(T: any): void {
  14. this.elements.push(T);
  15. }
  16. /**
  17. *
  18. */
  19. remove(T: any): void {
  20. let index = this.elements.indexOf(T);
  21. this.elements.slice(index, 1);
  22. }
  23. /**
  24. *
  25. */
  26. get(T: any): T {
  27. let index = this.elements.indexOf(T);
  28. return this.elements[index];
  29. }
  30. /**
  31. *
  32. */
  33. list(): Array<T> {
  34. return this.elements;
  35. }
  36. /**
  37. *
  38. */
  39. search(by: string): Array<T> {
  40. return null;
  41. }
  42. /**
  43. *
  44. */
  45. toggleSearch(): void {
  46. this.isSearch = !this.isSearch;
  47. }
  48. /**
  49. *
  50. */
  51. isSearching(): boolean {
  52. return this.isSearch;
  53. }
  54. }