aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/geojson/GeoJsonObjectVisitor.java
blob: 8232d5edb4f1ee813549c70ca2f584578b3f44df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package org.geojson;

/**
 * Visitor to handle all different types of {@link GeoJsonObject}.
 * 
 * @param <T>
 *            return type of the visitor.
 */
public interface GeoJsonObjectVisitor<T> {

	T visit(GeometryCollection geoJsonObject);

	T visit(FeatureCollection geoJsonObject);

	T visit(Point geoJsonObject);

	T visit(Feature geoJsonObject);

	T visit(MultiLineString geoJsonObject);

	T visit(Polygon geoJsonObject);

	T visit(MultiPolygon geoJsonObject);

	T visit(MultiPoint geoJsonObject);

	T visit(LineString geoJsonObject);

	/**
	 * An abstract adapter class for visiting GeoJson objects.
	 * The methods in this class are empty.
	 * This class exists as convenience for creating listener objects.
	 *
	 * @param <T> Return type of the visitor
   */
	class Adapter<T> implements GeoJsonObjectVisitor<T> {

		@Override
		public T visit(GeometryCollection geoJsonObject) {
			return null;
		}

		@Override
		public T visit(FeatureCollection geoJsonObject) {
			return null;
		}

		@Override
		public T visit(Point geoJsonObject) {
			return null;
		}

		@Override
		public T visit(Feature geoJsonObject) {
			return null;
		}

		@Override
		public T visit(MultiLineString geoJsonObject) {
			return null;
		}

		@Override
		public T visit(Polygon geoJsonObject) {
			return null;
		}

		@Override
		public T visit(MultiPolygon geoJsonObject) {
			return null;
		}

		@Override
		public T visit(MultiPoint geoJsonObject) {
			return null;
		}

		@Override
		public T visit(LineString geoJsonObject) {
			return null;
		}
	}
}