org.snapscript.tree.define.EnumName Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of snap-all Show documentation
Show all versions of snap-all Show documentation
Dynamic scripting for the JVM
package org.snapscript.tree.define;
import static java.util.Collections.EMPTY_LIST;
import java.util.List;
import org.snapscript.core.constraint.Constraint;
import org.snapscript.core.scope.Scope;
import org.snapscript.core.type.Type;
import org.snapscript.tree.NameReference;
import org.snapscript.tree.literal.TextLiteral;
public class EnumName implements TypeName {
private final NameReference reference;
public EnumName(TextLiteral literal) {
this.reference = new NameReference(literal);
}
@Override
public String getName(Scope scope) throws Exception{ // called from outer class
String name = reference.getName(scope);
Type parent = scope.getType();
if(parent != null) {
String prefix = parent.getName();
if(prefix != null) {
return prefix + '$'+name;
}
}
return name;
}
@Override
public List getGenerics(Scope scope) throws Exception {
return EMPTY_LIST;
}
}