ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/filter/plugins/EnforceEssentialData__Plugin.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/filter/plugins/EnforceEssentialData__Plugin.java (file contents):
Revision 1.1 by tdb, Wed Dec 6 22:59:29 2000 UTC vs.
Revision 1.8 by tdb, Mon Feb 12 02:23:14 2001 UTC

# Line 1 | Line 1
1 < //---PACKAGE DECLARATION---
2 < package uk.ac.ukc.iscream.filter.plugins;
3 <
4 < //---IMPORTS---
5 < import uk.ac.ukc.iscream.filter.PluginFilter;
6 < import uk.ac.ukc.iscream.util.XMLPacket;
7 <
8 < /**
9 < * A first plugin! ;-)
10 < * this one rejects packets that do not contain all of the 'essential' data.
11 < *
12 < * @author  $Author$
13 < * @version $Id$
14 < */
15 < public class EnforceEssentialData__Plugin implements PluginFilter {
16 <
17 < //---FINAL ATTRIBUTES---
18 <
19 <    /**
20 <     * The current CVS revision of this class
21 <     */
22 <    public final String REVISION = "$Revision$";
23 <    
24 <    public final String DESC = "Rejects packets that do not have an ip, machine_name, seq_no and date specified as attributes of the root packet tag.";
25 <    
26 < //---STATIC METHODS---
27 <
28 < //---CONSTRUCTORS---
29 <
30 < //---PUBLIC METHODS---
31 <
32 <    // apply the filter and return true if successful.
33 <    public boolean runFilter(XMLPacket packet){
34 <        
35 <        // return false if any of the essential data is not present.
36 <        if (packet.getParam("packet.attributes.machine_name") == null
37 <                || packet.getParam("packet.attributes.ip") == null
38 <                || packet.getParam("packet.attributes.seq_no") == null
39 <                || packet.getParam("packet.attributes.date") == null){
40 <            return false;
41 <        }
42 <        
43 <        // otherwise return true!
44 <        return true;
45 <        
46 <    }
47 <
48 <    /**
49 <     * Overrides the {@link java.lang.Object#toString() Object.toString()}
50 <     * method to provide clean logging (every class should have this).
51 <     *
52 <     * @return the name of this class and its CVS revision
53 <     */
54 <    public String toString() {
55 <        return this.getClass().getName() + "(" + REVISION.substring(11, REVISION.length() - 2) + ")";
56 <    }
57 <
58 <    // return the String representation of what the filter does
59 <    public String getDescription(){
60 <        return DESC;
61 <    }
62 <
63 < //---PRIVATE METHODS---
64 <
65 < //---ACCESSOR/MUTATOR METHODS---
66 <
67 < //---ATTRIBUTES---
68 <
69 < //---STATIC ATTRIBUTES---
70 <
71 < }
1 > //---PACKAGE DECLARATION---
2 > package uk.ac.ukc.iscream.filter.plugins;
3 >
4 > //---IMPORTS---
5 > import uk.ac.ukc.iscream.filter.PluginFilter;
6 > import uk.ac.ukc.iscream.filter.*;
7 > import uk.ac.ukc.iscream.core.*;
8 > import uk.ac.ukc.iscream.util.*;
9 > import uk.ac.ukc.iscream.componentmanager.*;
10 >
11 > /**
12 > * A first plugin! ;-)
13 > * this one rejects packets that do not contain all of the 'essential' data.
14 > *
15 > * @author  $Author$
16 > * @version $Id$
17 > */
18 > public class EnforceEssentialData__Plugin implements PluginFilter {
19 >
20 > //---FINAL ATTRIBUTES---
21 >
22 >    /**
23 >     * The current CVS revision of this class
24 >     */
25 >    public final String REVISION = "$Revision$";
26 >    
27 >    public final String DESC = "Rejects packets that do not have an ip, machine_name, seq_no, date and type specified as attributes of the root packet tag.";
28 >    
29 > //---STATIC METHODS---
30 >
31 > //---CONSTRUCTORS---
32 >
33 > //---PUBLIC METHODS---
34 >
35 >    // apply the filter and return true if successful.
36 >    public boolean runFilter(XMLPacket packet){
37 >        
38 >        // return true if a heartbeat packet seems ok
39 >        if (packet.getParam("packet.attributes.type").equals("heartbeat")
40 >                && packet.getParam("packet.attributes.date") != null
41 >                && packet.getParam("packet.attributes.ip") != null
42 >                && packet.getParam("packet.attributes.machine_name") != null){
43 >            return true;
44 >        }
45 >        
46 >        // return true if a queueStat packet seems ok
47 >        if (packet.getParam("packet.attributes.type").equals("queueStat")
48 >                && packet.getParam("packet.attributes.date") != null
49 >                && packet.getParam("packet.attributes.name") != null){
50 >            return true;
51 >        }
52 >        
53 >        // return false if any of the essential data is not present
54 >        // in a "data" packet
55 >        if (packet.getParam("packet.attributes.machine_name") == null
56 >                || packet.getParam("packet.attributes.ip") == null
57 >                || packet.getParam("packet.attributes.seq_no") == null
58 >                || packet.getParam("packet.attributes.date") == null
59 >                || packet.getParam("packet.attributes.type") == null){
60 >            return false;
61 >        }
62 >        
63 >        // otherwise return true!
64 >        return true;
65 >        
66 >    }
67 >
68 >    /**
69 >     * Overrides the {@link java.lang.Object#toString() Object.toString()}
70 >     * method to provide clean logging (every class should have this).
71 >     *
72 >     * This uses the uk.ac.ukc.iscream.util.NameFormat class
73 >     * to format the toString()
74 >     *
75 >     * @return the name of this class and its CVS revision
76 >     */
77 >    public String toString() {
78 >        return FormatName.getName(
79 >            _name,
80 >            getClass().getName(),
81 >            REVISION);
82 >    }
83 >
84 >    /**
85 >     * return the String representation of what the filter does
86 >     */
87 >    public String getDescription(){
88 >        return DESC;
89 >    }
90 >
91 > //---PRIVATE METHODS---
92 >
93 > //---ACCESSOR/MUTATOR METHODS---
94 >
95 > //---ATTRIBUTES---
96 >
97 >    /**
98 >     * This is the friendly identifier of the
99 >     * component this class is running in.
100 >     * eg, a Filter may be called "filter1",
101 >     * If this class does not have an owning
102 >     * component,  a name from the configuration
103 >     * can be placed here.  This name could also
104 >     * be changed to null for utility classes.
105 >     */
106 >    private String _name = FilterMain.NAME;
107 >
108 >    /**
109 >     * This holds a reference to the
110 >     * system logger that is being used.
111 >     */
112 >    private Logger _logger = ReferenceManager.getInstance().getLogger();
113 >
114 > //---STATIC ATTRIBUTES---
115 >
116 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines