/* JavaScript.java
Purpose:
Description:
History:
Thu Aug 11 15:29:37 2005, Created by tomyeh
Copyright (C) 2005 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 3.0 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.html;
import org.zkoss.lang.Objects;
/**
* Represents a javascript element.
*
* @author tomyeh
* @since 6.0.0
*/
public class JavaScript {
private final String _src, _charset, _content;
/** Creates by specifying the file to contain the JavaScript codes.
*
* @param src URI of the file containing the JavaScript codes.
* @param charset the charset. If null, "UTF-8" is assumed.
*/
public JavaScript(String src, String charset) {
if (src == null)
throw new IllegalArgumentException("null src");
if (charset == null || charset.length() == 0)
charset = "UTF-8";
_src = src;
_charset = charset;
_content = null;
}
/** Creates by assigning the content (JavaScript codes).
*
* @param content the JavaScript codes.
*/
public JavaScript(String content) {
if (content == null)
throw new IllegalArgumentException("null content");
_src = _charset = null;
_content = content;
}
/** Returns the URI of the file containing the JavaScript codes,
* or null if {@link #getContent} is not null.
*/
public String getSrc() {
return _src;
}
/** Returns the charset, or null if {@link #getContent} is not null. */
public String getCharset() {
return _charset;
}
/** Returns the JavaScript codes, or null if {@link #getSrc} is not null.
*/
public String getContent() {
return _content;
}
//-- Object --//
public String toString() {
return "[src: "+_src+" charset="+_charset+']';
}
public int hashCode() {
return Objects.hashCode(_src) + Objects.hashCode(_content);
}
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof JavaScript))
return false;
final JavaScript js = (JavaScript)o;
return Objects.equals(js._src, _src)
&& Objects.equals(js._charset, _charset)
&& Objects.equals(js._content, _content);
}
}