/// <inheritdoc /> public CompositeMarshaller( CompositeDefinitionType type, TDefinition definition, CreateIdentifier createIdentifier) { Definition = definition; CreateIdentifier = createIdentifier; identifierDtoMarshaller = new IdentifierDtoMarshaller <TIdentifier, TDefinition>(type.Identifiers, createIdentifier); }
/// <inheritdoc /> public void Visit(IdentifierDefinition definition, CompositeDefinitionType type) { var compositeNames = CreateFromDefinitions(type.Identifiers.Cast <IdentifierDefinition>()); foreach (var compositeName in compositeNames) { Names.Add(Join(definition, compositeName)); } }
/// <inheritdoc /> public void Visit(IdentifierDefinition definition, CompositeDefinitionType type) { var subWriters = new IdentifierValueOutputFormatter( type.Identifiers.Cast <IdentifierDefinition>(), FieldNames[definition.SystemName] ); Writers[definition.SystemName] = subWriters.WriteCompositeValue; }
/// <inheritdoc /> public void Visit(TDefinition definition, CompositeDefinitionType type) { var valueParser = CreateFrom(type.Identifiers.Cast <TDefinition>()); SetParser( definition, (name, x) => new IdentifierValueDtoIIdentifierValueDto( name, x.Elements() .Select(valueParser.Parse) .ToArray())); }
/// <inheritdoc /> public void Visit(IDefinition definition, CompositeDefinitionType type) { Write(definition, type); }
/// <inheritdoc /> public void Visit(IDefinition definition, CompositeDefinitionType type) { Add(definition, "composite"); }
/// <inheritdoc /> public void Visit(IDefinition definition, CompositeDefinitionType type) { SetMarshaller(definition, new CompositeIdentifierXmlMarshaller <TIdentifier, TDefinition>((TDefinition)definition)); }
/// <inheritdoc /> public void Visit(IDefinition definition, CompositeDefinitionType type) { UseMarshaller(definition, new CompositeMarshaller(type, (TDefinition)definition, IdentifierCreator)); }
public CompositeIdentifierXmlMarshaller(TDefinition definition) { Definition = definition; definitionType = (CompositeDefinitionType)Definition.Type; Marshallers = new IdentifierXmlMarshallers <TIdentifier, TDefinition>(definitionType.Identifiers); }