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