@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("(").append(getClass().getSimpleName()); sb.append(", Name: ").append(getName()); sb.append(", Type: ").append(getTypeDetails().getDatatype().getDisplayString()).append(")"); if (!getEventDetails().isSendEvents()) { sb.append(" (No Events)"); } if (getTypeDetails().getDefaultValue() != null) { sb.append(" Default Value: ").append("'").append(getTypeDetails().getDefaultValue()).append("'"); } if (getTypeDetails().getAllowedValues() != null) { sb.append(" Allowed Values: "); for (String s : getTypeDetails().getAllowedValues()) { sb.append(s).append("|"); } } return sb.toString(); } }
public StateVariable(String name, StateVariableTypeDetails type) { this(name, type, new StateVariableEventDetails()); }
String stateVariableName = stateVariableValue.getStateVariable().getName(); if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() == 0 && stateVariable.getEventDetails().getEventMinimumDelta() == 0) { log.finer("Variable is not moderated: " + stateVariable); continue; if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() > 0) { long timestampLastSent = lastSentTimestamp.get(stateVariableName); long timestampNextSend = timestampLastSent + (stateVariable.getEventDetails().getEventMaximumRateMilliseconds()); if (currentTime <= timestampNextSend) { log.finer("Excluding state variable with maximum rate: " + stateVariable); long minDelta = stateVariable.getEventDetails().getEventMinimumDelta();
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
protected Collection<StateVariableValue> getCurrentState(String[] variableNames) throws Exception { lock(); try { Collection<StateVariableValue> values = new ArrayList<>(); for (String variableName : variableNames) { variableName = variableName.trim(); StateVariable stateVariable = getService().getStateVariable(variableName); if (stateVariable == null || !stateVariable.getEventDetails().isSendEvents()) { log.fine("Ignoring unknown or non-evented state variable: " + variableName); continue; } StateVariableAccessor accessor = getService().getAccessor(stateVariable); if (accessor == null) { log.warning("Ignoring evented state variable without accessor: " + variableName); continue; } values.add(accessor.read(stateVariable, getImplementation())); } return values; } finally { unlock(); } }
@Override public void startElement(ELEMENT element, Attributes attributes) throws SAXException { if (element.equals(StateVariableHandler.EL)) { MutableStateVariable stateVariable = new MutableStateVariable(); String sendEventsAttributeValue = attributes.getValue(ATTRIBUTE.sendEvents.toString()); stateVariable.eventDetails = new StateVariableEventDetails( sendEventsAttributeValue != null && sendEventsAttributeValue.toUpperCase(Locale.ROOT).equals("YES") ); getInstance().add(stateVariable); new StateVariableHandler(stateVariable, this); } }
String stateVariableName = stateVariableValue.getStateVariable().getName(); if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() == 0 && stateVariable.getEventDetails().getEventMinimumDelta() == 0) { log.finer("Variable is not moderated: " + stateVariable); continue; if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() > 0) { long timestampLastSent = lastSentTimestamp.get(stateVariableName); long timestampNextSend = timestampLastSent + (stateVariable.getEventDetails().getEventMaximumRateMilliseconds()); if (currentTime <= timestampNextSend) { log.finer("Excluding state variable with maximum rate: " + stateVariable); long minDelta = stateVariable.getEventDetails().getEventMinimumDelta();
public boolean isModeratedNumericType() { return Datatype.Builtin.isNumeric( getTypeDetails().getDatatype().getBuiltin() ) && getEventDetails().getEventMinimumDelta() > 0; }
@Override public Collection<StateVariableValue> getCurrentState() throws Exception { lock(); try { Collection<StateVariableValue> values = readInitialEventedStateVariableValues(); if (values != null) { log.fine("Obtained initial state variable values for event, skipping individual state variable accessors"); return values; } values = new ArrayList<>(); for (StateVariable stateVariable : getService().getStateVariables()) { if (stateVariable.getEventDetails().isSendEvents()) { StateVariableAccessor accessor = getService().getAccessor(stateVariable); if (accessor == null) throw new IllegalStateException("No accessor for evented state variable"); values.add(accessor.read(stateVariable, getImplementation())); } } return values; } finally { unlock(); } }
public void hydrateStateVariable(MutableStateVariable stateVariable, Element stateVariableElement) { stateVariable.eventDetails = new StateVariableEventDetails( stateVariableElement.getAttribute("sendEvents") != null && stateVariableElement.getAttribute(ATTRIBUTE.sendEvents.toString()).toUpperCase(Locale.ROOT).equals("YES")
String stateVariableName = stateVariableValue.getStateVariable().getName(); if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() == 0 && stateVariable.getEventDetails().getEventMinimumDelta() == 0) { log.finer("Variable is not moderated: " + stateVariable); continue; if (stateVariable.getEventDetails().getEventMaximumRateMilliseconds() > 0) { long timestampLastSent = lastSentTimestamp.get(stateVariableName); long timestampNextSend = timestampLastSent + (stateVariable.getEventDetails().getEventMaximumRateMilliseconds()); if (currentTime <= timestampNextSend) { log.finer("Excluding state variable with maximum rate: " + stateVariable); long minDelta = stateVariable.getEventDetails().getEventMinimumDelta();
setText(nodeStateVariable.getName() + (nodeStateVariable.getEventDetails().isSendEvents() ? " (Sends Events)" : ""));
public StateVariable(String name, StateVariableTypeDetails type) { this(name, type, new StateVariableEventDetails()); }
if (stateVariable.getEventDetails().isSendEvents()) { stateVariableElement.setAttribute(ATTRIBUTE.sendEvents.toString(), "yes"); } else {
new StateVariableEventDetails(sendEvents, eventMaximumRateMillis, eventMinimumDelta);
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("(").append(getClass().getSimpleName()); sb.append(", Name: ").append(getName()); sb.append(", Type: ").append(getTypeDetails().getDatatype().getDisplayString()).append(")"); if (!getEventDetails().isSendEvents()) { sb.append(" (No Events)"); } if (getTypeDetails().getDefaultValue() != null) { sb.append(" Default Value: ").append("'").append(getTypeDetails().getDefaultValue()).append("'"); } if (getTypeDetails().getAllowedValues() != null) { sb.append(" Allowed Values: "); for (String s : getTypeDetails().getAllowedValues()) { sb.append(s).append("|"); } } return sb.toString(); } }
@Override public void startElement(ELEMENT element, Attributes attributes) throws SAXException { if (element.equals(StateVariableHandler.EL)) { MutableStateVariable stateVariable = new MutableStateVariable(); String sendEventsAttributeValue = attributes.getValue(ATTRIBUTE.sendEvents.toString()); stateVariable.eventDetails = new StateVariableEventDetails( sendEventsAttributeValue != null && sendEventsAttributeValue.toUpperCase(Locale.ENGLISH).equals("YES") ); getInstance().add(stateVariable); new StateVariableHandler(stateVariable, this); } }
protected Collection<StateVariableValue> getCurrentState(String[] variableNames) throws Exception { lock(); try { Collection<StateVariableValue> values = new ArrayList<StateVariableValue>(); for (String variableName : variableNames) { variableName = variableName.trim(); StateVariable stateVariable = getService().getStateVariable(variableName); if (stateVariable == null || !stateVariable.getEventDetails().isSendEvents()) { log.fine("Ignoring unknown or non-evented state variable: " + variableName); continue; } StateVariableAccessor accessor = getService().getAccessor(stateVariable); if (accessor == null) { log.warning("Ignoring evented state variable without accessor: " + variableName); continue; } values.add(accessor.read(stateVariable, getImplementation())); } return values; } finally { unlock(); } }
public void hydrateStateVariable(MutableStateVariable stateVariable, Element stateVariableElement) { stateVariable.eventDetails = new StateVariableEventDetails( stateVariableElement.getAttribute("sendEvents") != null && stateVariableElement.getAttribute(ATTRIBUTE.sendEvents.toString()).toUpperCase(Locale.ENGLISH).equals("YES")