01: package com.meterware.httpunit;
02:
03: /********************************************************************************************************************
04: * $Id: HTMLElement.java,v 1.7 2004/10/29 00:41:24 russgold Exp $
05: *
06: * Copyright (c) 2002-2004, Russell Gold
07: *
08: * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
09: * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
10: * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
11: * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all copies or substantial portions
14: * of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
17: * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19: * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20: * DEALINGS IN THE SOFTWARE.
21: *
22: *******************************************************************************************************************/
23: import com.meterware.httpunit.scripting.ScriptableDelegate;
24:
25: /**
26: * An interface which defines the common properties for an HTML element, which can correspond to any HTML tag.
27: *
28: * @since 1.5.2
29: * @author <a href="mailto:russgold@httpunit.org">Russell Gold</a>
30: **/
31: public interface HTMLElement {
32:
33: /**
34: * Returns the ID associated with this element. IDs are unique throughout the HTML document.
35: **/
36: String getID();
37:
38: /**
39: * Returns the class associated with this element.
40: **/
41: String getClassName();
42:
43: /**
44: * Returns the name associated with this element.
45: **/
46: String getName();
47:
48: /**
49: * Returns the title associated with this element.
50: **/
51: String getTitle();
52:
53: /**
54: * Returns the value of the attribute of this element with the specified name.
55: * Returns the empty string if no such attribute exists.
56: *
57: * @since 1.6
58: */
59: String getAttribute(String name);
60:
61: /**
62: * Returns true if this element may have an attribute with the specified name.
63: *
64: * @since 1.6
65: */
66: boolean isSupportedAttribute(String name);
67:
68: /**
69: * Returns the delegate which supports scripting this element.
70: */
71: ScriptableDelegate getScriptableDelegate();
72:
73: /**
74: * Returns the contents of this element, converted to a string.
75: *
76: * @since 1.6
77: */
78: String getText();
79:
80: /**
81: * Returns the tag name of this node.
82: *
83: * @since 1.6.1
84: */
85: String getTagName();
86: }
|