[Top][All Lists]
[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(); }