This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/TypeProviderOpt
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit dbb75b59af70caab4b2db9417a4c6081a938146e
Author: Minghui Liu <[email protected]>
AuthorDate: Thu Sep 1 15:51:11 2022 +0800

    add NodeRef
---
 .../org/apache/iotdb/db/mpp/common/NodeRef.java    | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/NodeRef.java 
b/server/src/main/java/org/apache/iotdb/db/mpp/common/NodeRef.java
new file mode 100644
index 0000000000..761984d3dd
--- /dev/null
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/NodeRef.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.iotdb.db.mpp.common;
+
+import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
+
+import static java.lang.System.identityHashCode;
+import static java.util.Objects.requireNonNull;
+
+public class NodeRef<T extends StatementNode> {
+
+  private final T node;
+
+  public NodeRef(T node) {
+    this.node = requireNonNull(node, "node is null");
+  }
+
+  public static <T extends StatementNode> NodeRef<T> of(T node) {
+    return new NodeRef<>(node);
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    NodeRef<?> other = (NodeRef<?>) o;
+    return node == other.node;
+  }
+
+  @Override
+  public int hashCode() {
+    return identityHashCode(node);
+  }
+}

Reply via email to