[Jarspy-commits] CVS: JarSpy/src/com/ociweb/jarspy JarInspector.java,1.7,1.8
Status: Beta
Brought to you by:
brown_j
|
From: Jeff B. <br...@us...> - 2002-07-19 00:22:59
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy
In directory usw-pr-cvs1:/tmp/cvs-serv13461/com/ociweb/jarspy
Modified Files:
JarInspector.java
Log Message:
added progress feedback screen
Index: JarInspector.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/jarspy/JarInspector.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** JarInspector.java 20 Jun 2002 02:08:27 -0000 1.7
--- JarInspector.java 19 Jul 2002 00:22:55 -0000 1.8
***************
*** 40,43 ****
--- 40,44 ----
JarFile jarFile = null;
private Set classSet = new TreeSet();
+ private JarProcessingListener processingListener;
private void closeJar() {
***************
*** 62,80 ****
}
public synchronized void setJarFile(JarFile jarFile) throws IOException {
closeJar();
this.jarFile = jarFile;
- //int numberOfEntries = 0;
- //ClassInfo[] tmpArray = new ClassInfo[64];
classSet.clear();
Enumeration entries = jarFile.entries();
while (entries.hasMoreElements()) {
JarEntry entry = (JarEntry) entries.nextElement();
if (entry.getName().endsWith(".class")) {
ClassInfo ci = new ClassInfo(jarFile.getInputStream(entry));
classSet.add(ci);
}
}
manifest = jarFile.getManifest();
}
--- 63,100 ----
}
+ /**
+ * Register a processing listener. Right now, only one listener may
+ * be registered at a time.
+ *
+ * @param l the listener being registered with this JarInspector
+ */
+ public void setProcessingListener(JarProcessingListener l) {
+ processingListener = l;
+ }
+
public synchronized void setJarFile(JarFile jarFile) throws IOException {
closeJar();
this.jarFile = jarFile;
classSet.clear();
Enumeration entries = jarFile.entries();
+ int total = jarFile.size();
+ int counter = 0;
while (entries.hasMoreElements()) {
+ counter++;
JarEntry entry = (JarEntry) entries.nextElement();
if (entry.getName().endsWith(".class")) {
ClassInfo ci = new ClassInfo(jarFile.getInputStream(entry));
+ if (processingListener != null) {
+ processingListener
+ .updateJarProcessingProgress(ci.getClassName(),
+ (100 * counter) / total);
+ }
classSet.add(ci);
}
}
manifest = jarFile.getManifest();
+ if (processingListener != null) {
+ processingListener.finishedProcessingJar();
+ }
}
***************
*** 92,96 ****
(!directory.isDirectory())) {
throw new IllegalArgumentException("Invalid dir: " +
! directory);
}
String directoryName = directory.getPath();
--- 112,116 ----
(!directory.isDirectory())) {
throw new IllegalArgumentException("Invalid dir: " +
! directory);
}
String directoryName = directory.getPath();
***************
*** 115,119 ****
try {
out = new FileOutputStream(directoryName +
! entryName);
in = jarFile.getInputStream(entry);
byte[] data = new byte[1024];
--- 135,139 ----
try {
out = new FileOutputStream(directoryName +
! entryName);
in = jarFile.getInputStream(entry);
byte[] data = new byte[1024];
|