1class com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy	keep
2  field stub	keep
3  # field remove	remove # Implicitly remove
4  method <init>	()V	            keep
5  method addOne	(I)I	        keep
6  method addOneInner	keep
7  method toBeRemoved	(Ljava/lang/String;)V	remove
8  method addTwo	(I)I	        @addTwo_host
9  # method addTwo_host	(I)I	# used as a substitute
10  method nativeAddThree	        @addThree_host
11  # method addThree_host	(I)I	# used as a substitute
12  method unsupportedMethod	()Ljava/lang/String;	throw
13  method visibleButUsesUnsupportedMethod	()Ljava/lang/String;	keep
14  method toBeIgnoredObj	()Ljava/lang/String;	ignore
15  method toBeIgnoredV	()V	ignore
16  method toBeIgnoredZ	()Z	ignore
17  method toBeIgnoredB	()B	ignore
18  method toBeIgnoredC	()C	ignore
19  method toBeIgnoredS	()S	ignore
20  method toBeIgnoredI	()I	ignore
21  method toBeIgnoredL	()L	ignore
22  method toBeIgnoredF	()F	ignore
23  method toBeIgnoredD	()D	ignore
24
25# Class load hook
26class com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy	~com.android.hoststubgen.test.tinyframework.TinyFrameworkClassLoadHook.onClassLoaded
27
28# Heuristics rule: Stub all the AIDL classes.
29class :aidl keepclass
30
31# Heuristics rule: Stub all the R classes.
32class :r keepclass
33
34# Default is "remove", so let's put all the base classes / interfaces in the stub first.
35class com.android.hoststubgen.test.tinyframework.subclasstest.C1 keep
36class com.android.hoststubgen.test.tinyframework.subclasstest.C2 keep
37class com.android.hoststubgen.test.tinyframework.subclasstest.C3 keep
38class com.android.hoststubgen.test.tinyframework.subclasstest.CA keep
39class com.android.hoststubgen.test.tinyframework.subclasstest.CB keep
40class com.android.hoststubgen.test.tinyframework.subclasstest.I1 keep
41class com.android.hoststubgen.test.tinyframework.subclasstest.I2 keep
42class com.android.hoststubgen.test.tinyframework.subclasstest.I3 keep
43class com.android.hoststubgen.test.tinyframework.subclasstest.IA keep
44class com.android.hoststubgen.test.tinyframework.subclasstest.IB keep
45
46# Then define inheritance based policies.
47class *com.android.hoststubgen.test.tinyframework.subclasstest.C1 keep
48class *com.android.hoststubgen.test.tinyframework.subclasstest.CA remove
49
50class *com.android.hoststubgen.test.tinyframework.subclasstest.I1 keep
51class *com.android.hoststubgen.test.tinyframework.subclasstest.IA remove
52
53# Test package directive
54package com.android.hoststubgen.test.tinyframework.packagetest keep
55class com.android.hoststubgen.test.tinyframework.packagetest.B remove
56class com.android.hoststubgen.test.tinyframework.packagetest.sub.B remove
57# The following rules are the same as above
58# class com.android.hoststubgen.test.tinyframework.packagetest.A keep
59# class com.android.hoststubgen.test.tinyframework.packagetest.sub.A keep
60
61# Used to test method call replacement.
62class com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace keepclass
63  method originalAdd (II)I @com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo.add
64
65# Used to test method call replacement.
66# Note because java.lang.Thread is _not_ within the tiny-framework jar, the policy ("keep")
67# doesn't realy matter.
68class java.lang.Thread keep
69  method start ()V @com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo.startThread
70
71
72# "rename" takes a type internal name, so '/'s is used as a separator.
73# The leading / in the prefix is not needed (it'll be stripped), but it's added to make
74# sure the stripping works.
75rename ^.*/TinyFrameworkToBeRenamed$ /rename_prefix/
76