blob: 471b4523766a79c49e7b813407024ec4f6946f2d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 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.provisional.document.ICSSAttr;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSNamedNodeMap;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
/**
*
*/
class CSSAttrImpl extends CSSRegionContainer implements ICSSAttr {
private String fName = null;
private String fValue = null;
private CSSNodeImpl ownerCSSNode = null;
CSSAttrImpl(CSSAttrImpl that) {
super(that);
this.fName = that.fName;
this.setValue(that.fValue);
}
/**
* CSSAttr constructor comment.
*/
CSSAttrImpl(String name) {
super();
this.fName = name;
}
public ICSSNode cloneNode(boolean deep) {
return new CSSAttrImpl(this);
}
/**
* @return org.eclipse.wst.css.core.model.interfaces.ICSSNamedNodeMap
*/
public ICSSNamedNodeMap getAttributes() {
return null;
}
/**
* @return java.lang.String
*/
public java.lang.String getName() {
return fName;
}
/**
* @return short
*/
public short getNodeType() {
return ATTR_NODE;
}
public ICSSNode getOwnerCSSNode() {
return ownerCSSNode;
}
/**
* @return java.lang.String
*/
public java.lang.String getValue() {
return fValue;
}
/**
* @return boolean
* @param name
* java.lang.String
*/
protected boolean matchName(String name) {
if (name == null)
return /* (this.name == null) */false;
if (this.fName == null)
return false;
return this.fName.equals(name);
}
/**
*
*/
protected void notifyValueChanged(String oldValue) {
if (this.ownerCSSNode == null)
return;
// for model
ICSSDocument doc = ownerCSSNode.getContainerDocument();
if (doc == null)
return;
CSSModelImpl model = (CSSModelImpl) doc.getModel();
if (model == null)
return;
model.valueChanged(this, oldValue);
// for adapters
String value = getValue();
this.ownerCSSNode.notify(CHANGE, this, oldValue, value, this.ownerCSSNode.getStartOffset());
}
/**
* @param newName
* java.lang.String
*/
protected void setName(java.lang.String newName) {
fName = newName;
}
protected void setOwnerCSSNode(CSSNodeImpl newOwnerCSSNode) {
ownerCSSNode = newOwnerCSSNode;
}
/**
* @param newValue
* java.lang.String
*/
public void setValue(java.lang.String newValue) {
String oldValue = fValue;
fValue = newValue;
notifyValueChanged(oldValue);
}
}