package org.geoserver.rest.upload; import java.io.File; public class UniqueIDGenerator { private File myWatchedDirectory; public UniqueIDGenerator(){ } public synchronized void setWatchedFolder(File dir){ myWatchedDirectory = dir; } /** * Generate a unique identifier, allowing the caller to specify a desired * name. The desired name will be returned if available, otherwise a * variant upon it will be generated. * @param desired the desired name * @return a unique name that is as close to the desired one as possible */ public synchronized String generate(String desired){ File f = new File(myWatchedDirectory, desired); while (f.exists()){ desired = increment(desired); f = new File(myWatchedDirectory, desired); } return desired; } public String generate(){ return generate(""); } private String increment(String original){ return Long.toString(System.currentTimeMillis(),36) + original; } }