xref: /aosp_15_r20/external/javassist/src/test/testproxy/Target189.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package testproxy;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li import javassist.util.proxy.MethodHandler;
4*f1fbf3c2SXin Li import java.lang.reflect.Method;
5*f1fbf3c2SXin Li 
6*f1fbf3c2SXin Li public class Target189 {
7*f1fbf3c2SXin Li 	public interface TestProxy {
8*f1fbf3c2SXin Li 	}
9*f1fbf3c2SXin Li 
10*f1fbf3c2SXin Li 	public static class TestMethodHandler implements MethodHandler {
11*f1fbf3c2SXin Li 
12*f1fbf3c2SXin Li 		int invoked = 0;
13*f1fbf3c2SXin Li 
invoke(Object self, Method thisMethod, Method proceed, Object[] args)14*f1fbf3c2SXin Li 		public Object invoke(Object self, Method thisMethod, Method proceed,
15*f1fbf3c2SXin Li 				Object[] args) throws Throwable {
16*f1fbf3c2SXin Li 			invoked++;
17*f1fbf3c2SXin Li 			return proceed.invoke(self, args);
18*f1fbf3c2SXin Li 		}
19*f1fbf3c2SXin Li 
wasInvokedOnce()20*f1fbf3c2SXin Li 		public boolean wasInvokedOnce() {
21*f1fbf3c2SXin Li 			return invoked == 1;
22*f1fbf3c2SXin Li 		}
23*f1fbf3c2SXin Li 
reset()24*f1fbf3c2SXin Li 		public void reset() {
25*f1fbf3c2SXin Li 			invoked = 0;
26*f1fbf3c2SXin Li 		}
27*f1fbf3c2SXin Li 	}
28*f1fbf3c2SXin Li 
29*f1fbf3c2SXin Li 	public static class Issue {
30*f1fbf3c2SXin Li 
31*f1fbf3c2SXin Li 		private Integer id;
32*f1fbf3c2SXin Li 
getId()33*f1fbf3c2SXin Li 		public Integer getId() {
34*f1fbf3c2SXin Li 			return id;
35*f1fbf3c2SXin Li 		}
36*f1fbf3c2SXin Li 
setId(Integer id)37*f1fbf3c2SXin Li 		public void setId(Integer id) {
38*f1fbf3c2SXin Li 			this.id = id;
39*f1fbf3c2SXin Li 		}
40*f1fbf3c2SXin Li 	}
41*f1fbf3c2SXin Li 
42*f1fbf3c2SXin Li 	public static class PublishedIssue extends Issue {
43*f1fbf3c2SXin Li 	}
44*f1fbf3c2SXin Li 
45*f1fbf3c2SXin Li 	public static abstract class Article {
46*f1fbf3c2SXin Li 		private Integer id;
47*f1fbf3c2SXin Li 
getId()48*f1fbf3c2SXin Li 		public Integer getId() {
49*f1fbf3c2SXin Li 			return id;
50*f1fbf3c2SXin Li 		}
51*f1fbf3c2SXin Li 
setId(Integer id)52*f1fbf3c2SXin Li 		public void setId(Integer id) {
53*f1fbf3c2SXin Li 			this.id = id;
54*f1fbf3c2SXin Li 		}
55*f1fbf3c2SXin Li 
getIssue()56*f1fbf3c2SXin Li 		public abstract Issue getIssue();
57*f1fbf3c2SXin Li 	}
58*f1fbf3c2SXin Li 
59*f1fbf3c2SXin Li 	public static class PublishedArticle extends Article {
60*f1fbf3c2SXin Li 
61*f1fbf3c2SXin Li 		private PublishedIssue issue;
62*f1fbf3c2SXin Li 
63*f1fbf3c2SXin Li 		@Override
getIssue()64*f1fbf3c2SXin Li 		public PublishedIssue getIssue() {
65*f1fbf3c2SXin Li 			return issue;
66*f1fbf3c2SXin Li 		}
67*f1fbf3c2SXin Li 
setIssue(PublishedIssue issue)68*f1fbf3c2SXin Li 		public void setIssue(PublishedIssue issue) {
69*f1fbf3c2SXin Li 			this.issue = issue;
70*f1fbf3c2SXin Li 		}
71*f1fbf3c2SXin Li 
72*f1fbf3c2SXin Li 	}
73*f1fbf3c2SXin Li 
74*f1fbf3c2SXin Li }
75