/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser.expressions; import gw.internal.gosu.parser.Expression; import gw.lang.parser.Keyword; import gw.lang.parser.statements.IInterfacesClause; import gw.lang.reflect.IType; public class InterfacesClause extends Expression implements IInterfacesClause { private IType _subType; private IType[] _interfaces; public InterfacesClause( IType subType, IType[] interfaces ) { _subType = subType; _interfaces = interfaces; } public IType[] getInterfaces() { return _interfaces; } public Object evaluate() { return null; // Nothing to do } @Override public String toString() { StringBuilder sb = new StringBuilder( (_subType.isInterface() ? Keyword.KW_extends : Keyword.KW_implements) + " " ); boolean bFirst = true; for( IType iface : _interfaces ) { if( !bFirst ) { sb.append( ", " ); } bFirst = false; sb.append( iface.getName() ); } return sb.toString(); } }