Mercurial Hosting > nabble
view src/nabble/naml/compiler/Usage.java @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.naml.compiler; import java.util.Arrays; import java.util.List; import fschmidt.util.java.Interner; public final class Usage { private final GenericNamespace[] base; private final List<Macro> macroPath; Usage(GenericNamespace[] base,List<Macro> macroPath) { this.base = base; this.macroPath = macroPath; } public String[] baseIds() { String[] a = new String[base.length]; for( int i=0; i<base.length; i++ ) { a[i] = base[i].getId(); } return a; } public List<Macro> macroPath() { return macroPath; } @Override public boolean equals(Object obj) { if( !(obj instanceof Usage) ) return false; Usage t = (Usage)obj; return Arrays.equals(t.base,base) && t.macroPath.equals(macroPath); } @Override public int hashCode() { int hash = Arrays.hashCode(base); hash = 31*hash + macroPath.hashCode(); return hash; } private static final Interner<Usage> interner = new Interner<Usage>(); Usage intern() { return interner.intern(this); } }