KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > crawler > settings > LegalValueListConstraint


1 /*
2  * legalValueListConstraint
3  *
4  * $Id: LegalValueListConstraint.java,v 1.2.28.1 2007/01/13 01:31:27 stack-sf Exp $
5  *
6  * Created on Mar 30, 2004
7  *
8  * Copyright (C) 2004 Internet Archive.
9  *
10  * This file is part of the Heritrix web crawler (crawler.archive.org).
11  *
12  * Heritrix is free software; you can redistribute it and/or modify it under the
13  * terms of the GNU Lesser Public License as published by the Free Software
14  * Foundation; either version 2.1 of the License, or any later version.
15  *
16  * Heritrix is distributed in the hope that it will be useful, but WITHOUT ANY
17  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
18  * A PARTICULAR PURPOSE. See the GNU Lesser Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser Public License along with
21  * Heritrix; if not, write to the Free Software Foundation, Inc., 59 Temple
22  * Place, Suite 330, Boston, MA 02111-1307 USA
23  */

24 package org.archive.crawler.settings;
25
26 import java.util.logging.Level JavaDoc;
27
28 /**
29  * A constraint that checks that an attribute value matches one of the items in
30  * the list of legal values.
31  *
32  * @author John Erik Halse
33  */

34 public class LegalValueListConstraint extends Constraint {
35
36     private static final long serialVersionUID = -4293290799574408033L;
37
38     /**
39      * Constructs a new LegalValueListConstraint.
40      *
41      * @param level the severity level.
42      * @param msg the default error message.
43      */

44     public LegalValueListConstraint(Level JavaDoc level, String JavaDoc msg) {
45         super(level, msg);
46     }
47
48     /**
49      * Constructs a new LegalValueListConstraint using default severity level
50      * ({@link Level#WARNING}).
51      *
52      * @param msg the default error message.
53      */

54     public LegalValueListConstraint(String JavaDoc msg) {
55         this(Level.WARNING, msg);
56     }
57
58     /**
59      * Constructs a new LegalValueListConstraint using default error message.
60      *
61      * @param level
62      */

63     public LegalValueListConstraint(Level JavaDoc level) {
64         this(level, "Value not in legal values list");
65     }
66
67     /**
68      * Constructs a new LegalValueListConstraint using default severity level
69      * ({@link Level#WARNING}) and default error message.
70      *
71      */

72     public LegalValueListConstraint() {
73         this(Level.WARNING);
74     }
75
76     /*
77      * (non-Javadoc)
78      *
79      * @see org.archive.crawler.settings.Constraint#innerCheck(org.archive.crawler.settings.Type,
80      * java.lang.Object)
81      */

82     public FailedCheck innerCheck(CrawlerSettings settings, ComplexType owner,
83             Type definition,
84             Object JavaDoc value) {
85         FailedCheck res = null;
86
87         // If this attribute is constrained by a list of legal values,
88
// check that the value is in that list
89
Object JavaDoc legalValues[] = definition.getLegalValues();
90         if (legalValues != null) {
91             boolean found = false;
92             for (int i = 0; i < legalValues.length && !found; i++) {
93                 if (legalValues[i].equals(value)) {
94                     found = true;
95                 }
96             }
97             if (!found) {
98                 res = new FailedCheck(settings, owner, definition, value);
99             }
100         }
101         return res;
102     }
103
104 }
Popular Tags