InternedString (final DependencyContext context, final int val) { return new InternedString() { @Override public @NotNull DependencyContext getContext() { return context; } @Override public int asInt() { return val; } @Override public String asString() { return getContext().getValue(val); } }; }