Example #1
0
 public ReadWriteParent(string fixedName, int variable, SharedReadOnlyChild sharedChild,
                        ReadOnlyChild child, IEnumerable <ReadOnlyChild> children)
 {
     FixedName    = fixedName;
     Variable     = variable;
     SharedChild  = sharedChild;
     Child        = child;
     ChildrenList = children.ToList();
 }
Example #2
0
        protected override ReadOnlyParent Immutify(ReadWriteParent mutable, ImmutableSupport support)
        {
            IParent source = mutable ?? (IParent)this;

            int variable = source.Variable;
            SharedReadOnlyChild         sharedChild = support.Immutify <SharedReadOnlyChild, SharedWriteableChild>(SharedChild);
            ReadOnlyChild               child       = support.Immutify <ReadOnlyChild, ReadWriteChild>(Child);
            IEnumerable <ReadOnlyChild> children    = support.Immutify <ReadOnlyChild, ReadWriteChild>(Children);

            // TODO: Equals für die Collections? ... gehört womöglich in Extensions!
            return(Equals(variable, Variable) && Equals(sharedChild, SharedChild) && Equals(child, Child) && Equals(children, Children)
                ? this
                : new ReadOnlyParent(FixedName, variable, sharedChild, child, children));
        }