package org.eclipse.ecf.provider.nntp.internal; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.identity.IDCreateException; import org.eclipse.ecf.core.identity.Namespace; public class NNTPNameSpace extends Namespace { /** * */ private static final long serialVersionUID = -2450042292994735908L; public static final String NAME = "ecf.namespace.nntp"; public static final String SCHEME = "nntp"; public ID createInstance(Object[] parameters) throws IDCreateException { try { final String init = getInitFromExternalForm(parameters); if (init != null) return new NNTPHostID(this, init); return new NNTPHostID(this, parameters[0].toString()); } catch (final Exception e) { throw new IDCreateException("Cannot create NNTP ID"); } } private String getInitFromExternalForm(Object[] args) { if (args == null || args.length < 1 || args[0] == null) return null; if (args[0] instanceof String) { return (String) args[0]; // final String arg = (String) args[0]; // if (arg.startsWith(getScheme() + Namespace.SCHEME_SEPARATOR)) { // final int index = arg.indexOf(Namespace.SCHEME_SEPARATOR); // if (index >= arg.length()) // return null; // return arg.substring(index + 3); // } } return null; } public String getScheme() { return SCHEME; } public String[] getSupportedSchemes() { return new String[] { getScheme() }; } }