xref: /aosp_15_r20/external/javassist/sample/duplicate/Ball.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package sample.duplicate;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li import java.awt.Graphics;
4*f1fbf3c2SXin Li import java.awt.Color;
5*f1fbf3c2SXin Li 
6*f1fbf3c2SXin Li public class Ball {
7*f1fbf3c2SXin Li     private int x, y;
8*f1fbf3c2SXin Li     private Color color;
9*f1fbf3c2SXin Li     private int radius = 30;
10*f1fbf3c2SXin Li     private boolean isBackup = false;
11*f1fbf3c2SXin Li 
Ball(int x, int y)12*f1fbf3c2SXin Li     public Ball(int x, int y) {
13*f1fbf3c2SXin Li 	move(x, y);
14*f1fbf3c2SXin Li 	changeColor(Color.orange);
15*f1fbf3c2SXin Li     }
16*f1fbf3c2SXin Li 
17*f1fbf3c2SXin Li     // This constructor is for a backup object.
Ball(Ball b)18*f1fbf3c2SXin Li     public Ball(Ball b) {
19*f1fbf3c2SXin Li 	isBackup = true;
20*f1fbf3c2SXin Li     }
21*f1fbf3c2SXin Li 
22*f1fbf3c2SXin Li     // Adjust the position so that the backup object is visible.
adjust()23*f1fbf3c2SXin Li     private void adjust() {
24*f1fbf3c2SXin Li 	if (isBackup) {
25*f1fbf3c2SXin Li 	    this.x += 50;
26*f1fbf3c2SXin Li 	    this.y += 50;
27*f1fbf3c2SXin Li 	}
28*f1fbf3c2SXin Li     }
29*f1fbf3c2SXin Li 
paint(Graphics g)30*f1fbf3c2SXin Li     public void paint(Graphics g) {
31*f1fbf3c2SXin Li 	g.setColor(color);
32*f1fbf3c2SXin Li 	g.fillOval(x, y, radius, radius);
33*f1fbf3c2SXin Li     }
34*f1fbf3c2SXin Li 
move(int x, int y)35*f1fbf3c2SXin Li     public void move(int x, int y) {
36*f1fbf3c2SXin Li 	this.x = x;
37*f1fbf3c2SXin Li 	this.y = y;
38*f1fbf3c2SXin Li 	adjust();
39*f1fbf3c2SXin Li     }
40*f1fbf3c2SXin Li 
changeColor(Color color)41*f1fbf3c2SXin Li     public void changeColor(Color color) {
42*f1fbf3c2SXin Li 	this.color = color;
43*f1fbf3c2SXin Li     }
44*f1fbf3c2SXin Li }
45