package guru.nidi.graphviz.model;

import java.util.*;

import static java.util.stream.Collectors.toList;

class LinkList extends ArrayList<Link> {
    private final LinkSource owner;

    LinkList(LinkSource owner, List<Link> links) {
        super(links);
        this.owner = owner;
    }

    @Override
    public Link set(int index, Link element) {
        return super.set(index, owner.linkTo(element));
    }

    @Override
    public boolean add(Link link) {
        return super.add(owner.linkTo(link));
    }

    @Override
    public void add(int index, Link element) {
        super.add(index, owner.linkTo(element));
    }

    @Override
    public boolean addAll(Collection<? extends Link> c) {
        return super.addAll(c.stream().map(owner::linkTo).collect(toList()));
    }

    @Override
    public boolean addAll(int index, Collection<? extends Link> c) {
        return super.addAll(index, c.stream().map(owner::linkTo).collect(toList()));
    }
}

@@ -1,8 +1,628 @@
+/*%0A * Copyright %C2%A9 2015 Stefan Niederhauser (nidin@gmx.ch)%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A
 package 

add header