NebulaGraph Java Client  release-3.8
LineStringWrapper.java
1 /* Copyright (c) 2021 vesoft inc. All rights reserved.
2  *
3  * This source code is licensed under Apache 2.0 License.
4  */
5 
6 package com.vesoft.nebula.client.graph.data;
7 
8 import com.vesoft.nebula.Coordinate;
9 import com.vesoft.nebula.LineString;
10 import java.util.ArrayList;
11 import java.util.List;
12 import java.util.Objects;
13 
14 public class LineStringWrapper extends BaseDataObject {
15  private final LineString lineString;
16 
17  public LineStringWrapper(LineString lineString) {
18  this.lineString = lineString;
19  }
20 
21  public List<CoordinateWrapper> getCoordinateList() {
22  List<CoordinateWrapper> coordList = new ArrayList<>();
23  for (Coordinate coord : lineString.getCoordList()) {
24  coordList.add(new CoordinateWrapper(coord));
25  }
26  return coordList;
27  }
28 
29  @Override
30  public int hashCode() {
31  return Objects.hash(lineString);
32  }
33 
34  @Override
35  public boolean equals(Object o) {
36  if (this == o) {
37  return true;
38  }
39  if (o == null || getClass() != o.getClass()) {
40  return false;
41  }
43  List<CoordinateWrapper> thisList = getCoordinateList();
44  List<CoordinateWrapper> thatList = that.getCoordinateList();
45  if (thisList.size() != thatList.size()) {
46  return false;
47  }
48  for (int i = 0; i < thisList.size(); i++) {
49  if (!thisList.get(i).equals(thatList.get(i))) {
50  return false;
51  }
52  }
53  return true;
54  }
55 
56  @Override
57  public String toString() {
58  StringBuilder sb = new StringBuilder();
59  sb.append("LINESTRING");
60  sb.append('(');
61  if (lineString.getCoordList() != null) {
62  for (Coordinate coordinate : lineString.getCoordList()) {
63  sb.append(coordinate.getX());
64  sb.append(' ');
65  sb.append(coordinate.getY());
66  sb.append(',');
67  }
68  if (sb.charAt(sb.length() - 1) == ',') {
69  sb.deleteCharAt(sb.length() - 1);
70  }
71  }
72  sb.append(')');
73 
74  return sb.toString();
75  }
76 }