d2e938dff974fdc3ca0b61e59fbdbb20396d441e
[netvirt.git] / aclservice / impl / src / test / java / org / opendaylight / netvirt / aclservice / tests / infra / DataTreeIdentifierDataObjectPairBuilder.java
1 /*
2  * Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netvirt.aclservice.tests.infra;
9
10 import org.eclipse.xtext.xbase.lib.Pair;
11 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
12 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
13 import org.opendaylight.yangtools.concepts.Builder;
14 import org.opendaylight.yangtools.yang.binding.DataObject;
15 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
16
17 /**
18  * Builder of an {@link DataTreeIdentifier} -> {@link DataObject} Pair.
19  *
20  * @param <T> DataObject type
21  *
22  * @author Michael Vorburger
23  */
24 public interface DataTreeIdentifierDataObjectPairBuilder<T extends DataObject>
25         extends Builder<Pair<DataTreeIdentifier<T>, T>> {
26
27     // TODO use, when merged, pending https://git.opendaylight.org/gerrit/#/c/46479/
28
29     LogicalDatastoreType type();
30
31     InstanceIdentifier<T> identifier();
32
33     T dataObject();
34
35     @Override
36     default Pair<DataTreeIdentifier<T>, T> build() {
37         return Pair.of(new DataTreeIdentifier<>(type(), identifier()), dataObject());
38     }
39 }