Package org.teleal.cling.model.meta

Examples of org.teleal.cling.model.meta.StateVariableTypeDetails


        // only process the variables that have changed value
        for(String variable : result.keySet()) {
          ActionArgumentValue newArgument = result.get(variable);

          StateVariable newVariable = new StateVariable(variable,new StateVariableTypeDetails(newArgument.getDatatype()));
          StateVariableValue newValue = new StateVariableValue(newVariable, newArgument.getValue());

          if(isUpdatedValue(variable,newValue)) {
            mapToProcess.put(variable, newValue);
          }
View Full Code Here


        newStringValue = alarmID.getValue() + " - " + loggedStartTime.getValue();
      } else {
        newStringValue = "No running alarm";
      }

      StateVariable newVariable = new StateVariable("RunningAlarmProperties",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));
      StateVariableValue newValue = new StateVariableValue(newVariable, newStringValue);

      processStateVariableValue(newVariable.getName(),newValue);

      return true;
View Full Code Here

        if(currentURI.contains("x-sonosapi-stream")) {
          //TODO: Get partner ID for openhab.org

          String stationID = StringUtils.substringBetween(currentURI, ":s", "?sid");

          StateVariable newVariable = new StateVariable("StationID",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));
          StateVariableValue newValue = new StateVariableValue(newVariable, stationID);

          if(this.isUpdatedValue("StationID", newValue) || lastOPMLQuery ==null || lastOPMLQuery.plusMinutes(1).isBeforeNow()) {

            processStateVariableValue(newVariable.getName(),newValue)

            String url = "http://opml.radiotime.com/Describe.ashx?c=nowplaying&id=" + stationID + "&partnerId=IAeIhU42&serial=" + getMACAddress();

            String response = HttpUtil.executeUrl("GET", url, SO_TIMEOUT);
            //logger.debug("RadioTime Response: {}",response);

            lastOPMLQuery = DateTime.now();

            List<String> fields = null;
            try {
              fields = SonosXMLParser.getRadioTimeFromXML(response);
            } catch (SAXException e) {
              logger.error("Could not parse RadioTime from String {}",response);
            }

            resultString = new String();

            if(fields != null && fields.size()>1) {

              artist = fields.get(0);
              title = fields.get(1);
             
              Iterator<String> listIterator = fields.listIterator();
              while(listIterator.hasNext()){
                String field = listIterator.next();
                resultString = resultString + field;
                if(listIterator.hasNext()) {
                  resultString = resultString + " - ";
                }
              }
            }
          } else {
            resultString = stateMap.get("CurrentURIFormatted").getValue().toString();
            title = stateMap.get("CurrentTitle").getValue().toString();
            artist = stateMap.get("CurrentArtist").getValue().toString();
          }


        } else {
          if(currentTrack != null) {
            if(currentTrack.getResource().contains("x-rincon-stream")) {
              title = currentTrack.getTitle();
              album = " ";
              artist = " ";
              resultString = title;
            } else if(!currentTrack.getResource().contains("x-sonosapi-stream")) {
              if (currentTrack.getAlbumArtist().equals("")) {
                resultString = currentTrack.getCreator() + " - " + currentTrack.getAlbum() + " - " + currentTrack.getTitle();
                artist = currentTrack.getCreator();
              } else {
                resultString = currentTrack.getAlbumArtist() + " - " + currentTrack.getAlbum() + " - " + currentTrack.getTitle();
                artist = currentTrack.getAlbumArtist();
              }

              album = currentTrack.getAlbum();
              title = currentTrack.getTitle();
             
              if(album.equals("")) {
                album= " ";
              }

              if(artist.equals("")) {
                artist= " ";
              }
            }
          } else {
            title=" ";
            album = " ";
            artist = " ";
            resultString = " ";
          }
        }

        StateVariable newVariable = new StateVariable("CurrentURIFormatted",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));
        StateVariableValue newValue = new StateVariableValue(newVariable, resultString);
        processStateVariableValue(newVariable.getName(),newValue);   

        // update individual variables
        newVariable = new StateVariable("CurrentArtist",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));

        if (artist != null) {
          newValue = new StateVariableValue(newVariable, artist);
        } else {
          newValue = new StateVariableValue(newVariable, " ");
        }
        processStateVariableValue(newVariable.getName(), newValue);   

        newVariable = new StateVariable("CurrentTitle",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));
        if (title != null) {
          newValue = new StateVariableValue(newVariable, title);
        } else {
          newValue = new StateVariableValue(newVariable, " ");
        }
        processStateVariableValue(newVariable.getName(), newValue);   

        newVariable = new StateVariable("CurrentAlbum",new StateVariableTypeDetails(Datatype.Builtin.STRING.getDatatype()));
        if (album != null) {
          newValue = new StateVariableValue(newVariable, album);
        } else {
          newValue = new StateVariableValue(newVariable, " ");
        }
View Full Code Here

      /* The events are all of the form <qName val="value"/> so we can get all
       * the info we need from here.
       */
      try {
        if(atts.getValue("val") != null) {
          StateVariable stateVariable = new StateVariable(localName, new StateVariableTypeDetails(new StringDatatype()));
          StateVariableValue stateVariableValue = new StateVariableValue(stateVariable, atts.getValue("val"));
          changes.put(localName, stateVariableValue);
        }
      } catch (IllegalArgumentException e) {
        // this means that localName isn't defined in EventType, which is expected for some elements
View Full Code Here

    private boolean getPresetName=false;
    private String presetName;

    @Override
    public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
      StateVariable stateVariable = new StateVariable(localName, new StateVariableTypeDetails(new StringDatatype()));
      StateVariableValue stateVariableValue = new StateVariableValue(stateVariable, atts.getValue("val"));
     
     
      if ("Volume".equals(qName)) {     
        changes.put(qName+atts.getValue("channel"), stateVariableValue);
View Full Code Here

    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {
      if (getPresetName) {
        getPresetName = false;
        StateVariable stateVariable = new StateVariable(localName, new StateVariableTypeDetails(new StringDatatype()));
        StateVariableValue stateVariableValue = new StateVariableValue(stateVariable, presetName);
        changes.put(qName, stateVariableValue);
      }
    }
View Full Code Here

TOP

Related Classes of org.teleal.cling.model.meta.StateVariableTypeDetails

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.