/*
* Copyright (c) 2013, 2014 QNX Software Systems 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
*/
package org.eclipse.cdt.internal.qt.core.pdom;
import org.eclipse.cdt.core.dom.ILinkage;
import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.ExpansionOverlapsBoundaryException;
import org.eclipse.cdt.core.dom.ast.IASTCompletionContext;
import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
import org.eclipse.cdt.core.dom.ast.IASTImageLocation;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
import org.eclipse.cdt.core.dom.ast.IASTNodeLocation;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.IBinding;
import org.eclipse.cdt.core.parser.IToken;
/**
* The Qt linkage introduces several names that are based on names from the C++ linkage. This
* utility class is used to delegate operations to that base C++ name. Methods can be overridden
* by implementing in a subclass.
*
* @see QObjectName
*/
public abstract class ASTDelegatedName implements IASTName {
protected final IASTName delegate;
protected IBinding binding;
protected ASTDelegatedName(IASTName delegate) {
this.delegate = delegate;
}
@Override
public IASTTranslationUnit getTranslationUnit() {
return delegate.getTranslationUnit();
}
@Override
public IASTNodeLocation[] getNodeLocations() {
return delegate.getNodeLocations();
}
@Override
public IASTFileLocation getFileLocation() {
return delegate.getFileLocation();
}
@Override
public String getContainingFilename() {
return delegate.getContainingFilename();
}
@Override
public boolean isPartOfTranslationUnitFile() {
return delegate.isPartOfTranslationUnitFile();
}
@Override
public IASTNode getParent() {
return delegate.getParent();
}
@Override
public IASTNode[] getChildren() {
return delegate.getChildren();
}
@Override
public void setParent(IASTNode node) {
delegate.setParent(node);
}
@Override
public ASTNodeProperty getPropertyInParent() {
return delegate.getPropertyInParent();
}
@Override
public void setPropertyInParent(ASTNodeProperty property) {
delegate.setPropertyInParent(property);
}
@Override
public boolean accept(ASTVisitor visitor) {
return delegate.accept(visitor);
}
@Override
public String getRawSignature() {
return delegate.getRawSignature();
}
@Override
public boolean contains(IASTNode node) {
return delegate.contains(node);
}
@Override
public IToken getLeadingSyntax() throws ExpansionOverlapsBoundaryException, UnsupportedOperationException {
return delegate.getLeadingSyntax();
}
@Override
public IToken getTrailingSyntax() throws ExpansionOverlapsBoundaryException, UnsupportedOperationException {
return delegate.getTrailingSyntax();
}
@Override
public IToken getSyntax() throws ExpansionOverlapsBoundaryException {
return delegate.getSyntax();
}
@Override
public boolean isFrozen() {
return delegate.isFrozen();
}
@Override
public boolean isActive() {
return delegate.isActive();
}
@Override
public IASTNode getOriginalNode() {
return delegate.getOriginalNode();
}
@Override
public boolean isDeclaration() {
return delegate.isDeclaration();
}
@Override
public boolean isReference() {
return delegate.isReference();
}
@Override
public boolean isDefinition() {
return delegate.isDefinition();
}
@Override
public char[] getSimpleID() {
return delegate.getSimpleID();
}
@Override
public char[] toCharArray() {
return getSimpleID();
}
@Override
public char[] getLookupKey() {
return getSimpleID();
}
@Override
public IBinding getBinding() {
return binding;
}
@Override
public IBinding resolveBinding() {
return null;
}
@Override
public int getRoleOfName(boolean allowResolution) {
return delegate.getRoleOfName(allowResolution);
}
@Override
public IASTCompletionContext getCompletionContext() {
return delegate.getCompletionContext();
}
@Override
public ILinkage getLinkage() {
return delegate.getLinkage();
}
@Override
public IASTImageLocation getImageLocation() {
return delegate.getImageLocation();
}
@Override
public IASTName getLastName() {
return delegate.getLastName();
}
@Override
public IASTName copy() {
return delegate.copy();
}
@Override
public IASTName copy(CopyStyle style) {
return delegate.copy(style);
}
@Override
public void setBinding(IBinding binding) {
this.binding = binding;
}
@Override
public IBinding getPreBinding() {
return binding;
}
@Override
public IBinding resolvePreBinding() {
return resolveBinding();
}
@Override
public boolean isQualified() {
return delegate.isQualified();
}
}