Условная точка останова вызывающей стороной в затмении Java

Я пытаюсь отслеживать изменение значения с помощью точки наблюдения в программе Java в отладчике Eclipse. Иерархия классов довольно сложна, и отслеживаемое мной значение заключено в контейнер, который используется во многих местах.

Чтобы быть более конкретным, есть контейнерSizeRequirement, который имеет свойствоminimum, который я отслеживаю. Этот класс используется многими менеджерами компоновки во многих местах для многих компонентов, чтобы определить требования для компонента.Размеры. Мне нужно поймать точный вызов, где значение изменяется / устанавливается для одного конкретного менеджера макета и одного конкретного компонента в нем. Можно ли отфильтровать точки останова по вызывающему абоненту? Я попытаюсь объяснить проблему, используя некоторый абстрактный код:

class ValueContainer {
  public String value;
}

class A {

  private ValueContainer valueContainer;

  public A () {
    valueContainer = new ValueContainer();
    valueContainer.value = "setByA";
  }

}

class B {

  private ValueContainer valueContainer;

  public B () {
    valueContainer = new ValueContainer();
    valueContainer.value = "setByB";
  }

}

Я установил точку наблюдения наvalue и я хочу, чтобы остановка была приостановлена только тогда, когдаvalue устанавливается классом A и игнорирует вызовы B.

Хуже того, классSizeRequirement является частью библиотеки Swing и глубоко интегрирован в код, поэтому я не могу использовать наследование, чтобы заменить его каким-либо дочерним объектом в каком-то конкретном месте, где я хочу его отслеживать.

РЕДАКТИРОВАТЬ

Так что это то, что я использовал как условное условие точки останова. Верьте или нет, это работает. :)

    StackTraceElement[] arr = Thread.currentThread().getStackTrace();
    boolean contains = false;
    for(StackTraceElement e : arr) {
        if (e.getClassName().contains("A")) {
            contains = true;
            break;
        }
    }

Ответы на вопрос(2)

Ваш ответ на вопрос