package com.volmit.iris.util; public class O implements Observable { private T t = null; private KList> observers; @Override public T get() { return t; } @Override public O set(T t) { T x = t; this.t = t; if(observers != null && observers.hasElements()) { observers.forEach((o) -> o.onChanged(x, t)); } return this; } @Override public boolean has() { return t != null; } @Override public O clearObservers() { observers.clear(); return this; } @Override public O observe(Observer t) { if(observers == null) { observers = new KList<>(); } observers.add(t); return this; } }