Demo.java

package fr.univtln.bruno.samples.java101.tp3;

import fr.univtln.bruno.samples.java101.tp3.bestpractices.CollectionBestPractices;
import fr.univtln.bruno.samples.java101.tp3.comparable.ComparatorExamples;
import fr.univtln.bruno.samples.java101.tp3.functional.CollectorsExamples;
import fr.univtln.bruno.samples.java101.tp3.functional.StreamBasicsExamples;
import fr.univtln.bruno.samples.java101.tp3.list.ListExamples;
import fr.univtln.bruno.samples.java101.tp3.map.MapExamples;
import fr.univtln.bruno.samples.java101.tp3.queue.QueueExamples;
import fr.univtln.bruno.samples.java101.tp3.set.SetExamples;
import lombok.extern.slf4j.Slf4j;

/**
 * Small demo runner that executes representative examples from TP3 (Collections & Streams).
 *
 * <p>This class logs labeled sections and invokes selected example methods from the
 * subpackages so students can run a compact demonstration of the module.</p>
 */
@Slf4j
public class Demo {
  /**
   * Private constructor to prevent instantiation.
   */
  private Demo() {
  }

  /**
   * Demo runner for TP3 examples (logs output via SLF4J).
   *
   * @param args ignored
   */
  public static void main(String[] args) {
    log.info("==== TP3 Demo (Collections & Streams) ====");

    // Each block invokes a representative subset to keep output readable.
    log.info("-- ListExamples --");
    ListExamples.arrayListExample();
    ListExamples.sortingExample();

    log.info("-- SetExamples --");
    SetExamples.hashSetExample();
    SetExamples.setOperationsExample();

    log.info("-- MapExamples --");
    MapExamples.hashMapExample();
    MapExamples.modernMapMethodsExample();

    log.info("-- QueueExamples --");
    QueueExamples.priorityQueueExample();
    QueueExamples.taskSchedulingExample();

    log.info("-- ComparatorExamples --");
    ComparatorExamples.customComparatorExample();
    ComparatorExamples.comparatorChainingExample();

    log.info("-- StreamBasicsExamples --");
    StreamBasicsExamples.streamCreationExample();
    StreamBasicsExamples.distinctSortedLimitExample();

    log.info("-- StreamCollectorsExamples (CollectorsExamples) --");
    CollectorsExamples.groupingAndCountingExample();
    CollectorsExamples.terminalOperationsExample();

    log.info("-- CollectionBestPractices --");
    CollectionBestPractices.defensiveCopyingExample();
    CollectionBestPractices.commonPitfallsExample();

    log.info("==== End of TP3 demonstration ====");
  }
}