use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.
the class Find_InvokeTracker method test_GetterSetter_Public_SamePackage_InnerClasses_Parallel_Level2.
/**
* findSetter, findGetter test using fields of a second level inner class
* where the lookup class is another second level inner class of the same outer class.
* @throws Throwable
*/
@Test(groups = { "level.extended" })
public void test_GetterSetter_Public_SamePackage_InnerClasses_Parallel_Level2() throws Throwable {
SamePackageExample spe = new SamePackageExample();
SamePackageInnerClass spe_inner1 = spe.new SamePackageInnerClass();
SamePackageInnerClass_Nested_Level2 spe_inner2 = spe_inner1.new SamePackageInnerClass_Nested_Level2();
Lookup publicLookup = spe_inner2.getLookup();
MethodHandle mhSetter = publicLookup.findSetter(SamePackageExample.SamePackageInnerClass2.SamePackageInnerClass2_Nested_Level2.class, "nonStaticPublicField_Inner22", int.class);
MethodHandle mhGetter = publicLookup.findGetter(SamePackageExample.SamePackageInnerClass2.SamePackageInnerClass2_Nested_Level2.class, "nonStaticPublicField_Inner22", int.class);
SamePackageExample.SamePackageInnerClass2.SamePackageInnerClass2_Nested_Level2 g = ((new SamePackageExample()).new SamePackageInnerClass2()).new SamePackageInnerClass2_Nested_Level2();
mhSetter.invokeExact(g, 5);
int o = (int) mhGetter.invokeExact(g);
AssertJUnit.assertEquals(o, 5);
}
use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.
the class Find_InvokeTracker method test_GetterSetter_Public_SamePackage_InnerClass_Level2.
/**
* findSetter, findGetter test using fields of an inner classes (level 2 deep) where the
* lookup class is the top outer class.
* @throws Throwable
*/
@Test(groups = { "level.extended" })
public void test_GetterSetter_Public_SamePackage_InnerClass_Level2() throws Throwable {
Lookup publicLookup = MethodHandles.lookup();
MethodHandle mhSetter = publicLookup.findSetter(SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2.class, "nonStaticPublicField_Inner2", int.class);
MethodHandle mhGetter = publicLookup.findGetter(SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2.class, "nonStaticPublicField_Inner2", int.class);
SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2 g = ((new SamePackageExample()).new SamePackageInnerClass()).new SamePackageInnerClass_Nested_Level2();
mhSetter.invokeExact(g, 5);
int o = (int) mhGetter.invokeExact(g);
AssertJUnit.assertEquals(o, 5);
}
use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.
the class Find_InvokeTracker method test_FindVirtual_Private_CrossPackage_InnerClass.
/**
* findVirtual test using a public method of an inner class belonging to the same package as the lookup class.
* @throws Throwable
*/
@Test(groups = { "level.extended" })
public void test_FindVirtual_Private_CrossPackage_InnerClass() throws Throwable {
boolean illegalAccessExceptionThrown = false;
try {
MethodHandle example = PackageExamples.getLookup().findVirtual(SamePackageExample.SamePackageInnerClass.class, "addPrivateInner", MethodType.methodType(int.class, int.class, int.class));
SamePackageExample.SamePackageInnerClass g = (new SamePackageExample()).new SamePackageInnerClass();
int s = (int) example.invokeExact(g, 1, 2);
AssertJUnit.assertEquals(3, s);
} catch (IllegalAccessException e) {
illegalAccessExceptionThrown = true;
}
AssertJUnit.assertTrue(illegalAccessExceptionThrown);
}
use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.
the class Find_InvokeTracker method test_FindVirtual_Public_SamePackage_InnerClass.
/**
* findVirtual test using a public method of an inner class belonging to the same package as the lookup class.
* @throws Throwable
*/
@Test(groups = { "level.extended" })
public void test_FindVirtual_Public_SamePackage_InnerClass() throws Throwable {
MethodHandle example = MethodHandles.lookup().findVirtual(SamePackageExample.SamePackageInnerClass.class, "addPublicInner", MethodType.methodType(int.class, int.class, int.class));
SamePackageExample.SamePackageInnerClass g = (new SamePackageExample()).new SamePackageInnerClass();
int s = (int) example.invokeExact(g, 1, 2);
AssertJUnit.assertEquals(3, s);
}
use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.
the class Find_InvokeTracker method test_GetterSetter_Public_SamePackage_InnerClasse_Nested_Level12.
/**
* findSetter, findGetter test using public fields of a second level inner class
* where the lookup class is the first level inner class.
* @throws Throwable
*/
@Test(groups = { "level.extended" })
public void test_GetterSetter_Public_SamePackage_InnerClasse_Nested_Level12() throws Throwable {
SamePackageExample spe = new SamePackageExample();
SamePackageInnerClass spe_inner1 = spe.new SamePackageInnerClass();
Lookup publicLookup = spe_inner1.getLookup();
MethodHandle mhSetter = publicLookup.findSetter(SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2.class, "nonStaticPublicField_Inner2", int.class);
MethodHandle mhGetter = publicLookup.findGetter(SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2.class, "nonStaticPublicField_Inner2", int.class);
SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2 g = ((new SamePackageExample()).new SamePackageInnerClass()).new SamePackageInnerClass_Nested_Level2();
mhSetter.invokeExact(g, 5);
int o = (int) mhGetter.invokeExact(g);
AssertJUnit.assertEquals(o, 5);
}
Aggregations