summaryrefslogtreecommitdiffstats
path: root/infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java
diff options
context:
space:
mode:
authorMaros Marsalek <mmarsale@cisco.com>2016-10-26 12:18:11 +0200
committerMaros Marsalek <mmarsale@cisco.com>2016-10-28 12:32:11 +0200
commit04c868333214c0e5bfce3926c43a4302615f2ac5 (patch)
tree4c3f4b8fd3c833e807abdc25aa7f74e05cfa0b38 /infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java
parentb0615e61b93ef8530193bd45c270ed313dcc23a7 (diff)
Honeycomb-73 Extensible initializers framework
Change-Id: Ib23453d4040d59a512686315995a5cf9e532cefc Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java')
-rw-r--r--infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java b/infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java
new file mode 100644
index 000000000..94fb3cd98
--- /dev/null
+++ b/infra/translate-spi/src/main/java/io/fd/honeycomb/translate/spi/read/Initialized.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.fd.honeycomb.translate.spi.read;
+
+import com.google.common.base.Preconditions;
+import java.util.Objects;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * Just a DTO holding configuration data ID and the data itself.
+ */
+public final class Initialized<T extends DataObject> {
+
+ private final InstanceIdentifier<T> id;
+ private final T data;
+
+ private Initialized(final InstanceIdentifier<T> id, final T data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public InstanceIdentifier<T> getId() {
+ return id;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ final Initialized<?> that = (Initialized<?>) o;
+ return Objects.equals(id, that.id) &&
+ Objects.equals(data, that.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, data);
+ }
+
+ @Override
+ public String toString() {
+ return "Initialized{" +
+ "id=" + id +
+ ", data=" + data +
+ '}';
+ }
+
+ public static <C extends DataObject> Initialized<C> create(@Nonnull final InstanceIdentifier<C> id,
+ @Nonnull final C data) {
+ return new Initialized<>(Preconditions.checkNotNull(id, "Id cannot be null"),
+ Preconditions.checkNotNull(data, "Data cannot be null"));
+ }
+}