class TicketClientOperationsImpl extends AbstractTicketService implements TicketClientOperations {

	@Override
	public void putFileToIRODSUsingTicket(final String ticketString, final File sourceFile,
			final IRODSFile targetIrodsFile, final TransferStatusCallbackListener transferStatusCallbackListener,
			final TransferControlBlock transferControlBlock)
			throws DataNotFoundException, OverwriteException, JargonException {

		log.info("putFileToIRODSUsingTicket()");

		if (ticketString == null || ticketString.isEmpty()) {
			throw new IllegalArgumentException("null or empty ticketString");
		}

		// other param checks done in delegated methods

		log.info("initializing session with ticket:{}", ticketString);
		ticketClientSupport.initializeSessionWithTicket(ticketString);

		log.info("session initialized, doing put operation");
		dataTransferOperations.putOperation(sourceFile, targetIrodsFile, transferStatusCallbackListener,
				transferControlBlock);

	}

	  TicketClientOperationsImpl(final IRODSAccessObjectFactory irodsAccessObjectFactory, final IRODSAccount irodsAccount);

}