blob: 1bf0748d24cd8e3f70b6078630634420c548ea8d [file] [log] [blame]
package org.eclipse.dltk.internal.javascript.ti;
import java.util.HashMap;
import java.util.HashSet;
public class ValueWithElementValue extends Value {
private final ElementValue elementValue;
public ValueWithElementValue(ImmutableValue value, ElementValue elementValue) {
this.elementValue = elementValue;
if (value.attributes != null)
attributes = new HashMap<String, Object>(value.attributes);
this.children.putAll(value.children);
this.declaredType = value.declaredType;
if (value.deletedChildren != null)
deletedChildren = new HashSet<String>(value.deletedChildren);
this.inherited.putAll(value.inherited);
this.kind = value.kind;
this.location = value.location;
this.references.addAll(value.references);
this.types.addAll(value.types);
}
@Override
public Object getAttribute(String key, boolean includeReferences) {
Object attribute = elementValue.getAttribute(key, includeReferences);
if (attribute == null)
attribute = super.getAttribute(key, includeReferences);
return attribute;
}
@Override
public IValue getChild(String name, boolean resolve) {
IValue child = elementValue.getChild(name, resolve);
if (child == null)
child = super.getChild(name, resolve);
return child;
}
}