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 void Map(ClassMappingBase classMap, Member member) { // don't map the component here, mark it as a reference which'll // allow us to integrate with ComponentMap or automap at a later // stage var mapping = new ReferenceComponentMapping(ComponentType.Component, member, member.PropertyType, classMap.Type, cfg.GetComponentColumnPrefix(member)); classMap.AddComponent(mapping); }
public override void establish_context() { externalComponentMapping = new ExternalComponentMapping(ComponentType.Component); externalComponentMapping.Set(x => x.Type, Layer.Defaults, typeof(ComponentTarget)); var externalComponent = Stub<IExternalComponentMappingProvider>.Create(cfg => cfg.Stub(x => x.GetComponentMapping()).Return(externalComponentMapping)); visitor = new ComponentReferenceResolutionVisitor(new [] { new ComponentMapComponentReferenceResolver() }, new[] { externalComponent }); referenceComponentMapping = new ReferenceComponentMapping(ComponentType.Component, null, null, null, null); }
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 establish_context() { externalComponentMapping = new ExternalComponentMapping(ComponentType.Component); externalComponentMapping.Set(x => x.Type, Layer.Defaults, typeof(ComponentTarget)); var externalComponent = A.Fake<IExternalComponentMappingProvider>(); A.CallTo(() => externalComponent.GetComponentMapping()).Returns(externalComponentMapping); A.CallTo(() => externalComponent.Type).Returns(null); visitor = new ComponentReferenceResolutionVisitor(new[] { new ComponentMapComponentReferenceResolver() }, new[] { externalComponent }); referenceComponentMapping = new ReferenceComponentMapping(ComponentType.Component, null, null, null, null); }
public bool Equals(ReferenceComponentMapping other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(Equals(other.property, property) && Equals(other.componentType, componentType) && Equals(other.mergedComponent, mergedComponent) && Equals(other.containingEntityType, containingEntityType)); }
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() { parentMapping = new ParentMapping(); externalComponentMapping = new ExternalComponentMapping(ComponentType.Component); externalComponentMapping.Set(x => x.Access, Layer.Defaults, "access"); externalComponentMapping.Set(x => x.Insert, Layer.Defaults, true); externalComponentMapping.Set(x => x.Lazy, Layer.Defaults, true); externalComponentMapping.Set(x => x.OptimisticLock, Layer.Defaults, true); externalComponentMapping.Set(x => x.Parent, Layer.Defaults, parentMapping); externalComponentMapping.Set(x => x.Unique, Layer.Defaults, true); externalComponentMapping.Set(x => x.Update, Layer.Defaults, true); externalComponentMapping.AddAny(new AnyMapping()); externalComponentMapping.AddCollection(CollectionMapping.Bag()); externalComponentMapping.AddComponent(new ComponentMapping(ComponentType.Component)); externalComponentMapping.AddFilter(new FilterMapping()); externalComponentMapping.AddOneToOne(new OneToOneMapping()); externalComponentMapping.AddProperty(new PropertyMapping()); externalComponentMapping.AddReference(new ManyToOneMapping()); memberProperty = new DummyPropertyInfo("Component", typeof(Target)).ToMember(); referenceComponentMapping = new ReferenceComponentMapping(ComponentType.Component, memberProperty, typeof(ComponentTarget), typeof(Target), "column-prefix"); }
public override void establish_context() { parent_mapping = new ParentMapping(); external_component_mapping = new ExternalComponentMapping(ComponentType.Component) { Access = "access", Insert = true, Lazy = true, OptimisticLock = true, Parent = parent_mapping, Unique = true, Update = true }; external_component_mapping.AddAny(new AnyMapping()); external_component_mapping.AddCollection(new BagMapping()); external_component_mapping.AddComponent(new ComponentMapping(ComponentType.Component)); external_component_mapping.AddFilter(new FilterMapping()); external_component_mapping.AddOneToOne(new OneToOneMapping()); external_component_mapping.AddProperty(new PropertyMapping()); external_component_mapping.AddReference(new ManyToOneMapping()); member_property = new DummyPropertyInfo("Component", typeof(Target)).ToMember(); reference_component_mapping = new ReferenceComponentMapping(ComponentType.Component, member_property, typeof(ComponentTarget), typeof(Target), "column-prefix"); }
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); }
public override void ProcessComponent(ReferenceComponentMapping componentMapping) { componentMapping.MergedModel.AcceptVisitor(this); }
public virtual void ProcessComponent(ReferenceComponentMapping componentMapping) { }
public bool Equals(ReferenceComponentMapping other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return Equals(other.property, property) && Equals(other.componentType, componentType) && Equals(other.mergedComponent, mergedComponent) && Equals(other.containingEntityType, containingEntityType); }
public override void establish_context() { member_property = new DummyPropertyInfo("Component", typeof(Target)).ToMember(); reference_component_mapping = new ReferenceComponentMapping(member_property, typeof(ComponentType), typeof(Target), null); }