annotate src/de/mpiwg/itgroup/metadataManager/pid/PidGenerator.java @ 0:90a19cbda471

first ingest
author dwinter
date Wed, 24 Nov 2010 16:54:52 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
90a19cbda471 first ingest
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.metadataManager.pid;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
2
90a19cbda471 first ingest
dwinter
parents:
diff changeset
3
90a19cbda471 first ingest
dwinter
parents:
diff changeset
4 import java.util.ArrayList;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
5 import java.util.Calendar;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
6 import java.util.HashMap;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
7 import java.util.Random;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
8
90a19cbda471 first ingest
dwinter
parents:
diff changeset
9 public class PidGenerator {
90a19cbda471 first ingest
dwinter
parents:
diff changeset
10
90a19cbda471 first ingest
dwinter
parents:
diff changeset
11 public String getPID() {
90a19cbda471 first ingest
dwinter
parents:
diff changeset
12
90a19cbda471 first ingest
dwinter
parents:
diff changeset
13 HashMap<Integer, Character> driEncode = new HashMap<Integer, Character>();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
14
90a19cbda471 first ingest
dwinter
parents:
diff changeset
15 driEncode.put(0,'0');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
16 driEncode.put(1,'1');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
17 driEncode.put(2,'2');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
18 driEncode.put(3,'3');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
19 driEncode.put(4,'4');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
20 driEncode.put(5,'5');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
21 driEncode.put(6,'6');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
22 driEncode.put(7,'7');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
23 driEncode.put(8,'8');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
24 driEncode.put(9,'9');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
25 driEncode.put(10,'A');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
26 driEncode.put(11,'B');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
27 driEncode.put(12,'C');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
28 driEncode.put(13,'D');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
29 driEncode.put(14,'E');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
30 driEncode.put(15,'F');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
31 driEncode.put(16,'G');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
32 driEncode.put(17,'H');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
33 driEncode.put(18,'K');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
34 driEncode.put(19,'M');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
35 driEncode.put(20,'N');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
36 driEncode.put(21,'P');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
37 driEncode.put(22,'Q');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
38 driEncode.put(23,'R');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
39 driEncode.put(24,'S');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
40 driEncode.put(25,'T');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
41 driEncode.put(26,'U');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
42 driEncode.put(27,'V');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
43 driEncode.put(28,'W');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
44 driEncode.put(29,'X');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
45 driEncode.put(30,'Y');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
46 driEncode.put(31,'Z');
90a19cbda471 first ingest
dwinter
parents:
diff changeset
47
90a19cbda471 first ingest
dwinter
parents:
diff changeset
48
90a19cbda471 first ingest
dwinter
parents:
diff changeset
49 Random rd = new Random();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
50 long mils = Calendar.getInstance().getTimeInMillis();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
51 rd.setSeed(mils);
90a19cbda471 first ingest
dwinter
parents:
diff changeset
52
90a19cbda471 first ingest
dwinter
parents:
diff changeset
53 ArrayList<Integer> x = new ArrayList<Integer>();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
54
90a19cbda471 first ingest
dwinter
parents:
diff changeset
55 for (int i=0;i<7;i++)
90a19cbda471 first ingest
dwinter
parents:
diff changeset
56 x.add(rd.nextInt(32));
90a19cbda471 first ingest
dwinter
parents:
diff changeset
57
90a19cbda471 first ingest
dwinter
parents:
diff changeset
58
90a19cbda471 first ingest
dwinter
parents:
diff changeset
59 Integer sum=0;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
60 for (int i=0;i<7;i++){
90a19cbda471 first ingest
dwinter
parents:
diff changeset
61 sum+=(i+1)*x.get(i);
90a19cbda471 first ingest
dwinter
parents:
diff changeset
62 }
90a19cbda471 first ingest
dwinter
parents:
diff changeset
63
90a19cbda471 first ingest
dwinter
parents:
diff changeset
64 Integer c=sum % 31;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
65 ArrayList<Character> id = new ArrayList<Character>();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
66 for (int i=0;i<7;i++){
90a19cbda471 first ingest
dwinter
parents:
diff changeset
67 id.add(i, driEncode.get(x.get(i)));
90a19cbda471 first ingest
dwinter
parents:
diff changeset
68 }
90a19cbda471 first ingest
dwinter
parents:
diff changeset
69
90a19cbda471 first ingest
dwinter
parents:
diff changeset
70 id.add(driEncode.get(c));
90a19cbda471 first ingest
dwinter
parents:
diff changeset
71
90a19cbda471 first ingest
dwinter
parents:
diff changeset
72 String ret = new String();
90a19cbda471 first ingest
dwinter
parents:
diff changeset
73 for (Character cr: id){
90a19cbda471 first ingest
dwinter
parents:
diff changeset
74 ret+=cr;
90a19cbda471 first ingest
dwinter
parents:
diff changeset
75 }
90a19cbda471 first ingest
dwinter
parents:
diff changeset
76 return new String(ret);
90a19cbda471 first ingest
dwinter
parents:
diff changeset
77
90a19cbda471 first ingest
dwinter
parents:
diff changeset
78 }
90a19cbda471 first ingest
dwinter
parents:
diff changeset
79 }