@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); // Check that sourceSensor has been set (rather than triggerSensors) getRequiredConfig(SOURCE_SENSOR); }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); // Check that sourceSensor has been set (rather than triggerSensors) getRequiredConfig(SOURCE_SENSOR); }
public B valueToReportIfNoSensors(Object val) { this.valueToReportIfNoSensors = val; return self(); } public B entityFilter(Predicate<? super Entity> val) {
@SuppressWarnings({ "unchecked", "rawtypes", "unused" }) private B computingSumLegacy() { // since 0.7.0, kept in case we need to rebind to this Function<Collection<S>, Number> function = new Function<Collection<S>, Number>() { @Override public Number apply(Collection<S> input) { return sum((Collection)input, (Number)defaultValueForUnreportedSensors, (Number)valueToReportIfNoSensors, (TypeToken) publishing.getTypeToken()); }}; this.computing((Function)function); return self(); } @SuppressWarnings({ "unchecked", "rawtypes", "unused" })
@Override protected void setEntityLoadingConfig() { super.setEntityLoadingConfig(); Preconditions.checkNotNull(getSourceSensors(), "sourceSensors must be set"); }
@Override public Entity call() { return propagator.getConfig(Propagator.PRODUCER); }}).get(); Assert.assertEquals(producer, childEntity);
/** as {@link #combining(Collection)} but the collection of values comes from the given sensor on multiple entities */ public <S> AggregatorBuilder<S, Object> aggregating(AttributeSensor<S> keySensor, AttributeSensor<S> valueSensor) { return new AggregatorBuilder<S, Object>(keySensor, valueSensor); } /** creates an {@link UpdatingMap} enricher:
public B valueToReportIfNoSensors(Object val) { this.valueToReportIfNoSensors = val; return self(); } public B excludingBlank() {
/** sets an explicit key to use; defaults to using the name of the source sensor specified in {@link #from(AttributeSensor)} */ public B key(TKey key) { this.key = key; return self(); } /** sets explicit behaviour for treating <code>null</code> return values;
public B quote(Boolean quote) { this.quote = quote; return self(); } public B minimum(Integer minimum) {
public B computing(String functionName, Map<String, Object> parameters) { this.functionName = functionName; this.parameters = parameters; return self(); }
@SuppressWarnings({ "unchecked" }) protected void setEntityLoadingTargetConfig() { this.targetSensor = (Sensor<U>) getRequiredConfig(TARGET_SENSOR); }
@SuppressWarnings({ "unchecked", "rawtypes", "unused" }) private B computingAverageLegacy() { // since 0.7.0, kept in case we need to rebind to this Function<Collection<S>, Number> function = new Function<Collection<S>, Number>() { @Override public Number apply(Collection<S> input) { return average((Collection)input, (Number)defaultValueForUnreportedSensors, (Number)valueToReportIfNoSensors, (TypeToken) publishing.getTypeToken()); }}; this.computing((Function)function); return self(); } public B computingSum() {
public B entityFilter(Predicate<? super Entity> val) { this.entityFilter = val; return self(); } public B valueFilter(Predicate<Object> val) {
/** as {@link #combining(Collection)} but the collection of values comes from the given sensor on multiple entities */ public <S> AggregatorBuilder<S, Object> aggregating(AttributeSensor<S> val) { return new AggregatorBuilder<S, Object>(val); } /** as {@link #combining(Collection)} but the collection of values comes from the given sensor on multiple entities */
public B defaultValueForUnreportedSensors(Object val) { this.defaultValueForUnreportedSensors = val; return self(); } public B valueToReportIfNoSensors(Object val) {
/** sets explicit behaviour for treating <code>null</code> return values; * default is to remove */ public B removingIfResultIsNull(boolean val) { this.removingIfResultIsNull = val; return self(); } @Override
public B minimum(Integer minimum) { this.minimum = minimum; return self(); } public B maximum(Integer maximum) {
public B computingSum() { this.computingSupplier = new Supplier<Function<? super Collection<S>, ? extends T>>() { @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Function<? super Collection<S>, ? extends T> get() { // relies on TypeCoercion of result from Number to T, and type erasure for us to get away with it! return new ComputingSum((Number)defaultValueForUnreportedSensors, (Number)valueToReportIfNoSensors, publishing.getTypeToken()); } }; return self(); } public B computingAverage() {