use of org.eclipse.ecf.filetransfer.IFileTransferInfo in project ecf by eclipse.
the class LocalFileOutgoingFileTransfer method openStreams.
/* (non-Javadoc)
* @see org.eclipse.ecf.provider.filetransfer.outgoing.AbstractOutgoingFileTransfer#openStreams()
*/
protected void openStreams() throws SendFileTransferException {
IFileTransferInfo localFileTransferInfo = getFileTransferInfo();
Assert.isNotNull(localFileTransferInfo);
// Setup input file
File inputFile = localFileTransferInfo.getFile();
try {
setInputStream(new BufferedInputStream(new FileInputStream(inputFile)));
} catch (Exception e) {
hardClose();
throw new SendFileTransferException(NLS.bind(Messages.LocalFileOutgoingFileTransfer_EXCEPTION_OPENING_FOR_INPUT, inputFile));
}
URL url = getRemoteFileURL();
Assert.isNotNull(url);
try {
File outputFile = new File(url.getPath());
setOutputStream(new BufferedOutputStream(new FileOutputStream(outputFile)));
} catch (Exception e) {
hardClose();
throw new SendFileTransferException(NLS.bind(Messages.LocalFileOutgoingFileTransfer_EXCEPTION_OPENING_FOR_OUTPUT, url));
}
}
use of org.eclipse.ecf.filetransfer.IFileTransferInfo in project ecf by eclipse.
the class XMPPFileTransferRequestListener method fileTransferRequest.
/*
* (non-Javadoc)
*
* @see
* org.jivesoftware.smackx.filetransfer.FileTransferListener#fileTransferRequest
* (org.jivesoftware.smackx.filetransfer.FileTransferRequest)
*/
public void fileTransferRequest(final FileTransferRequest request) {
requestListener.handleFileTransferRequest(new IFileTransferRequestEvent() {
boolean requestAccepted = false;
IFileTransferInfo fileTransferInfo = new IFileTransferInfo() {
Map props = new HashMap();
File f = new File(request.getFileName());
public String getDescription() {
return request.getDescription();
}
public File getFile() {
return f;
}
public Map getProperties() {
return props;
}
public Object getAdapter(Class adapter) {
if (adapter == null)
return null;
if (adapter.isInstance(this))
return this;
final IAdapterManager adapterManager = XmppPlugin.getDefault().getAdapterManager();
return (adapterManager == null) ? null : adapterManager.loadAdapter(this, adapter.getName());
}
public long getFileSize() {
return request.getFileSize();
}
public String getMimeType() {
return request.getMimeType();
}
public String toString() {
final StringBuffer buf = new StringBuffer("FileTransferInfo[");
buf.append("file=").append(f);
buf.append(";size=").append(getFileSize());
buf.append(";description=" + getDescription());
buf.append(";mimeType=").append(getMimeType()).append("]");
return buf.toString();
}
};
public IIncomingFileTransfer accept(File localFileToSave) throws IncomingFileTransferException {
try {
final OutputStream outs = new FileOutputStream(localFileToSave);
return accept(outs, new IFileTransferListener() {
public void handleTransferEvent(IFileTransferEvent event) {
if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
try {
outs.close();
} catch (final IOException e) {
}
}
}
});
} catch (final FileNotFoundException e) {
throw new IncomingFileTransferException("Exception opening file for writing", e);
}
}
public IFileTransferInfo getFileTransferInfo() {
return fileTransferInfo;
}
public ID getRequesterID() {
return createIDFromName(request.getRequestor());
}
public void reject() {
request.reject();
}
public boolean requestAccepted() {
return requestAccepted;
}
public String toString() {
final StringBuffer buf = new StringBuffer("FileTransferRequestEvent[");
buf.append("requester=").append(getRequesterID());
buf.append(";requestAccepted=").append(requestAccepted());
buf.append(";transferInfo=").append(getFileTransferInfo()).append("]");
return buf.toString();
}
public IIncomingFileTransfer accept(OutputStream outputStream, IFileTransferListener listener) throws IncomingFileTransferException {
if (requestAccepted)
throw new IncomingFileTransferException("Incoming request previously accepted");
if (outputStream == null)
throw new IncomingFileTransferException("outputStream cannot be null");
incoming = request.accept();
requestAccepted = true;
try {
return new XMPPIncomingFileTransfer(IDFactory.getDefault().createStringID(request.getStreamID()), request.getFileName(), incoming.recieveFile(), outputStream, request.getFileSize(), listener);
} catch (final Exception e) {
throw new IncomingFileTransferException("Exception receiving file", e);
}
}
});
}
Aggregations