buildframework/helium/sf/java/signaling/src/com/nokia/helium/signal/SignalStatusList.java
author wbernard
Fri, 13 Aug 2010 14:59:05 +0300
changeset 628 7c4a911dc066
parent 587 85df38eb4012
permissions -rw-r--r--
helium_11.0.0-e00f171ca185
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     1
/*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     2
* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     3
* All rights reserved.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     4
* This component and the accompanying materials are made available
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     6
* which accompanies this distribution, and is available
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     8
*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
     9
* Initial Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    11
*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    12
* Contributors:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    13
*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    14
* Description:  
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    15
*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    16
*/
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    17
package com.nokia.helium.signal;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    18
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    19
import java.util.Vector;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    20
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    21
import org.apache.log4j.Logger;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    22
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    23
/**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    24
 * This class implements at storage for SignalStatus object.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    25
 * It cannot be instantiated, it must be used through the typed list:
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    26
 * getDeferredSignalList, getNowSignalList, getNeverSignalList
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    27
 *
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    28
 */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    29
public final class SignalStatusList {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    30
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    31
    private static SignalStatusList deferSignalList = new SignalStatusList();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    32
    private static SignalStatusList nowSignalList = new SignalStatusList();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    33
    private static SignalStatusList neverSignalList = new SignalStatusList();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    34
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    35
    private Vector<SignalStatus> signals = new Vector<SignalStatus>();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    36
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    37
    private Logger log = Logger.getLogger(this.getClass());
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    38
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    39
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    40
    private SignalStatusList() { }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    41
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    42
    /**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    43
     * Get the list of stored SignalStatus object.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    44
     * @return a Vector of SignalStatus instances.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    45
     */
628
7c4a911dc066 helium_11.0.0-e00f171ca185
wbernard
parents: 587
diff changeset
    46
    public Vector<SignalStatus> getSignalStatusList() {
587
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    47
        return new Vector<SignalStatus>(signals);
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    48
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    49
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    50
    /**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    51
     * Add a SignalStatus object to the list.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    52
     * 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    53
     * @param status
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    54
     *            a signal
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    55
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    56
    public void addSignalStatus(SignalStatus status) {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    57
        log.debug("SignalStatusList:addSignalStatus:msg:" + status);
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    58
        signals.add(status);
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    59
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    60
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    61
    /**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    62
     * Converts the error list into a user readable message.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    63
     * 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    64
     * @return the error message.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    65
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    66
    public String getErrorMsg() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    67
        StringBuffer statusBuffer = new StringBuffer();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    68
        for (SignalStatus signalStatus : signals) {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    69
            statusBuffer.append(signalStatus);
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    70
            statusBuffer.append("\n");
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    71
        }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    72
        log.debug("getErrorMsg:msg:" + statusBuffer.toString());
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    73
        return statusBuffer.toString();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    74
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    75
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    76
    /**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    77
     * Check if it has any pending signals stored.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    78
     * 
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    79
     * @return true if any signal are pending.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    80
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    81
    public boolean hasSignalInList() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    82
        log.debug("asDeferMsgInList:size:"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    83
                + signals.size());
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    84
        return signals.size() > 0;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    85
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    86
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    87
    /**
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    88
     * Clear all deferred signals.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    89
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    90
    public void clearStatusList() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    91
        log.debug("clearStatusList:size1:"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    92
                + signals.size());
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    93
        signals.clear();
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    94
        log.debug("clearStatusList:size2:"
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    95
                + signals.size());
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    96
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    97
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    98
    /*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
    99
     * Returns the deferred signal list.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   100
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   101
    public static SignalStatusList getDeferredSignalList() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   102
        return deferSignalList;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   103
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   104
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   105
    /*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   106
     * Returns the now signal list.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   107
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   108
    public static SignalStatusList getNowSignalList() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   109
        return nowSignalList;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   110
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   111
    
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   112
    /*
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   113
     * Returns the never signal list.
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   114
     */
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   115
    public static SignalStatusList getNeverSignalList() {
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   116
        return neverSignalList;
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   117
    }
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   118
85df38eb4012 helium_9.0-a7879c935424
wbernard
parents:
diff changeset
   119
}