protected Map<String, QualifiedName> getImplicitAliases() {
   if (implicitAliases == null) {
     implicitAliases = newHashMap();
     for (final EDataType eDataType : XcoreImportedNamespaceAwareScopeProvider.IMPLICIT_ALIASES) {
       String instanceClassName = eDataType.getInstanceClassName();
       final QualifiedName actualQualifiedName =
           QualifiedName.create("org", "eclipse", "emf", "ecore", eDataType.getName());
       final QualifiedName qualifiedName = nameConverter.toQualifiedName(instanceClassName);
       implicitAliases.put(instanceClassName, actualQualifiedName);
       implicitAliases.put(qualifiedName.getLastSegment(), actualQualifiedName);
     }
   }
   return implicitAliases;
 }
  @Test
  public void testGenerateWithExpressionContext() throws Exception {
    EDataType dataType = EcorePackage.eINSTANCE.getEBigDecimal();

    EPackage pkg = helper.createPackage("tests");
    EClass clazz = helper.createClass(pkg, "NumericTests");
    helper.addAttribute(clazz, dataType, "a");

    EObject instance = helper.createInstance(clazz);

    XtextResourceSet resourceSet =
        expressionFactory.getInjector().getInstance(XtextResourceSet.class);
    Resource resource = resourceSet.createResource(URI.createURI("__synthetic.testData.expr"));
    resource.getContents().add(instance);

    // TODO could use TypeReferences getTypeForName() instead JvmTypesBuilder newTypeRef() ..

    Injector injector = expressionFactory.getInjector();
    JvmTypesBuilder jvmTypesBuilder = injector.getInstance(JvmTypesBuilder.class);
    JvmTypeReferenceBuilder.Factory factory =
        injector.getInstance(JvmTypeReferenceBuilder.Factory.class);
    JvmTypeReferenceBuilder jvmTypeReferenceBuilder =
        factory.create(instance.eResource().getResourceSet());

    JvmGenericType type = jvmTypesBuilder.toClass(instance, "tests.NumericTests");
    resource.getContents().add(type);

    JvmField field =
        jvmTypesBuilder.toField(
            instance,
            "a",
            jvmTypeReferenceBuilder.typeRef(
                dataType.getInstanceClassName() /*"java.math.BigDecimal"*/));
    field.setVisibility(JvmVisibility.PUBLIC);
    type.getMembers().add(field);

    ExpressionContext context = new ExpressionContext(resource);
    context.setType(jvmTypeReferenceBuilder.typeRef(Boolean.TYPE));
    context.addVariable("t", jvmTypeReferenceBuilder.typeRef(type));

    checkGeneration(
        "t.a == 5",
        Boolean.TYPE,
        context,
        "com.google.common.base.Objects.equal(t.a, new java.math.BigDecimal(\"5\"))");
  }