package org.scribble.sesstype.name; import org.scribble.sesstype.kind.Kind; // Simple name or qualified name public abstract class MemberName<K extends Kind> extends QualifiedName<K> { private static final long serialVersionUID = 1L; public MemberName(K kind, ModuleName modname, Name<K> membname) { super(kind, compileMemberName(modname, membname)); } public MemberName(K kind, String simplename) { super(kind, Name.compileElements(ModuleName.EMPTY_MODULENAME.getElements(), simplename)); } public ModuleName getPrefix() { return new ModuleName(getPrefixElements()); } // Similar in ModuleName private static String[] compileMemberName(ModuleName modname, Name<? extends Kind> membname) { return Name.compileElements(modname.getElements(), membname.getLastElement()); } }