Update of /cvsroot/commonjava/commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26953/src/java/org/commonjava/dirdigester
Modified Files:
DirectoryDigest.java
Log Message:
updated documentation in project.xml files, and added functionality to:
Console:
- provide convenient way to prompt the user for more information
Config:
- Provide snap-in container stacking, or scoping
- Provide a JBoss service implementation of a snap-in container
Probably other things, but I don't honestly remember everything...
Index: DirectoryDigest.java
===================================================================
RCS file: /cvsroot/commonjava/commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester/DirectoryDigest.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- DirectoryDigest.java 31 Dec 2003 01:16:01 -0000 1.1.1.1
+++ DirectoryDigest.java 18 Feb 2004 06:13:11 -0000 1.2
@@ -7,6 +7,7 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
/**
@@ -43,6 +44,82 @@
return options.equals(digest.getOptions());
}
+ public List calculateAllChanges(DirectoryDigest digest){
+ List results = new ArrayList();
+ results = _calculateAdded(digest, results);
+ results = _calculateRemoved(digest, results);
+ results = _calculateChangedExisting(digest, results);
+
+ return results;
+ }
+
+ public List calculateAdded(DirectoryDigest digest){
+ return _calculateAdded(digest, new ArrayList());
+ }
+
+ public List calculateRemoved(DirectoryDigest digest){
+ return _calculateRemoved(digest, new ArrayList());
+ }
+
+ public List calculateChangedExisting(DirectoryDigest digest){
+ return _calculateChangedExisting(digest, new ArrayList());
+ }
+
+ private List _calculateChangedExisting(DirectoryDigest digest, List deltas){
+ Map stored = digest.getDigests();
+ for (Iterator it = digests.keySet().iterator(); it.hasNext(); ){
+ String fname = (String)it.next();
+ byte[] storeData = (byte[])stored.get(fname);
+ byte[] genData = (byte[])digests.get(fname);
+
+ if(storeData != null) {
+ if(storeData.length != genData.length) {
+ deltas.add(fname);
+ }
+ else {
+ for (int i = 0; i < genData.length; i++){
+ if(genData[i] != storeData[i]) {
+ deltas.add(fname);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return deltas;
+ }
+
+ private List _calculateAdded(DirectoryDigest digest, List deltas){
+ Map stored = digest.getDigests();
+ for (Iterator it = digests.keySet().iterator(); it.hasNext(); ){
+ String fname = (String)it.next();
+ byte[] storeData = (byte[])stored.get(fname);
+ byte[] genData = (byte[])digests.get(fname);
+
+ if(storeData == null) {
+ deltas.add(fname);
+ }
+ }
+
+ return deltas;
+ }
+
+ private List _calculateRemoved(DirectoryDigest digest, List deltas){
+ Map stored = digest.getDigests();
+ for (Iterator it = stored.keySet().iterator(); it.hasNext(); ){
+ String fname = (String)it.next();
+ byte[] storeData = (byte[])stored.get(fname);
+ byte[] genData = (byte[])digests.get(fname);
+
+ if(genData == null) {
+ deltas.add(fname);
+ }
+ }
+
+ return deltas;
+ }
+
public String[] compareWithoutOptions(DirectoryDigest digest) {
ArrayList deltas = new ArrayList();
Map stored = digest.getDigests();
|