Package org.eclipse.ecf.provider.zookeeper.core

Source Code of org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryNamespace

/*******************************************************************************
*  Copyright (c)2010 REMAIN B.V. The Netherlands. (http://www.remainsoftware.com).
*  All rights reserved. This program and the accompanying materials
*  are made available under the terms of the Eclipse Public License v1.0
*  which accompanies this distribution, and is available at
*  http://www.eclipse.org/legal/epl-v10.html
*
*  Contributors:
*    Wim Jongman - initial API and implementation
*    Ahmed Aadel - initial API and implementation    
*******************************************************************************/
package org.eclipse.ecf.provider.zookeeper.core;

import java.net.URI;

import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.identity.IDCreateException;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.discovery.identity.IServiceTypeID;
import org.eclipse.ecf.discovery.identity.ServiceTypeID;

public class ZooDiscoveryNamespace extends Namespace {

  private static final long serialVersionUID = 3925693055869405334L;
  public static final String NAME = "ecf.namespace.zoodiscovery"; //$NON-NLS-1$ 

  public ZooDiscoveryNamespace() {
    super(NAME, "ZooKeeper Discovery Namespace"); //$NON-NLS-1$
  }

  public ID createInstance(Object[] parameters) throws IDCreateException {
    Assert.isTrue(parameters != null && parameters.length > 0);
    try {
      if (parameters[0] instanceof String && parameters instanceof String[]) {
        return new ZooDiscoveryTargetID(this, (String[]) parameters);
      } else if (parameters.length == 1
          && parameters[0] instanceof IServiceTypeID) {
        return new ZooDiscoveryServiceTypeID(this,
            (IServiceTypeID) parameters[0]);
      } else if (parameters.length == 2
          && parameters[0] instanceof IServiceTypeID
          && parameters[1] instanceof URI) {
        return new ZooDiscoveryServiceID(this,
            ((IServiceTypeID) parameters[0]), ((URI) parameters[1]));
      } else if (parameters.length == 2
          && parameters[0] instanceof String
          && parameters[1] instanceof URI) {
        final String type = (String) parameters[0];
        return new ZooDiscoveryServiceID(this,
            new ServiceTypeID(this, type), ((URI) parameters[1]));
      }

    } catch (Exception e) {
      throw new IDCreateException(getName()+" createInstance()", e); //$NON-NLS-1$
    }
    return null;

  }

  public String getScheme() {
    return this.getClass().toString();
  }

  public Class[][] getSupportedParameterTypes() {
    return new Class[][] { { String.class }, { IServiceTypeID.class },
        { IServiceTypeID.class, URI.class } };
  }

  public static long getSerialversionuid() {
    return serialVersionUID;
  }

}
TOP

Related Classes of org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryNamespace

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.