if (stateVariable.getTypeDetails().getDatatype() instanceof CustomDatatype) { appendNewElementIfNotNull(descriptor, stateVariableElement, ELEMENT.dataType, ((CustomDatatype)stateVariable.getTypeDetails().getDatatype()).getName()); } else { appendNewElementIfNotNull(descriptor, stateVariableElement, ELEMENT.dataType, stateVariable.getTypeDetails().getDatatype().getBuiltin().getDescriptorName()); stateVariable.getTypeDetails().getDefaultValue()); if (stateVariable.getTypeDetails().getAllowedValues() != null) { Element allowedValueListElement = appendNewElement(descriptor, stateVariableElement, ELEMENT.allowedValueList); for (String allowedValue : stateVariable.getTypeDetails().getAllowedValues()) { appendNewElementIfNotNull(descriptor, allowedValueListElement, ELEMENT.allowedValue, allowedValue); if (stateVariable.getTypeDetails().getAllowedValueRange() != null) { Element allowedValueRangeElement = appendNewElement(descriptor, stateVariableElement, ELEMENT.allowedValueRange); appendNewElementIfNotNull( descriptor, allowedValueRangeElement, ELEMENT.minimum, stateVariable.getTypeDetails().getAllowedValueRange().getMinimum() ); appendNewElementIfNotNull( descriptor, allowedValueRangeElement, ELEMENT.maximum, stateVariable.getTypeDetails().getAllowedValueRange().getMaximum() ); if (stateVariable.getTypeDetails().getAllowedValueRange().getStep() >= 1l) { appendNewElementIfNotNull( descriptor, allowedValueRangeElement, ELEMENT.step, stateVariable.getTypeDetails().getAllowedValueRange().getStep() );
public StateVariable<S> getStateVariable(String name) { // Some magic necessary for the deprecated 'query state variable' action stuff if (QueryStateVariableAction.VIRTUAL_STATEVARIABLE_INPUT.equals(name)) { return new StateVariable( QueryStateVariableAction.VIRTUAL_STATEVARIABLE_INPUT, new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()) ); } if (QueryStateVariableAction.VIRTUAL_STATEVARIABLE_OUTPUT.equals(name)) { return new StateVariable( QueryStateVariableAction.VIRTUAL_STATEVARIABLE_OUTPUT, new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()) ); } return stateVariables == null ? null : stateVariables.get(name); }
if (getDatatype() == null) { errors.add(new ValidationError( getClass(), if (getAllowedValues() != null) { if (getAllowedValueRange() != null) { errors.add(new ValidationError( getClass(), if (!Datatype.Builtin.STRING.equals(getDatatype().getBuiltin())) { errors.add(new ValidationError( getClass(), "allowedValues", "Allowed value list of state variable only available for string datatype, not: " + getDatatype() )); for (String s : getAllowedValues()) { if (s.length() > 31) { log.warning("UPnP specification violation, allowed value string must be less than 32 chars: " + s); if(!foundDefaultInAllowedValues(defaultValue, allowedValues)) { log.warning("UPnP specification violation, allowed string values " + "don't contain default value: " + defaultValue if (getAllowedValueRange() != null) { errors.addAll(getAllowedValueRange().validate());
public String[] getAllowedValues() { // TODO: UPNP VIOLATION: DirecTV HR23/700 High Definition DVR Receiver has invalid default value if (!foundDefaultInAllowedValues(defaultValue, allowedValues)) { List<String> list = new ArrayList<>(Arrays.asList(allowedValues)); list.add(getDefaultValue()); return list.toArray(new String[list.size()]); } return allowedValues; }
@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 StateVariableValue(StateVariable<S> stateVariable, Object value) throws InvalidValueException { super(stateVariable.getTypeDetails().getDatatype(), value); this.stateVariable = stateVariable; }
volumeRange = service.getStateVariable("Volume").getTypeDetails().getAllowedValueRange();
if (argument.getAction().getService().getStateVariable( argument.getRelatedStateVariableName() ).getTypeDetails().getAllowedValues() != null) {
public List<ValidationError> validate() { List<ValidationError> errors = new ArrayList<>(); if (getName() == null || getName().length() == 0) { errors.add(new ValidationError( getClass(), "name", "StateVariable without name of: " + getService() )); } else if (!ModelUtil.isValidUDAName(getName())) { log.warning("UPnP specification violation of: " + getService().getDevice()); log.warning("Invalid state variable name: " + this); } errors.addAll(getTypeDetails().validate()); return errors; }
@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 Datatype<S> getDatatype(ActionArgument argument) { return getRelatedStateVariable(argument).getTypeDetails().getDatatype(); }
public String[] getAllowedValues() { // TODO: UPNP VIOLATION: DirecTV HR23/700 High Definition DVR Receiver has invalid default value if (!foundDefaultInAllowedValues(defaultValue, allowedValues)) { List<String> list = new ArrayList<String>(Arrays.asList(allowedValues)); list.add(getDefaultValue()); return list.toArray(new String[list.size()]); } return allowedValues; }
public List<ValidationError> validate() { List<ValidationError> errors = new ArrayList(); if (getName() == null || getName().length() == 0) { errors.add(new ValidationError( getClass(), "name", "StateVariable without name of: " + getService() )); } else if (!ModelUtil.isValidUDAName(getName())) { log.warning("UPnP specification violation of: " + getService().getDevice()); log.warning("Invalid state variable name: " + this); } errors.addAll(getTypeDetails().validate()); return errors; }
serviceNode.add(stateVariableNode); addIfNotNull(stateVariableNode, "Datatype: ", stateVariable.getTypeDetails().getDatatype().getDisplayString()); addIfNotNull(stateVariableNode, "Default Value: ", stateVariable.getTypeDetails().getDefaultValue()); if (stateVariable.getTypeDetails().getAllowedValues() != null) { for (String allowedValue : stateVariable.getTypeDetails().getAllowedValues()) { addIfNotNull(stateVariableNode, "Allowed Value: ", allowedValue); if (stateVariable.getTypeDetails().getAllowedValueRange() != null) { StateVariableAllowedValueRange range = stateVariable.getTypeDetails().getAllowedValueRange(); addIfNotNull(stateVariableNode, "Allowed Value Range Minimum: ", range.getMinimum()); addIfNotNull(stateVariableNode, "Allowed Value Range Maximum: ", range.getMaximum());
if (getDatatype() == null) { errors.add(new ValidationError( getClass(), if (getAllowedValues() != null) { if (getAllowedValueRange() != null) { errors.add(new ValidationError( getClass(), if (!Datatype.Builtin.STRING.equals(getDatatype().getBuiltin())) { errors.add(new ValidationError( getClass(), "allowedValues", "Allowed value list of state variable only available for string datatype, not: " + getDatatype() )); for (String s : getAllowedValues()) { if (s.length() > 31) { log.warning("UPnP specification violation, allowed value string must be less than 32 chars: " + s); if(!foundDefaultInAllowedValues(defaultValue, allowedValues)) { log.warning("UPnP specification violation, allowed string values " + "don't contain default value: " + defaultValue if (getAllowedValueRange() != null) { errors.addAll(getAllowedValueRange().validate());
@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 Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int columns) { StateVariableValuesTableModel model = (StateVariableValuesTableModel)table.getModel(); StateVariableValue stateVariableValue = model.getValueAt(row); StateVariable stateVariable = stateVariableValue.getStateVariable(); switch (stateVariable.getTypeDetails().getDatatype().getBuiltin()) { case BOOLEAN: return new BooleanArgumentValueCellComponent(stateVariableValue); default: String stringValue; if (stateVariableValue != null && stateVariableValue.toString().length() > 0) { stringValue = stateVariableValue.toString(); } else { stringValue = "<<NULL>>"; } return super.getTableCellRendererComponent( table, stringValue, isSelected, hasFocus, row, columns ); } }
public String[] getAllowedValues() { // TODO: UPNP VIOLATION: DirecTV HR23/700 High Definition DVR Receiver has invalid default value if (!foundDefaultInAllowedValues(defaultValue, allowedValues)) { List<String> list = new ArrayList<>(Arrays.asList(allowedValues)); list.add(getDefaultValue()); return list.toArray(new String[list.size()]); } return allowedValues; }
public StateVariable build() { return new StateVariable( name, new StateVariableTypeDetails( dataType, defaultValue, allowedValues == null || allowedValues.size() == 0 ? null : allowedValues.toArray(new String[allowedValues.size()]), allowedValueRange == null ? null : new StateVariableAllowedValueRange( allowedValueRange.minimum, allowedValueRange.maximum, allowedValueRange.step ) ), eventDetails ); } }
public List<ValidationError> validate() { List<ValidationError> errors = new ArrayList<>(); if (getName() == null || getName().length() == 0) { errors.add(new ValidationError( getClass(), "name", "StateVariable without name of: " + getService() )); } else if (!ModelUtil.isValidUDAName(getName())) { log.warning("UPnP specification violation of: " + getService().getDevice()); log.warning("Invalid state variable name: " + this); } errors.addAll(getTypeDetails().validate()); return errors; }