Graphic Rendering System 1.0
A Java-based graphic rendering system implementing various design patterns
Loading...
Searching...
No Matches
JsonExportVisitor.java
Go to the documentation of this file.
1package com.example.graphics.visitor;
2
3import com.example.graphics.model.Circle;
4import com.example.graphics.model.Line;
5import com.example.graphics.model.Rectangle;
6import com.example.graphics.model.Triangle;
7import org.json.JSONArray;
8import org.json.JSONObject;
9
14public class JsonExportVisitor implements ShapeVisitor {
15 private JSONArray shapes;
16
21 shapes = new JSONArray();
22 }
23
24 @Override
25 public void visit(Circle circle) {
26 JSONObject circleJson = new JSONObject();
27 circleJson.put("type", "circle");
28 circleJson.put("x", circle.getX());
29 circleJson.put("y", circle.getY());
30 circleJson.put("radius", circle.getRadius());
31 shapes.put(circleJson);
32 }
33
34 @Override
35 public void visit(Rectangle rectangle) {
36 JSONObject rectJson = new JSONObject();
37 rectJson.put("type", "rectangle");
38 rectJson.put("x", rectangle.getX());
39 rectJson.put("y", rectangle.getY());
40 rectJson.put("width", rectangle.getWidth());
41 rectJson.put("height", rectangle.getHeight());
42 shapes.put(rectJson);
43 }
44
45 @Override
46 public void visit(Line line) {
47 JSONObject lineJson = new JSONObject();
48 lineJson.put("type", "line");
49 lineJson.put("x1", line.getX1());
50 lineJson.put("y1", line.getY1());
51 lineJson.put("x2", line.getX2());
52 lineJson.put("y2", line.getY2());
53 shapes.put(lineJson);
54 }
55
56 @Override
57 public void visit(Triangle triangle) {
58 JSONObject triangleJson = new JSONObject();
59 triangleJson.put("type", "triangle");
60 triangleJson.put("x1", triangle.getX1());
61 triangleJson.put("y1", triangle.getY1());
62 triangleJson.put("x2", triangle.getX2());
63 triangleJson.put("y2", triangle.getY2());
64 triangleJson.put("x3", triangle.getX3());
65 triangleJson.put("y3", triangle.getY3());
66 shapes.put(triangleJson);
67 }
68
73 public String getJsonOutput() {
74 JSONObject result = new JSONObject();
75 result.put("shapes", shapes);
76 return result.toString(2); // Pretty print with 2-space indentation
77 }
78
82 public void clear() {
83 shapes = new JSONArray();
84 }
85}