package org.eclipse.dltk.internal.javascript.ti; import org.eclipse.dltk.javascript.typeinference.IValueParent; import org.eclipse.dltk.javascript.typeinference.IValueReference; import org.eclipse.dltk.javascript.typeinfo.E4XTypes; public class XMLListValue extends AbstractReference { private final Value value = new Value() { @Override public IValue getChild(String name, boolean resolve) { IValue value = super.getChild(name, resolve); if (value == null) { // if the value is not found (not a know existing child) then // just return this. // so that expression are always resolved to a XMLList value = this; } return value; }; }; private final IValueParent parent; public XMLListValue(IValueParent parent) { this.parent = parent; value.setDeclaredType(E4XTypes.XML); } public IValueReference getParent() { if (parent instanceof IValueReference) return (IValueReference) parent; return null; } public String getName() { return ""; } public void delete(boolean force) { } public boolean isReference() { return false; } @Override public IValue getValue() { return value; } @Override public IValue createValue() { return getValue(); } }