Mercurial > hg > MetaDataManager
view 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 |
line wrap: on
line source
package de.mpiwg.itgroup.metadataManager.pid; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.Random; public class PidGenerator { public String getPID() { HashMap<Integer, Character> driEncode = new HashMap<Integer, Character>(); driEncode.put(0,'0'); driEncode.put(1,'1'); driEncode.put(2,'2'); driEncode.put(3,'3'); driEncode.put(4,'4'); driEncode.put(5,'5'); driEncode.put(6,'6'); driEncode.put(7,'7'); driEncode.put(8,'8'); driEncode.put(9,'9'); driEncode.put(10,'A'); driEncode.put(11,'B'); driEncode.put(12,'C'); driEncode.put(13,'D'); driEncode.put(14,'E'); driEncode.put(15,'F'); driEncode.put(16,'G'); driEncode.put(17,'H'); driEncode.put(18,'K'); driEncode.put(19,'M'); driEncode.put(20,'N'); driEncode.put(21,'P'); driEncode.put(22,'Q'); driEncode.put(23,'R'); driEncode.put(24,'S'); driEncode.put(25,'T'); driEncode.put(26,'U'); driEncode.put(27,'V'); driEncode.put(28,'W'); driEncode.put(29,'X'); driEncode.put(30,'Y'); driEncode.put(31,'Z'); Random rd = new Random(); long mils = Calendar.getInstance().getTimeInMillis(); rd.setSeed(mils); ArrayList<Integer> x = new ArrayList<Integer>(); for (int i=0;i<7;i++) x.add(rd.nextInt(32)); Integer sum=0; for (int i=0;i<7;i++){ sum+=(i+1)*x.get(i); } Integer c=sum % 31; ArrayList<Character> id = new ArrayList<Character>(); for (int i=0;i<7;i++){ id.add(i, driEncode.get(x.get(i))); } id.add(driEncode.get(c)); String ret = new String(); for (Character cr: id){ ret+=cr; } return new String(ret); } }