Project Report: fawkez

Packagesummary org.jcoderz.commons.logging

org.jcoderz.commons.logging.MessageIdFilter

LineHitsNoteSource
1  /*
2   * $Id: MessageIdFilter.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.logging;
34  
35  import java.util.HashSet;
36  import java.util.Set;
37  import java.util.StringTokenizer;
38  import java.util.logging.LogManager;
39  import java.util.logging.LogRecord;
40  
41  import org.jcoderz.commons.Loggable;
42  
43  
44  /**
45   * This class implements the default filter for filering the messages, which
46   * are to put onto the jms queue.
47   *
48   * @see JmsHandler
49   *
50   */
51 (1)public final class MessageIdFilter
52        extends LogFilterBase
53  {
54     /** The full qualified name of this class. */
550    private static final String CLASSNAME = MessageIdFilter.class.getName();
56  
57     private static final String HEX_PREFIX = "0x";
58     private static final int HEX_NUMBER_BASE = 16;
59  
600    private static final String JMS_MESSAGE_IDS_PROPERTY
61           = CLASSNAME + "." + "messageids";
62  
630    private final Set mMessageIds = new HashSet();
64  
65     /**
66      * Creates and configures a new isntance of this.
67      */
68     public MessageIdFilter ()
690    {
700       configure();
710    }
72  
73     /** {@inheritDoc} */
74     public boolean isLoggable (LogRecord record)
75     {
76        final boolean rc;
770       final Loggable loggable = getLoggable(record);
780       if (loggable != null
79              && mMessageIds.contains(
80                 new Integer(loggable.getLogMessageInfo().toInt())))
81        {
820          rc = true;
83        }
84        else
85        {
860          rc = false;
87        }
88  
890       return rc;
90     }
91  
92 (2)   // TODO: shouldn't this method catch a NumberFormatException?
93     private void configure ()
94     {
950       final String messageIds = LogManager.getLogManager()
96              .getProperty(JMS_MESSAGE_IDS_PROPERTY);
970       if ((messageIds != null) && (messageIds.length() > 0))
98        {
990          final StringTokenizer tokenizer
100                 = new StringTokenizer(messageIds, " ,/t");
101  
1020          while (tokenizer.hasMoreTokens())
103           {
1040             final String id = tokenizer.nextToken();
1050             if (id.startsWith(HEX_PREFIX))
106              {
1070                mMessageIds.add(Integer.valueOf(
108                       id.substring(HEX_PREFIX.length()), HEX_NUMBER_BASE));
109              }
110              else
111              {
1120                mMessageIds.add(Integer.valueOf(id));
113              }
1140          }
115        }
1160    }
117  }

Findings in this File

c (1) 51 : 0 Type Javadoc comment is missing an @author tag.
i (2) 92 : 0 Comment matches to-do format '(TODO|FIXME|CHECKME)'.