/******************************************************************************* * Copyright (c) 2011, 2014 EclipseSource and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.fileupload.internal; import static org.eclipse.rap.rwt.SingletonUtil.getUniqueInstance; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.eclipse.rap.fileupload.FileUploadHandler; import org.eclipse.rap.rwt.RWT; public final class FileUploadHandlerStore { private final Map<String, FileUploadHandler> handlers; private FileUploadHandlerStore() { handlers = Collections.synchronizedMap( new HashMap<String, FileUploadHandler>() ); RWT.getServiceManager().registerServiceHandler( FileUploadServiceHandler.SERVICE_HANDLER_ID, new FileUploadServiceHandler() ); } public static FileUploadHandlerStore getInstance() { return getUniqueInstance( FileUploadHandlerStore.class, RWT.getApplicationContext() ); } public void registerHandler( String token, FileUploadHandler fileUploadHandler ) { handlers.put( token, fileUploadHandler ); } public void deregisterHandler( String token ) { handlers.remove( token ); } public FileUploadHandler getHandler( String token ) { return handlers.get( token ); } public static String createToken() { int random1 = ( int )( Math.random() * 0xfffffff ); int random2 = ( int )( Math.random() * 0xfffffff ); return Integer.toHexString( random1 ) + Integer.toHexString( random2 ); } }