• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 12181235589

05 Dec 2024 01:58PM UTC coverage: 66.902% (-0.02%) from 66.917%
12181235589

push

github

web-flow
#508: enabled autocompletion for commandlet options (#833)

2527 of 4130 branches covered (61.19%)

Branch coverage included in aggregate %.

6577 of 9478 relevant lines covered (69.39%)

3.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.96
cli/src/main/java/com/devonfw/tools/ide/log/IdeLoggerImpl.java
1
package com.devonfw.tools.ide.log;
2

3
import java.util.Objects;
4
import java.util.function.Function;
5

6
/**
7
 * Implementation of {@link IdeLogger}.
8
 */
9
public class IdeLoggerImpl implements IdeLogger {
10

11
  private final AbstractIdeSubLogger[] loggers;
12

13
  protected final IdeLogListener listener;
14

15
  /**
16
   * @param minLogLevel the minimum enabled {@link IdeLogLevel}.
17
   * @param factory the factory to create active {@link IdeSubLogger} instances.
18
   */
19
  public IdeLoggerImpl(IdeLogLevel minLogLevel, Function<IdeLogLevel, AbstractIdeSubLogger> factory) {
20

21
    super();
2✔
22
    IdeLogLevel[] levels = IdeLogLevel.values();
2✔
23
    this.loggers = new AbstractIdeSubLogger[levels.length];
5✔
24
    IdeLogListener listener = null;
2✔
25
    for (IdeLogLevel level : levels) {
16✔
26
      this.loggers[level.ordinal()] = factory.apply(level);
9✔
27
      if (listener == null) {
2✔
28
        listener = this.loggers[level.ordinal()].listener;
7✔
29
      }
30
    }
31
    this.listener = listener;
3✔
32
    setLogLevel(minLogLevel);
4✔
33
  }
1✔
34

35
  @Override
36
  public IdeSubLogger level(IdeLogLevel level) {
37

38
    IdeSubLogger logger = this.loggers[level.ordinal()];
6✔
39
    Objects.requireNonNull(logger);
3✔
40
    return logger;
2✔
41
  }
42

43
  /**
44
   * Sets the log level.
45
   *
46
   * @param logLevel {@link IdeLogLevel}
47
   * @return the previous set logLevel {@link IdeLogLevel}
48
   */
49
  public IdeLogLevel setLogLevel(IdeLogLevel logLevel) {
50

51
    IdeLogLevel previousLogLevel = null;
2✔
52
    for (IdeLogLevel level : IdeLogLevel.values()) {
16✔
53
      boolean enabled = level.ordinal() >= logLevel.ordinal();
9✔
54
      if ((previousLogLevel == null) && this.loggers[level.ordinal()].isEnabled()) {
9!
55
        previousLogLevel = level;
2✔
56
      }
57
      setLogLevel(level, enabled);
4✔
58
    }
59
    if ((previousLogLevel == null) || (previousLogLevel.ordinal() > IdeLogLevel.INFO.ordinal())) {
7!
60
      previousLogLevel = IdeLogLevel.INFO;
×
61
    }
62
    return previousLogLevel;
2✔
63
  }
64

65
  /**
66
   * @param logLevel the {@link IdeLogLevel} to modify.
67
   * @param enabled - {@code true} to enable, {@code false} to disable.
68
   */
69
  public void setLogLevel(IdeLogLevel logLevel, boolean enabled) {
70

71
    this.loggers[logLevel.ordinal()].setEnabled(enabled);
7✔
72
  }
1✔
73

74
  /**
75
   * Ensure the logging system is initialized.
76
   */
77
  public void activateLogging() {
78

79
    if (this.listener instanceof IdeLogListenerBuffer buffer) {
6!
80
      // https://github.com/devonfw/IDEasy/issues/754
81
      buffer.flushAndDisable(this);
×
82
    }
83
  }
1✔
84

85
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc