private ReferenceComponentMapping CreateInstance() { var property = new DummyPropertyInfo("ComponentProperty", typeof(ComponentTarget)).ToMember(); var instance = new ReferenceComponentMapping(ComponentType.Component, property, typeof(ComponentTarget), typeof(Target), null); instance.AssociateExternalMapping(new ExternalComponentMapping(ComponentType.Component)); return instance; }
public override void ProcessComponent(ReferenceComponentMapping mapping) { var providers = componentProviders.Where(x => x.Type == mapping.Type); if (!providers.Any()) throw new MissingExternalComponentException(mapping.Type, mapping.ContainingEntityType, mapping.Member); if (providers.Count() > 1) throw new AmbiguousComponentReferenceException(mapping.Type, mapping.ContainingEntityType, mapping.Member); mapping.AssociateExternalMapping(providers.Single().GetComponentMapping()); }
public override void ProcessComponent(ReferenceComponentMapping mapping) { var context = new ComponentResolutionContext { ComponentType = mapping.Type, ComponentMember = mapping.Member, EntityType = mapping.ContainingEntityType }; var component = resolvers .Select(x => x.Resolve(context, componentProviders)) .FirstOrDefault(x => x != null); if (component == null) throw new MissingExternalComponentException(mapping.Type, mapping.ContainingEntityType, mapping.Member); mapping.AssociateExternalMapping(component); mapping.MergedModel.AcceptVisitor(this); }
public override void establish_context() { visitor = new ComponentColumnPrefixVisitor(); reference_with_a_prefix = new ReferenceComponentMapping(new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), column_prefix); reference_with_a_prefix.AssociateExternalMapping(new ExternalComponentMapping()); reference_without_a_prefix = new ReferenceComponentMapping(new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), null); var external_mapping = new ExternalComponentMapping(); external_mapping.AddProperty(property_with_column("propertyColumn")); reference_without_a_prefix.AssociateExternalMapping(external_mapping); }
public override void establish_context() { visitor = new ComponentColumnPrefixVisitor(); reference_with_a_prefix = new ReferenceComponentMapping(new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), column_prefix); var external_mapping = new ExternalComponentMapping(); external_mapping.AddAny(any_with_column("anyColumn")); external_mapping.AddCollection(collection_with_column("collectionColumn")); var component = new ComponentMapping(); component.AddProperty(property_with_column("componentPropertyColumn")); external_mapping.AddComponent(component); external_mapping.AddProperty(property_with_column("propertyColumn")); external_mapping.AddReference(reference_with_column("referenceColumn")); reference_with_a_prefix.AssociateExternalMapping(external_mapping); }
public override void establish_context() { visitor = new ComponentColumnPrefixVisitor(); reference_with_a_prefix = new ReferenceComponentMapping(new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), first_prefix); reference_with_a_prefix.AssociateExternalMapping(new ExternalComponentMapping()); var sub_component = new ReferenceComponentMapping(new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), second_prefix); var sub_component_mapping = new ExternalComponentMapping(); sub_component_mapping.AddProperty(property_with_column("propertyColumn")); sub_component.AssociateExternalMapping(sub_component_mapping); reference_with_a_prefix.AssociateExternalMapping(new ExternalComponentMapping()); reference_with_a_prefix.AddComponent(sub_component); }