[CJ-dev] commonjava-projects/commonjava-dirdigester/src/java/org/commonjava/dirdigester DirectoryDig
Brought to you by:
johnqueso
From: <joh...@co...> - 2004-02-18 06:22:30
|
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(); |