KickJava   Java API By Example, From Geeks To Geeks.

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


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

25 package org.archive.crawler.settings;
26
27 import java.util.List JavaDoc;
28
29 import javax.management.InvalidAttributeValueException JavaDoc;
30
31 /**
32  * Superclass of all modules that should be configurable.
33  *
34  * @author John Erik Halse
35  */

36 public class ModuleType extends ComplexType {
37
38     private static final long serialVersionUID = 3686678928531236811L;
39
40     /** Creates a new ModuleType.
41      *
42      * This constructor is made to help implementors of subclasses. It is an
43      * requirement that subclasses at the very least implements a constructor
44      * that takes only the name as an argument.
45      *
46      * @param name the name of the module.
47      * @param description the description of the module.
48      */

49     public ModuleType(String JavaDoc name, String JavaDoc description) {
50         super(name, description);
51     }
52
53     /** Every subclass should implement this constructor
54      *
55      * @param name of the module
56      */

57     public ModuleType(String JavaDoc name) {
58         super(name, name);
59     }
60
61     public Type addElement(CrawlerSettings settings, Type type)
62             throws InvalidAttributeValueException JavaDoc {
63         if (isInitialized()) {
64             throw new IllegalStateException JavaDoc(
65                     "Not allowed to add elements to modules after"
66                             + " initialization. (Module: " + getName()
67                             + ", Element: " + type.getName() + ", Settings: "
68                             + settings.getName() + " (" + settings.getScope()
69                             + ")");
70         }
71         return super.addElement(settings, type);
72     }
73
74     /**
75      * Those Modules that use files on disk should list them all when this
76      * method is called.
77      *
78      * <p>Each file (as a string name with full path) should be added to the
79      * provided list.
80      *
81      * <p>Modules that do not use any files can safely ignore this method.
82      *
83      * @param list The list to add files to.
84      */

85     protected void listUsedFiles(List JavaDoc<String JavaDoc> list){
86         // By default do nothing
87
}
88 }
Popular Tags