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);
		
	}
}