KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > core > comp > ElementFactory


1 /*
2  * Copyright (C) 2003 Christian Cryder [christianc@granitepeaks.com]
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * $Id: ElementFactory.java,v 1.5 2004/02/01 05:16:27 christianc Exp $
19  */

20 package org.enhydra.barracuda.core.comp;
21
22 import java.util.*;
23 import org.w3c.dom.*;
24
25 /**
26  * This interface defines the methods needed to implement a ListModel.
27  */

28 public interface ElementFactory {
29
30     /**
31      * Get the default template element. Once you get the template, you should
32      * always do a cloneNode() on it and then modify the newly created
33      * copy. May return null if no suitable template is available.
34      *
35      * @return the default template node.
36      */

37     public Node getDefaultElement();
38
39     /**
40      * Get a template element for the key. The key value may be a fully qualified
41      * class or interface name, or it may be the tag name that corresponds to
42      * that template. Once you get the template, you should always do a
43      * cloneNode() on it and then modify the copy. May return null if no suitable
44      * template is available.
45      *
46      * @param key the target key value
47      * @return the default template node.
48      */

49     public Node getElement(String JavaDoc key);
50
51     /**
52      * Get a list of all the keys for a given template.
53      *
54      * @return a list of all the keys for a given template.
55      */

56     public List getElementKeys();
57
58     /**
59      * Get an actual reference to the Document so you can create whatever
60      * type of node you wish. This is the least preferred approach to use
61      * for creating nodes from a TemplateFactory, because by using the
62      * Document to create nodes you will lose any additional markup (ie.
63      * color, font, emphasis, etc) contained in the template for this
64      * particular node.
65      *
66      * @return the owner document
67      */

68     public Document getDocument();
69
70 }
Popular Tags