/// <inheritdoc />
 public CompositeMarshaller(
     CompositeDefinitionType type, TDefinition definition, CreateIdentifier createIdentifier)
 {
     Definition              = definition;
     CreateIdentifier        = createIdentifier;
     identifierDtoMarshaller = new IdentifierDtoMarshaller <TIdentifier, TDefinition>(type.Identifiers, createIdentifier);
 }
Пример #2
0
        /// <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()));
            }
Пример #5
0
 /// <inheritdoc />
 public void Visit(IDefinition definition, CompositeDefinitionType type)
 {
     Write(definition, type);
 }
Пример #6
0
 /// <inheritdoc />
 public void Visit(IDefinition definition, CompositeDefinitionType type)
 {
     Add(definition, "composite");
 }
Пример #7
0
 /// <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));
 }
Пример #9
0
 public CompositeIdentifierXmlMarshaller(TDefinition definition)
 {
     Definition     = definition;
     definitionType = (CompositeDefinitionType)Definition.Type;
     Marshallers    = new IdentifierXmlMarshallers <TIdentifier, TDefinition>(definitionType.Identifiers);
 }