public BackRefAttributeBinding makeBackRefAttributeBinding(
      SingularAttribute syntheticAttribute,
      PluralAttributeBinding pluralAttributeBinding,
      boolean isIndexBackRef) {
    if (!syntheticAttribute.isSynthetic()) {
      throw new AssertionFailure(
          "Illegal attempt to create synthetic attribute binding from non-synthetic attribute reference");
    }
    final BackRefAttributeBinding binding =
        new BackRefAttributeBinding(
            this, syntheticAttribute, pluralAttributeBinding, isIndexBackRef);

    registerAttributeBinding(binding);
    return binding;
  }
  public EmbeddedAttributeBinding makeVirtualCompositeAttributeBinding(
      SingularAttribute syntheticAttribute,
      EmbeddableBindingImplementor virtualEmbeddableBinding,
      MetaAttributeContext metaAttributeContext) {
    if (!syntheticAttribute.isSynthetic()) {
      throw new AssertionFailure(
          "Illegal attempt to create synthetic attribute binding from non-synthetic attribute reference");
    }

    return new EmbeddedAttributeBinding(
        this,
        syntheticAttribute,
        "embedded", // TODO: get rid of "magic" string.
        false,
        false,
        NaturalIdMutability.NOT_NATURAL_ID,
        metaAttributeContext,
        getRoleBase(),
        getPathBase(),
        virtualEmbeddableBinding);
  }