KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > repository > AbstractRepository


1 /*
2  * This file is subject to the licence found in LICENCE.TXT in the root directory of the project.
3  * Copyright Jayasoft 2005 - All rights reserved
4  *
5  * #SNAPSHOT#
6  */

7 package fr.jayasoft.ivy.repository;
8
9 import java.io.File JavaDoc;
10 import java.io.IOException JavaDoc;
11 import java.util.Arrays JavaDoc;
12
13 import javax.swing.event.EventListenerList JavaDoc;
14
15 import fr.jayasoft.ivy.Artifact;
16 import fr.jayasoft.ivy.IvyContext;
17
18
19 public abstract class AbstractRepository implements Repository {
20     private EventListenerList JavaDoc _listeners = new EventListenerList JavaDoc();
21     private String JavaDoc _name;
22     private TransferEvent _evt;
23     
24     public void addTransferListener(TransferListener listener) {
25         _listeners.add(TransferListener.class, listener);
26     }
27
28     public void removeTransferListener(TransferListener listener) {
29         _listeners.remove(TransferListener.class, listener);
30     }
31
32     public boolean hasTransferListener(TransferListener listener) {
33         return Arrays.asList(_listeners.getListeners(TransferListener.class)).contains(listener);
34     }
35     
36     protected void fireTransferInitiated(Resource res, int requestType) {
37         _evt = new TransferEvent(IvyContext.getContext().getIvy(), this, res, TransferEvent.TRANSFER_INITIATED, requestType);
38         fireTransferEvent(_evt);
39     }
40     
41     protected void fireTransferStarted() {
42         _evt.setEventType(TransferEvent.TRANSFER_STARTED);
43         fireTransferEvent(_evt);
44     }
45     
46     protected void fireTransferStarted(long totalLength) {
47         _evt.setEventType(TransferEvent.TRANSFER_STARTED);
48         _evt.setTotalLength(totalLength);
49         _evt.setTotalLengthSet(true);
50         fireTransferEvent(_evt);
51     }
52     
53     protected void fireTransferProgress(long length) {
54         _evt.setEventType(TransferEvent.TRANSFER_PROGRESS);
55         _evt.setLength(length);
56         if (!_evt.isTotalLengthSet()) {
57             _evt.setTotalLength(_evt.getTotalLength() + length);
58         }
59         fireTransferEvent(_evt);
60     }
61     
62     protected void fireTransferCompleted() {
63         _evt.setEventType(TransferEvent.TRANSFER_COMPLETED);
64         if (_evt.getTotalLength() > 0 && !_evt.isTotalLengthSet()) {
65             _evt.setTotalLengthSet(true);
66         }
67         fireTransferEvent(_evt);
68         _evt = null;
69     }
70     
71     protected void fireTransferCompleted(long totalLength) {
72         _evt.setEventType(TransferEvent.TRANSFER_COMPLETED);
73         _evt.setTotalLength(totalLength);
74         _evt.setTotalLengthSet(true);
75         fireTransferEvent(_evt);
76         _evt = null;
77     }
78     
79     protected void fireTransferError() {
80         _evt.setEventType(TransferEvent.TRANSFER_ERROR);
81         fireTransferEvent(_evt);
82         _evt = null;
83     }
84     
85     protected void fireTransferError(Exception JavaDoc ex) {
86         _evt.setEventType(TransferEvent.TRANSFER_ERROR);
87         _evt.setException(ex);
88         fireTransferEvent(_evt);
89         _evt = null;
90     }
91     
92     protected void fireTransferEvent(TransferEvent evt) {
93         Object JavaDoc[] listeners = _listeners.getListenerList();
94         for (int i = listeners.length-2; i>=0; i-=2) {
95             if (listeners[i]==TransferListener.class) {
96                 ((TransferListener)listeners[i+1]).transferProgress(evt);
97             }
98         }
99     }
100
101     public String JavaDoc getFileSeparator() {
102         return "/";
103     }
104
105     public String JavaDoc standardize(String JavaDoc source) {
106         return source.replace('\\', '/');
107     }
108
109     public String JavaDoc getName() {
110         return _name;
111     }
112     
113
114     public void setName(String JavaDoc name) {
115         _name = name;
116     }
117     
118     public String JavaDoc toString() {
119         return getName();
120     }
121     
122     public void put(Artifact artifact, File JavaDoc source, String JavaDoc destination, boolean overwrite) throws IOException JavaDoc {
123         put(source, destination, overwrite);
124     }
125
126     protected void put(File JavaDoc source, String JavaDoc destination, boolean overwrite) throws IOException JavaDoc {
127         throw new UnsupportedOperationException JavaDoc("put in not supported by "+getName());
128     }
129 }
130
Popular Tags