Project Report: fawkez

Packagesummary org.jcoderz.commons.logging

org.jcoderz.commons.logging.PeriodFilter

LineHitsNoteSource
1  /*
2   * $Id: PeriodFilter.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 org.jcoderz.commons.types.Period;
36  
37  /**
38   *
39   * This class implements the timestamp period filter.
40   * The method {@linkplain #isPassable(LogItem)} returns <code>true</code> if
41   * the timestamp of the given {@link org.jcoderz.commons.logging.LogItem entry}
42   * falls within of a period including in this filter.
43   *
44   */
45 (1)public class PeriodFilter
46        implements Filter
47  {
48     /**
49      * All periods to be filtered.
50      */
51     private final Period [] mPeriods;
52  
53     /**
54      * Constructor.
55      * @param periods The array of periods to be used as the filter criteria.
56      */
57     public PeriodFilter (final Period [] periods)
580    {
590(2)      mPeriods = periods;
600    }
61  
62     /** {@inheritDoc} */
63     public boolean isPassable (LogItem entry)
64     {
650       boolean result = true;
660       if (mPeriods.length > 0)
67        {
680          result = isIncluded(entry);
69        }
700       return result;
71     }
72  
73     /**
74      *
75      * @param entry The entry to test.
76      * @return true if the timestamp of supplied entry falls within of a range
77      * period used by this filter.
78      */
79     private boolean isIncluded (LogItem entry)
80     {
810       boolean result = false;
820       for (int i = 0; i < mPeriods.length; i++)
83        {
840          if (mPeriods[i].isIncluded(entry.getTimestamp()))
85           {
860             result = true;
870             break;
88           }
89        }
900       return result;
91     }
92  
93  }

Findings in this File

c (1) 45 : 0 Type Javadoc comment is missing an @author tag.
w (2) 59 : 0 new org.jcoderz.commons.logging.PeriodFilter(Period[]) may expose internal representation by storing an externally mutable object into PeriodFilter.mPeriods