EMMA Coverage Report (generated Mon Mar 20 21:27:43 EST 2006)
[all classes][com.webhydra.slug.process]

COVERAGE SUMMARY FOR SOURCE FILE [PidGenerator.java]

nameclass, %method, %block, %line, %
PidGenerator.java100% (1/1)100% (4/4)100% (35/35)100% (6/6)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class PidGenerator100% (1/1)100% (4/4)100% (35/35)100% (6/6)
<static initializer> 100% (1/1)100% (3/3)100% (1/1)
PidGenerator (): void 100% (1/1)100% (3/3)100% (1/1)
getNextPidExtension (): long 100% (1/1)100% (14/14)100% (3/3)
newPid (): String 100% (1/1)100% (15/15)100% (1/1)

1/*
2 * @(#) $Id: PidGenerator.java,v 1.1.1.1 2006/03/19 06:09:42 rossen Exp $
3 *
4 * Copyright (c) 2006, WebHydra.com
5 * All rights reserved.
6 * 
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 * 
10 *     * Redistributions of source code must retain the above copyright notice,
11 *       this list of conditions and the following disclaimer.
12 *     * Redistributions in binary form must reproduce the above copyright
13 *       notice, this list of conditions and the following disclaimer in the
14 *       documentation and/or other materials provided with the distribution.
15 *     * Neither the name of the WebHydra.com nor the names of its contributors
16 *       may be used to endorse or promote products derived from this software
17 *       without specific prior written permission.
18 * 
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31 
32package com.webhydra.slug.process;
33 
34import java.util.Date;
35 
36/**
37 * Unique <code>PID</code> generator.
38 * @author rossen
39 */
40public class PidGenerator {
41 
42    /** Holds next <code>PID</code> sequence extension value. */
43    static protected long nexPidSeq = 0;
44 
45    /** Paer separatirs in the generated <code>PID</code>s.
46     */
47    public static final char SEPARATOR = ':';
48 
49    /** Generate next <code>PID</code>
50     * @return next <code>PID</code> sequence.
51     */
52    private static synchronized long getNextPidExtension()
53    {
54        long newPid = nexPidSeq;
55        nexPidSeq = (nexPidSeq == Long.MAX_VALUE) ? 0 : nexPidSeq + 1;
56        return newPid;
57    }
58 
59    /**
60     * Generate new unique <code>PID</code>
61     * @return new unique <code>PID</code>.
62     */
63    public static String newPid()
64    {
65        return Long.toString(new Date().getTime()) + SEPARATOR + getNextPidExtension();
66    }
67 
68}

[all classes][com.webhydra.slug.process]
EMMA 2.0.5312 (C) Vladimir Roubtsov