/******************************************************************************* * Copyright (c) 2004, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.wst.css.core.internal.document; import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.util.CSSUtil; /** * */ class CSSCharsetRuleImpl extends CSSRuleImpl implements ICSSCharsetRule { /** * */ CSSCharsetRuleImpl() { super(); } CSSCharsetRuleImpl(CSSCharsetRuleImpl that) { super(that); } public ICSSNode cloneNode(boolean deep) { CSSCharsetRuleImpl cloned = new CSSCharsetRuleImpl(this); return cloned; } /** * The encoding information used in this <code>@charset</code> rule. * @exception org.w3c.dom.DOMException * SYNTAX_ERR: Raised if the specified encoding value has a * syntax error and is unparsable. <br> * NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding * rule is readonly. */ public String getEncoding() { return CSSUtil.extractStringContents(getAttribute(ENCODING)); } /** * @return short */ public short getNodeType() { return CHARSETRULE_NODE; } /** * The type of the rule, as defined above. The expectation is that * binding-specific casting methods can be used to cast down from an * instance of the <code>CSSRule</code> interface to the specific * derived interface implied by the <code>type</code>. */ public short getType() { return CHARSET_RULE; } public void setEncoding(String encoding) throws org.w3c.dom.DOMException { String quote = CSSCorePlugin.getDefault().getPluginPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE); String enc = CSSUtil.extractStringContents(encoding); quote = CSSUtil.detectQuote(enc, quote); setAttribute(ENCODING, quote + enc + quote); } }