Package org.apache.felix.upnp.basedriver.importer.core.upnp

Source Code of org.apache.felix.upnp.basedriver.importer.core.upnp.UPnPServiceImpl

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.felix.upnp.basedriver.importer.core.upnp;


import java.util.Enumeration;
import java.util.Hashtable;

import org.cybergarage.upnp.Action;
import org.cybergarage.upnp.ActionList;
import org.cybergarage.upnp.Service;
import org.cybergarage.upnp.ServiceStateTable;
import org.cybergarage.upnp.StateVariable;

import org.osgi.service.upnp.UPnPAction;
import org.osgi.service.upnp.UPnPService;
import org.osgi.service.upnp.UPnPStateVariable;

/**
* @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
*/
public class UPnPServiceImpl implements UPnPService {
  private Service service;
  private Hashtable actions;
  private Hashtable stateVariables;
 
  public UPnPServiceImpl(Service service) {
    this.service = service;
    actions = new Hashtable();
    stateVariables=new Hashtable();
    /*
     * action
     */
    ActionList actionlist = service.getActionList();
    for (int i = 0; i < actionlist.size(); i++) {
      Action act = actionlist.getAction(i);
      actions.put(act.getName(), new UPnPActionImpl(act,this));
    }
    /*StateVariable*/
    ServiceStateTable stateTable=service.getServiceStateTable();
    for(int i=0;i<stateTable.size();i++){
      StateVariable var= stateTable.getStateVariable(i);
      stateVariables.put(var.getName(),new UPnPStateVariableImpl(var));
    }
 
 
  } /*
     * (non-Javadoc)
     *
     * @see org.osgi.service.upnp.UPnPService#getId()
     */
  public String getId() {
    // TODO Auto-generated method stub
    return service.getServiceID();
  }

  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.upnp.UPnPService#getType()
   */
  public String getType() {
    // TODO Auto-generated method stub
    return service.getServiceType();
  }

  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.upnp.UPnPService#getVersion()
   */
  public String getVersion() {
    String serviceType = service.getServiceType();
    int start = serviceType.lastIndexOf(':');
    String version = serviceType.substring(start+1);
    return version;
  }
  /*
     * (non-Javadoc)
     *
     * @see org.osgi.service.upnp.UPnPService#getAction(java.lang.String)
     */
  public UPnPAction getAction(String name) {
    //TODO to check
    return (UPnPAction) actions.get(name);
  }

  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.upnp.UPnPService#getActions()
   */
  public UPnPAction[] getActions() {
    //TODO check again
    Enumeration e=actions.elements();
    if(e==null){
      return null;
    }
    UPnPAction [] uPnPacts=new UPnPAction[actions.size()];
    int i=0;
    while(e.hasMoreElements()){
      uPnPacts[i]=(UPnPActionImpl)e.nextElement();
      i++;
    }
    return uPnPacts;
  }
 
  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.upnp.UPnPService#getStateVariables()
   */
  public UPnPStateVariable[] getStateVariables() {
    //TODO check again
    UPnPStateVariableImpl [] vars =new UPnPStateVariableImpl[stateVariables.size()];
    Enumeration e=stateVariables.elements();
    if(e==null){
      return null;
    }
    int i=0;
    while(e.hasMoreElements()){
      vars[i]=(UPnPStateVariableImpl)e.nextElement();
      i++;
    }
    return vars;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.osgi.service.upnp.UPnPService#getStateVariable(java.lang.String)
   */
  public UPnPStateVariable getStateVariable(String name) {
    //TODO chack again
    return (UPnPStateVariableImpl) stateVariables.get(name);
  }

  public Service getCyberService(){
    return service;
  }

}
TOP

Related Classes of org.apache.felix.upnp.basedriver.importer.core.upnp.UPnPServiceImpl

TOP
Copyright © 2018 www.massapi.com. 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.