blob: 66e2d65192de58e79c16e6285789940309e580e3 [file] [log] [blame]
/****************************************************************************
* Copyright (c) 2006, 2007 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.provider.filetransfer.identity;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.identity.BaseID;
import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.filetransfer.identity.IFileID;
import org.eclipse.ecf.internal.provider.filetransfer.Messages;
public class FileTransferID extends BaseID implements IFileID {
private static final long serialVersionUID = 1274308869502156992L;
URL fileURL;
URI fileURI;
public FileTransferID(Namespace namespace, URL url) {
super(namespace);
Assert.isNotNull(url, Messages.FileTransferID_Exception_Url_Not_Null);
this.fileURL = url;
}
/**
* @since 3.2
*/
public FileTransferID(Namespace namespace, URI uri) {
super(namespace);
Assert.isNotNull(uri, "FileTransferID URI cannot be null"); //$NON-NLS-1$
this.fileURI = uri;
}
protected int namespaceCompareTo(BaseID o) {
if (o == null)
return 1;
if (!(o instanceof FileTransferID))
return 1;
return (fileURI != null) ? fileURI.compareTo(((FileTransferID) o).fileURI) : fileURL.toExternalForm().compareTo(((FileTransferID) o).toExternalForm());
}
protected boolean namespaceEquals(BaseID o) {
if (o == null)
return false;
if (!(o instanceof FileTransferID))
return false;
return (fileURI != null) ? fileURI.equals(((FileTransferID) o).fileURI) : fileURL.equals(((FileTransferID) o).fileURL);
}
protected String namespaceGetName() {
return (fileURI != null) ? fileURI.toASCIIString() : fileURL.toExternalForm();
}
protected int namespaceHashCode() {
return (fileURI != null) ? fileURI.hashCode() : this.fileURL.hashCode();
}
public String getFilename() {
return getFileNameOnly();
}
public URL getURL() throws MalformedURLException {
return (fileURI != null) ? fileURI.toURL() : fileURL;
}
protected String getFileNameOnly() {
String path = (fileURI != null) ? fileURI.getPath() : fileURL.getPath();
return (path == null) ? null : path.substring(path.lastIndexOf("/") + 1); //$NON-NLS-1$;
}
public String toString() {
final StringBuffer b = new StringBuffer("FileTransferID["); //$NON-NLS-1$
b.append(toExternalForm());
b.append("]"); //$NON-NLS-1$
return b.toString();
}
/**
* @since 3.2
*/
public URI getURI() throws URISyntaxException {
return (fileURI != null) ? fileURI : new URI(fileURL.toExternalForm());
}
}