1   package org.apache.maven.repository;
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  import java.io.File;
24  import java.util.EventObject;
25  
26  
27  
28  
29  
30  
31  
32  public class ArtifactTransferEvent
33      extends EventObject
34  {
35      
36  
37  
38      public static final int TRANSFER_INITIATED = 0;
39  
40      
41  
42  
43      public static final int TRANSFER_STARTED = 1;
44  
45      
46  
47  
48      public static final int TRANSFER_COMPLETED = 2;
49  
50      
51  
52  
53      public static final int TRANSFER_PROGRESS = 3;
54  
55      
56  
57  
58      public static final int TRANSFER_ERROR = 4;
59  
60      
61  
62  
63      public static final int REQUEST_GET = 5;
64  
65      
66  
67  
68      public static final int REQUEST_PUT = 6;
69  
70      private int eventType;
71  
72      private int requestType;
73  
74      private Exception exception;
75  
76      private File localFile;
77  
78      private ArtifactTransferResource artifact;
79  
80      private long transferredBytes;
81  
82      private byte[] dataBuffer;
83  
84      private int dataOffset;
85  
86      private int dataLength;
87  
88      public ArtifactTransferEvent( String wagon, final int eventType, final int requestType,
89                                    ArtifactTransferResource artifact )
90      {
91          super( wagon );
92  
93          setEventType( eventType );
94  
95          setRequestType( requestType );
96  
97          this.artifact = artifact;
98      }
99  
100     public ArtifactTransferEvent( String wagon, final Exception exception, final int requestType,
101                                   ArtifactTransferResource artifact )
102     {
103         this( wagon, TRANSFER_ERROR, requestType, artifact );
104 
105         this.exception = exception;
106     }
107 
108     public ArtifactTransferResource getResource()
109     {
110         return artifact;
111     }
112 
113     
114 
115 
116     public Exception getException()
117     {
118         return exception;
119     }
120 
121     
122 
123 
124 
125 
126 
127     public int getRequestType()
128     {
129         return requestType;
130     }
131 
132     
133 
134 
135 
136 
137 
138 
139 
140     public void setRequestType( final int requestType )
141     {
142         switch ( requestType )
143         {
144             case REQUEST_PUT:
145                 break;
146             case REQUEST_GET:
147                 break;
148             default :
149                 throw new IllegalArgumentException( "Illegal request type: " + requestType );
150         }
151 
152         this.requestType = requestType;
153     }
154 
155     
156 
157 
158     public int getEventType()
159     {
160         return eventType;
161     }
162 
163     
164 
165 
166     public void setEventType( final int eventType )
167     {
168         switch ( eventType )
169         {
170             case TRANSFER_INITIATED:
171                 break;
172             case TRANSFER_STARTED:
173                 break;
174             case TRANSFER_COMPLETED:
175                 break;
176             case TRANSFER_PROGRESS:
177                 break;
178             case TRANSFER_ERROR:
179                 break;
180             default :
181                 throw new IllegalArgumentException( "Illegal event type: " + eventType );
182         }
183 
184         this.eventType = eventType;
185     }
186 
187     
188 
189 
190     public File getLocalFile()
191     {
192         return localFile;
193     }
194 
195     
196 
197 
198     public void setLocalFile( File localFile )
199     {
200         this.localFile = localFile;
201     }
202 
203     public long getTransferredBytes()
204     {
205         return transferredBytes;
206     }
207 
208     public void setTransferredBytes( long transferredBytes )
209     {
210         this.transferredBytes = transferredBytes;
211     }
212 
213     public byte[] getDataBuffer()
214     {
215         return dataBuffer;
216     }
217 
218     public void setDataBuffer( byte[] dataBuffer )
219     {
220         this.dataBuffer = dataBuffer;
221     }
222 
223     public int getDataOffset()
224     {
225         return dataOffset;
226     }
227 
228     public void setDataOffset( int dataOffset )
229     {
230         this.dataOffset = dataOffset;
231     }
232 
233     public int getDataLength()
234     {
235         return dataLength;
236     }
237 
238     public void setDataLength( int dataLength )
239     {
240         this.dataLength = dataLength;
241     }
242 
243     public String toString()
244     {
245         StringBuilder sb = new StringBuilder( 64 );
246 
247         sb.append( "TransferEvent[" );
248 
249         switch ( this.getRequestType() )
250         {
251             case REQUEST_GET:
252                 sb.append( "GET" );
253                 break;
254             case REQUEST_PUT:
255                 sb.append( "PUT" );
256                 break;
257             default:
258                 sb.append( this.getRequestType() );
259                 break;
260         }
261 
262         sb.append( '|' );
263         switch ( this.getEventType() )
264         {
265             case TRANSFER_COMPLETED:
266                 sb.append( "COMPLETED" );
267                 break;
268             case TRANSFER_ERROR:
269                 sb.append( "ERROR" );
270                 break;
271             case TRANSFER_INITIATED:
272                 sb.append( "INITIATED" );
273                 break;
274             case TRANSFER_PROGRESS:
275                 sb.append( "PROGRESS" );
276                 break;
277             case TRANSFER_STARTED:
278                 sb.append( "STARTED" );
279                 break;
280             default:
281                 sb.append( this.getEventType() );
282                 break;
283         }
284 
285         sb.append( '|' );
286         sb.append( this.getLocalFile() ).append( '|' );
287         sb.append( ']' );
288 
289         return sb.toString();
290     }
291 
292     public int hashCode()
293     {
294         final int prime = 31;
295         int result = 1;
296         result = prime * result + eventType;
297         result = prime * result + ( ( exception == null ) ? 0 : exception.hashCode() );
298         result = prime * result + ( ( localFile == null ) ? 0 : localFile.hashCode() );
299         result = prime * result + requestType;
300         return result;
301     }
302 
303     public boolean equals( Object obj )
304     {
305         if ( this == obj )
306         {
307             return true;
308         }
309         if ( ( obj == null ) || ( getClass() != obj.getClass() ) )
310         {
311             return false;
312         }
313         final ArtifactTransferEvent other = (ArtifactTransferEvent) obj;
314         if ( eventType != other.eventType )
315         {
316             return false;
317         }
318         if ( exception == null )
319         {
320             if ( other.exception != null )
321             {
322                 return false;
323             }
324         }
325         else if ( !exception.getClass().equals( other.exception.getClass() ) )
326         {
327             return false;
328         }
329         if ( requestType != other.requestType )
330         {
331             return false;
332         }
333         else if ( !source.equals( other.source ) )
334         {
335             return false;
336         }
337         return true;
338     }
339 
340 }