1e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/******************************************************************************* 2398ee59bebad6835dab57b60157eff16d511709eMarc R. Hoffmann * Copyright (c) 2009, 2015 Mountainminds GmbH & Co. KG and Contributors 3e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * All rights reserved. This program and the accompanying materials 4e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * are made available under the terms of the Eclipse Public License v1.0 5e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * which accompanies this distribution, and is available at 6e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * http://www.eclipse.org/legal/epl-v10.html 7e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 8e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Contributors: 9e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Marc R. Hoffmann - initial API and implementation 10e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 11e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov *******************************************************************************/ 12e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpackage org.jacoco.core.runtime; 13e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 14e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport java.util.Random; 15e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 16e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/** 17e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Base {@link IRuntime} implementation. 18e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov */ 19e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpublic abstract class AbstractRuntime implements IRuntime { 20e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 2127e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann /** access to the runtime data */ 2227e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann protected RuntimeData data; 23e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 2427e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann /** 2527e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann * Subclasses must call this method when overwriting it. 2627e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann */ 2727e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann public void startup(final RuntimeData data) throws Exception { 2827e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann this.data = data; 2927e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann } 3027e32e433ba0ac1fdec9290d3454d5b369c969ccMarc R. Hoffmann 31e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov private static final Random RANDOM = new Random(); 32e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 33e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov /** 34e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Creates a random session identifier. 35e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 36e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * @return random session identifier 37e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov */ 38e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public static String createRandomId() { 39e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return Integer.toHexString(RANDOM.nextInt()); 40e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 41e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 42e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov} 43