org.apache.ivy.plugins.repository

## Class TransferEvent

- java.lang.Object
- - org.apache.ivy.core.event.IvyEvent
  - - org.apache.ivy.plugins.repository.TransferEvent

    public class TransferEvent
    extends IvyEvent

TransferEvent is used to notify TransferListeners about progress in transfer of resources form/to the respository This class is LARGELY inspired by org.apache.maven.wagon.events.TransferEvent released under the following copyright license:

      Copyright 2001-2005 The Apache Software Foundation.

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

           http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

Orginal class written by Michal Maczka.

### Field Summary

Fields
`static int` `REQUEST_GET` Indicates GET transfer (from the repository)
`static int` `REQUEST_PUT` Indicates PUT transfer (to the repository)
`static int` `TRANSFER_COMPLETED` A transfer is completed.
`static java.lang.String` `TRANSFER_COMPLETED_NAME`
`static int` `TRANSFER_ERROR` An error occurred during transfer
`static java.lang.String` `TRANSFER_ERROR_NAME`
`static int` `TRANSFER_INITIATED` A transfer was attempted, but has not yet commenced.
`static java.lang.String` `TRANSFER_INITIATED_NAME`
`static int` `TRANSFER_PROGRESS` A transfer is in progress.
`static java.lang.String` `TRANSFER_PROGRESS_NAME`
`static int` `TRANSFER_STARTED` A transfer was started.
`static java.lang.String` `TRANSFER_STARTED_NAME`

### Constructor Summary

Constructors
Constructor and Description
`TransferEvent(Repository repository, Resource resource, java.lang.Exception exception, int requestType)`
`TransferEvent(Repository repository, Resource resource, int eventType, int requestType)`
`TransferEvent(Repository repository, Resource resource, long length, int requestType)`

### Method Summary

Methods
`long` `getElapsedTime(int fromEventType, int toEventType)` Returns the elapsed time (in ms) between when the event entered one type until it entered another event time.
`int` `getEventType()`
`java.lang.Exception` `getException()`
`long` `getLength()`
`java.io.File` `getLocalFile()`
`Repository` `getRepository()`
`int` `getRequestType()` Returns the request type.
`Resource` `getResource()`
`long` `getTotalLength()`
`boolean` `isTotalLengthSet()`
`protected void` `setEventType(int eventType)`
`void` `setException(java.lang.Exception exception)`
`protected void` `setLength(long length)`
`protected void` `setLocalFile(java.io.File localFile)`
`protected void` `setRequestType(int requestType)` Sets the request type
`protected void` `setResource(Resource resource)`
`protected void` `setTotalLength(long totalLength)`
`void` `setTotalLengthSet(boolean isTotalLengthSet)`

### Methods inherited from class org.apache.ivy.core.event.IvyEvent

`addAttribute, addAttributes, addConfsAttribute, addMDAttributes, addModuleIdAttributes, addMridAttributes, equals, getAttributes, getName, getSource, hashCode, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### TRANSFER_INITIATED

    public static final int TRANSFER_INITIATED

A transfer was attempted, but has not yet commenced.

See Also:
  Constant Field Values

#### TRANSFER_STARTED

    public static final int TRANSFER_STARTED

A transfer was started.

See Also:
  Constant Field Values

#### TRANSFER_COMPLETED

    public static final int TRANSFER_COMPLETED

A transfer is completed.

See Also:
  Constant Field Values

#### TRANSFER_PROGRESS

    public static final int TRANSFER_PROGRESS

A transfer is in progress.

See Also:
  Constant Field Values

#### TRANSFER_ERROR

    public static final int TRANSFER_ERROR

An error occurred during transfer

See Also:
  Constant Field Values

#### REQUEST_GET

    public static final int REQUEST_GET

Indicates GET transfer (from the repository)

See Also:
  Constant Field Values

#### REQUEST_PUT

    public static final int REQUEST_PUT

Indicates PUT transfer (to the repository)

See Also:
  Constant Field Values

#### TRANSFER_INITIATED_NAME

    public static final java.lang.String TRANSFER_INITIATED_NAME

See Also:
  Constant Field Values

#### TRANSFER_STARTED_NAME

    public static final java.lang.String TRANSFER_STARTED_NAME

See Also:
  Constant Field Values

#### TRANSFER_PROGRESS_NAME

    public static final java.lang.String TRANSFER_PROGRESS_NAME

See Also:
  Constant Field Values

#### TRANSFER_COMPLETED_NAME

    public static final java.lang.String TRANSFER_COMPLETED_NAME

See Also:
  Constant Field Values

#### TRANSFER_ERROR_NAME

    public static final java.lang.String TRANSFER_ERROR_NAME

See Also:
  Constant Field Values

### Constructor Detail

#### TransferEvent

    public TransferEvent(Repository repository,
                 Resource resource,
                 int eventType,
                 int requestType)

#### TransferEvent

    public TransferEvent(Repository repository,
                 Resource resource,
                 java.lang.Exception exception,
                 int requestType)

#### TransferEvent

    public TransferEvent(Repository repository,
                 Resource resource,
                 long length,
                 int requestType)

### Method Detail

#### getResource

    public Resource getResource()

Returns:
  Returns the resource.

#### getException

    public java.lang.Exception getException()

Returns:
  Returns the exception.

#### getRequestType

    public int getRequestType()

Returns the request type.

Returns:
  Returns the request type. The Request type is one of `TransferEvent.REQUEST_GET`or `TransferEvent.REQUEST_PUT`````

#### setRequestType

    protected void setRequestType(int requestType)

Sets the request type

Parameters:
  `requestType` - The requestType to set. The Request type value should be either `TransferEvent.REQUEST_GET`or `TransferEvent.REQUEST_PUT`.````
Throws:
  `java.lang.IllegalArgumentException` - when

#### getEventType

    public int getEventType()

Returns:
  Returns the eventType.

#### setEventType

    protected void setEventType(int eventType)

Parameters:
  `eventType` - The eventType to set.

#### setResource

    protected void setResource(Resource resource)

Parameters:
  `resource` - The resource to set.

#### getLocalFile

    public java.io.File getLocalFile()

Returns:
  Returns the local file.

#### setLocalFile

    protected void setLocalFile(java.io.File localFile)

Parameters:
  `localFile` - The local file to set.

#### getLength

    public long getLength()

#### setLength

    protected void setLength(long length)

#### getTotalLength

    public long getTotalLength()

#### setTotalLength

    protected void setTotalLength(long totalLength)

#### setException

    public void setException(java.lang.Exception exception)

#### isTotalLengthSet

    public boolean isTotalLengthSet()

#### setTotalLengthSet

    public void setTotalLengthSet(boolean isTotalLengthSet)

#### getRepository

    public Repository getRepository()

#### getElapsedTime

    public long getElapsedTime(int fromEventType,
                      int toEventType)

Returns the elapsed time (in ms) between when the event entered one type until it entered another event time.

This is especially useful to get the elapsed transfer time:

     getElapsedTime(TransferEvent.TRANSFER_STARTED, TransferEvent.TRANSFER_COMPLETED);

Special cases:

- returns -1 if the event never entered the fromEventType or the toEventType.
- returns 0 if the event entered toEventType before fromEventType

Parameters:
  `fromEventType` - the event type constant from which time should be measured
  `toEventType` - the event type constant to which time should be measured
Returns:
  the elapsed time (in ms) between when the event entered fromEventType until it entered toEventType.
Throws:
  `java.lang.IllegalArgumentException` - if either type is not a known constant event type.