Package org.eclipse.ecf.internal.provider.xmpp

Source Code of org.eclipse.ecf.internal.provider.xmpp.XMPPContainerInstantiator

/*******************************************************************************
* Copyright (c) 2004 Composent, Inc. and others. 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: Composent, Inc. - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.internal.provider.xmpp;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.eclipse.ecf.core.ContainerCreateException;
import org.eclipse.ecf.core.ContainerTypeDescription;
import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.provider.generic.GenericContainerInstantiator;
import org.eclipse.ecf.provider.xmpp.XMPPContainer;

public class XMPPContainerInstantiator extends GenericContainerInstantiator {
  /*
   * (non-Javadoc)
   *
   * @seeorg.eclipse.ecf.core.provider.IContainerInstantiator#createInstance(
   * ContainerDescription, java.lang.Object[])
   */
  public IContainer createInstance(ContainerTypeDescription description,
      Object[] args) throws ContainerCreateException {
    try {
      Integer ka = new Integer(XMPPContainer.DEFAULT_KEEPALIVE);
      String name = null;
      if (args != null) {
        if (args.length > 0) {
          name = (String) args[0];
          if (args.length > 1) {
            ka = getIntegerFromArg(args[1]);
          }
        }
      }
      if (name == null) {
        if (ka == null) {
          return new XMPPContainer();
        } else {
          return new XMPPContainer(ka.intValue());
        }
      } else {
        if (ka == null) {
          ka = new Integer(XMPPContainer.DEFAULT_KEEPALIVE);
        }
        return new XMPPContainer(name, ka.intValue());
      }
    } catch (Exception e) {
      throw new ContainerCreateException(
          "Exception creating generic container", e);
    }
  }

  private static final String XMPP_CONFIG = "ecf.xmpp.smack"; //$NON-NLS-1$

  public String[] getImportedConfigs(ContainerTypeDescription description,
      String[] exporterSupportedConfigs) {
    if (exporterSupportedConfigs == null)
      return null;
    List results = new ArrayList();
    List supportedConfigs = Arrays.asList(exporterSupportedConfigs);
    if (XMPP_CONFIG.equals(description.getName())) {
      if (supportedConfigs.contains(XMPP_CONFIG))
        results.add(XMPP_CONFIG);
    }
    if (supportedConfigs.size() == 0)
      return null;
    return (String[]) results.toArray(new String[] {});
  }

  public String[] getSupportedConfigs(ContainerTypeDescription description) {
    return new String[] { XMPP_CONFIG };
  }

}
TOP

Related Classes of org.eclipse.ecf.internal.provider.xmpp.XMPPContainerInstantiator

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.