001
002package gudusoft.gsqlparser.dlineage.dataflow.model.xml;
003
004import gudusoft.gsqlparser.dlineage.dataflow.model.json.Coordinate;
005import gudusoft.gsqlparser.util.SQLUtil;
006
007public class PositionUtil {
008
009        public static Coordinate getStartPos(String coordinate, int index) {
010                if (!SQLUtil.isEmpty(coordinate)) {
011                        String firstCoordinate = coordinate.substring(coordinate.indexOf("[") + 1, coordinate.indexOf("]"));
012                        int length = firstCoordinate.split(",").length;
013
014                        String[] splits = coordinate.replace("[", "").replace("]", "").split(",");
015                        if (splits.length % (2 * length) == 0) {
016                                return new Coordinate(Long.parseLong(splits[index * (2 * length) + 0].trim()),
017                                                Long.parseLong(splits[index * (2 * length) + 1].trim()),
018                                                splits[index * (2 * length) + 2].trim());
019                        }
020                }
021                return null;
022        }
023
024        public static Coordinate getEndPos(String coordinate, int index) {
025                if (!SQLUtil.isEmpty(coordinate)) {
026                        String firstCoordinate = coordinate.substring(coordinate.indexOf("[") + 1, coordinate.indexOf("]"));
027                        int length = firstCoordinate.split(",").length;
028
029                        String[] splits = coordinate.replace("[", "").replace("]", "").split(",");
030                        if (splits.length % (2 * length) == 0) {
031                                return new Coordinate(Long.parseLong(splits[index * (2 * length) + length].trim()),
032                                                Long.parseLong(splits[index * (2 * length) + length + 1].trim()),
033                                                splits[index * (2 * length) + length + 2].trim());
034                        }
035                }
036                return null;
037        }
038
039        public static int getOccurrencesNumber(String coordinate) {
040                if (!SQLUtil.isEmpty(coordinate)) {
041                        String firstCoordinate = coordinate.substring(coordinate.indexOf("[") + 1, coordinate.indexOf("]"));
042                        int length = firstCoordinate.split(",").length;
043
044                        String[] splits = coordinate.replace("[", "").replace("]", "").split(",");
045                        if (splits.length % (2 * length) == 0) {
046                                return splits.length / (2 * length);
047                        }
048                }
049                return 0;
050        }
051}