KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > uid > UUIDGenerator


1 /* $Id: UUIDGenerator.java,v 1.4 2006/09/07 20:23:51 stack-sf Exp $
2  *
3  * Created on July 27th, 2006
4  *
5  * Copyright (C) 2006 Internet Archive.
6  *
7  * This file is part of the Heritrix web crawler (crawler.archive.org).
8  *
9  * Heritrix is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU Lesser Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * any later version.
13  *
14  * Heritrix is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser Public License
20  * along with Heritrix; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22  */

23 package org.archive.uid;
24
25 import java.net.URI JavaDoc;
26 import java.net.URISyntaxException JavaDoc;
27 import java.util.Map JavaDoc;
28 import java.util.UUID JavaDoc;
29
30 /**
31  * Generates <a HREF="http://en.wikipedia.org/wiki/UUID">UUID</a>s, using
32  * {@link java.util.UUID java.util.UUID}, formatted as URNs from the UUID
33  * namespace [See <a HREF="http://www.ietf.org/rfc/rfc4122.txt">RFC4122</a>].
34  * Here is an examples of the type of ID it makes:
35  * <code>urn:uuid:0161811f-5da6-4c6e-9808-a2fab97114cf</code>. Always makes a
36  * new identifier even when passed qualifiers.
37  *
38  * @author stack
39  * @version $Revision: 1.4 $ $Date: 2006/09/07 20:23:51 $
40  * @see <a HREF="http://ietf.org/rfc/rfc4122.txt">RFC4122</a>
41  */

42 class UUIDGenerator implements Generator {
43     private static final String JavaDoc SCHEME = "urn:uuid";
44     private static final String JavaDoc SCHEME_COLON = SCHEME + ":";
45     
46     UUIDGenerator() {
47         super();
48     }
49
50     public synchronized URI JavaDoc qualifyRecordID(URI JavaDoc recordId,
51             final Map JavaDoc<String JavaDoc, String JavaDoc> qualifiers)
52     throws URISyntaxException JavaDoc {
53         return getRecordID();
54     }
55
56     private String JavaDoc getUUID() {
57         return UUID.randomUUID().toString();
58     }
59     
60     public URI JavaDoc getRecordID() throws URISyntaxException JavaDoc {
61         return new URI JavaDoc(SCHEME_COLON + getUUID());
62     }
63     
64     public URI JavaDoc getQualifiedRecordID(
65             final String JavaDoc key, final String JavaDoc value)
66     throws URISyntaxException JavaDoc {
67         return getRecordID();
68     }
69
70     public URI JavaDoc getQualifiedRecordID(Map JavaDoc<String JavaDoc, String JavaDoc> qualifiers)
71     throws URISyntaxException JavaDoc {
72         return getRecordID();
73     }
74 }
Popular Tags