public HystrixDynamicProperty<T> build() { if (properties.size() < 1) throw new IllegalArgumentException(); if (properties.size() == 1) return properties.get(0); List<HystrixDynamicProperty<T>> reversed = new ArrayList<HystrixDynamicProperty<T>>(properties); Collections.reverse(reversed); ChainProperty<T> current = null; for (HystrixDynamicProperty<T> p : reversed) { if (current == null) { current = new ChainProperty<T>(p); } else { current = new ChainProperty<T>(p, current); } } return new ChainHystrixProperty<T>(current); }
@Override public void run() { logger.debug("Property changed: '{} = {}'", getName(), getValue()); checkAndFlip(); } });
public HystrixDynamicProperty<T> build() { if (properties.size() < 1) throw new IllegalArgumentException(); if (properties.size() == 1) return properties.get(0); List<HystrixDynamicProperty<T>> reversed = new ArrayList<HystrixDynamicProperty<T>>(properties); Collections.reverse(reversed); ChainProperty<T> current = null; for (HystrixDynamicProperty<T> p : reversed) { if (current == null) { current = new ChainProperty<T>(p); } else { current = new ChainProperty<T>(p, current); } } return new ChainHystrixProperty<T>(current); }
@Override public void addCallback(Runnable callback) { property.addCallback(callback); }
@Override public T get() { return property.get(); }
@Override public String getName() { return property.getName(); }
public ChainProperty(HystrixDynamicProperty<T> sProperty, ChainProperty<T> next) { super(next); // setup next pointer sProp = sProperty; sProp.addCallback(new Runnable() { @Override public void run() { logger.debug("Property changed: '{} = {}'", getName(), getValue()); checkAndFlip(); } }); checkAndFlip(); }
@Override public void run() { logger.debug("Property changed: '{} = {}'", getName(), getValue()); checkAndFlip(); } });
@Override public String getName() { return property.getName(); }
@Override public void addCallback(Runnable callback) { property.addCallback(callback); }
@Override public T get() { return property.get(); }
public ChainProperty(HystrixDynamicProperty<T> sProperty, ChainProperty<T> next) { super(next); // setup next pointer sProp = sProperty; sProp.addCallback(new Runnable() { @Override public void run() { logger.debug("Property changed: '{} = {}'", getName(), getValue()); checkAndFlip(); } }); checkAndFlip(); }