/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl;
import gw.internal.gosu.parser.IGosuAnnotation;
import gw.lang.parser.GlobalScope;
import gw.lang.parser.ICapturedSymbol;
import gw.lang.parser.IExpression;
import gw.lang.parser.IInjectedSymbol;
import gw.lang.parser.IReducedSymbol;
import gw.lang.parser.IScope;
import gw.lang.parser.IScriptPartId;
import gw.lang.parser.ISymbol;
import gw.lang.parser.ISymbolTable;
import gw.lang.reflect.IModifierInfo;
import gw.lang.reflect.IType;
import gw.lang.reflect.gs.IGosuClass;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class InjectedSymbol implements ISymbol, IInjectedSymbol {
private final ISymbol symbol;
public InjectedSymbol(ISymbol symbol) {
this.symbol = symbol;
}
@NotNull
@Override
public ISymbol getLightWeightReference() {
return this;
}
@Override
public String getName() {
return symbol.getName();
}
@Override
public String getDisplayName() {
return symbol.getDisplayName();
}
@Override
public IType getType() {
return symbol.getType();
}
@Override
public void setType(IType type) {
symbol.setType(type);
}
@Override
public Object getValue() {
return symbol.getValue();
}
@Override
public void setValue(Object value) {
symbol.setValue(value);
}
@Override
public IExpression getDefaultValueExpression() {
return symbol.getDefaultValueExpression();
}
@Override
public void setDefaultValueExpression(IExpression defaultValue) {
symbol.setDefaultValueExpression(defaultValue);
}
@Override
public void setDynamicSymbolTable(ISymbolTable symTable) {
symbol.setDynamicSymbolTable(symTable);
}
@Override
public boolean hasDynamicSymbolTable() {
return symbol.hasDynamicSymbolTable();
}
@Override
public ISymbolTable getDynamicSymbolTable() {
return symbol.getDynamicSymbolTable();
}
@Override
public boolean isWritable() {
return symbol.isWritable();
}
@Override
public void setValueIsBoxed(boolean b) {
symbol.setValueIsBoxed(b);
}
@Override
public int getIndex() {
return symbol.getIndex();
}
@Override
public boolean canBeCaptured() {
return symbol.canBeCaptured();
}
@Override
public ICapturedSymbol makeCapturedSymbol( String strName, ISymbolTable symbolTable, IScope scope) {
return symbol.makeCapturedSymbol(strName, symbolTable, scope);
}
@Override
public boolean isValueBoxed() {
return symbol.isValueBoxed();
}
@Override
public boolean isLocal() {
return symbol.isLocal();
}
@Override
public IModifierInfo getModifierInfo() {
return symbol.getModifierInfo();
}
@Override
public IReducedSymbol createReducedSymbol() {
return symbol.createReducedSymbol();
}
@Override
public boolean isStatic() {
return symbol.isStatic();
}
@Override
public int getModifiers() {
return symbol.getModifiers();
}
@Override
public List<IGosuAnnotation> getAnnotations() {
return symbol.getAnnotations();
}
@Override
public String getFullDescription() {
return symbol.getFullDescription();
}
@Override
public boolean isPrivate() {
return symbol.isPrivate();
}
@Override
public boolean isInternal() {
return symbol.isInternal();
}
@Override
public boolean isProtected() {
return symbol.isProtected();
}
@Override
public boolean isPublic() {
return symbol.isPublic();
}
@Override
public boolean isAbstract() {
return symbol.isAbstract();
}
@Override
public boolean isFinal() {
return symbol.isFinal();
}
@Override
public IScriptPartId getScriptPart() {
return symbol.getScriptPart();
}
@Override
public IGosuClass getGosuClass() {
return symbol.getGosuClass();
}
@Override
public boolean hasTypeVariables() {
return symbol.hasTypeVariables();
}
@Override
public Class<?> getSymbolClass() {
return symbol.getSymbolClass();
}
@Override
public GlobalScope getScope() {
return symbol.getScope();
}
}