gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] storm/org/nongnu/storm BlockId.java


From: Benja Fallenstein
Subject: [Gzz-commits] storm/org/nongnu/storm BlockId.java
Date: Sun, 06 Apr 2003 17:36:30 -0400

CVSROOT:        /cvsroot/storm
Module name:    storm
Changes by:     Benja Fallenstein <address@hidden>      03/04/06 17:36:30

Modified files:
        org/nongnu/storm: BlockId.java 

Log message:
        start

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/storm/storm/org/nongnu/storm/BlockId.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: storm/org/nongnu/storm/BlockId.java
diff -u storm/org/nongnu/storm/BlockId.java:1.3 
storm/org/nongnu/storm/BlockId.java:1.4
--- storm/org/nongnu/storm/BlockId.java:1.3     Thu Apr  3 15:36:28 2003
+++ storm/org/nongnu/storm/BlockId.java Sun Apr  6 17:36:30 2003
@@ -30,8 +30,10 @@
 import java.io.*;
 import java.security.*;
 
+/** The URN of a Storm block.
+ */
 public final class BlockId {
-    private static String PREFIX = "urn:x-storm:block:";
+    private static String PREFIX = "urn:x-storm:1.0:";
     private static int PREFIX_LEN = PREFIX.length();
 
     public static class WrongIdException extends IOException {
@@ -45,10 +47,29 @@
     private String uri;
 
     public BlockId(String uri) throws IllegalArgumentException {
+       uri = uri.toLowerCase().intern();
+       this.uri = uri;
+
+        int dot = uri.lastIndexOf('.');
+       int comma = uri.lastIndexOf(',');
+       
+       if(!uri.startsWith(PREFIX) || dot < 0 || 
+          comma < 0 || dot < comma)
+           throw new IllegalArgumentException("Bad block URN: "+uri);
+
+       contentType = uri.substring(PREFIX_LEN, comma);
+       sha1 = Base32.decode(uri.substring(comma+1, dot));
+       tigertree = Base32.decode(uri.substring(dot+1));
     }
 
     public BlockId(byte[] sha1, byte[] tigertree, 
                   String contentType) {
+       this.sha1 = sha1;
+       this.tigertree = tigertree;
+       this.contentType = contentType;
+
+       uri = PREFIX + contentType + "," +
+           Base32.encode(sha1) + "." + Base32.encode(tigertree);
     }
 
     public byte[] getSha1() { return sha1; }
@@ -81,7 +102,7 @@
 
     public boolean equals(Object o) {
         if(!(o instanceof BlockId)) return false;
-        return ((BlockId)o).uri.equals(uri);
+        return ((BlockId)o).uri == uri;
     }
 
     public int hashCode() { return uri.hashCode(); }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]