blob: f84c74ab7f7dc0b29aff9858e03d88c641bf802e [file] [log] [blame]
/********************************************************************
* Copyright (c) 2010 Contributors. 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://eclipse.org/legal/epl-v10.html
*
* Contributors: Nieraj Singh - initial implementation
*******************************************************************/
package org.aspectj.org.eclipse.jdt.core.dom;
import java.util.List;
public class FormalBinding extends Type {
private Type type;
private String binding;
/**
*
* @param type
* must not be null
* @param binding
* must not be null
* @param ast
* must not be null
*/
public FormalBinding(Type type, String binding, AST ast) {
super(ast);
}
public Type getType() {
return type;
}
public String getBinding() {
return binding;
}
@Override
List<?> internalStructuralPropertiesForType(int apiLevel) {
return null;
}
@Override
int getNodeType0() {
return 0;
}
@Override
boolean subtreeMatch0(ASTMatcher matcher, Object other) {
if (matcher instanceof AjASTMatcher) {
return ((AjASTMatcher) matcher).match(this, other);
}
return false;
}
@Override
ASTNode clone0(AST target) {
ASTNode node = new FormalBinding((Type) getType().clone(target),
getBinding(), target);
node.setSourceRange(getStartPosition(), getLength());
return node;
}
@Override
void accept0(ASTVisitor visitor) {
if (visitor instanceof AjASTVisitor) {
boolean visited = ((AjASTVisitor) visitor).visit(this);
if (visited) {
((AjASTVisitor) visitor).visit(getType());
}
((AjASTVisitor) visitor).endVisit(this);
}
}
@Override
int treeSize() {
return getType().treeSize();
}
@Override
int memSize() {
return BASE_NODE_SIZE + (3 * 4) + getType().memSize();
}
}