1336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpackage org.testng.internal; 2336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 3b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport java.lang.reflect.Method; 4b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport java.util.Collections; 5b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport java.util.List; 6b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport java.util.Map; 7b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beust 8336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.ITestNGMethod; 9ca520d28e1855f27e7fdab6c85aee4065758c2ebCédric Beustimport org.testng.annotations.IAnnotation; 102d568355761a9632bf24a87984e241f8a079d724Cédric Beustimport org.testng.annotations.IConfigurationAnnotation; 112d568355761a9632bf24a87984e241f8a079d724Cédric Beustimport org.testng.annotations.ITestAnnotation; 12c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beustimport org.testng.collections.Lists; 130f6db64c011bc71dcdb432d7d27730b04f5ef2c1Cédric Beustimport org.testng.collections.Maps; 14b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.AnnotationHelper; 15b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.ConfigurationAnnotation; 16b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAfterClass; 17b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAfterGroups; 18b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAfterMethod; 19b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAfterSuite; 20b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAfterTest; 21b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IAnnotationFinder; 22b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IBeforeClass; 23b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IBeforeGroups; 24b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IBeforeMethod; 25b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IBeforeSuite; 26b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beustimport org.testng.internal.annotations.IBeforeTest; 2745a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust 28336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpublic class ConfigurationMethod extends BaseTestMethod { 290f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin /** 300f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin * 310f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin */ 320f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin private static final long serialVersionUID = -6537771498553619645L; 33336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isBeforeSuiteConfiguration; 34336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isAfterSuiteConfiguration; 35336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 36336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isBeforeTestConfiguration; 37336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isAfterTestConfiguration; 380f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 39336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isBeforeClassConfiguration; 40336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isAfterClassConfiguration; 41336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 42336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isBeforeMethodConfiguration; 43336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private final boolean m_isAfterMethodConfiguration; 4445a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust 45336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private boolean m_inheritGroupsFromTestClass = false; 46336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 470f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin private ConfigurationMethod(ConstructorOrMethod com, 48aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm IAnnotationFinder annotationFinder, 49aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isBeforeSuite, 50aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterSuite, 51aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isBeforeTest, 52aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterTest, 530f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin boolean isBeforeClass, 54aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterClass, 550f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin boolean isBeforeMethod, 56aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterMethod, 57aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm String[] beforeGroups, 58aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm String[] afterGroups, 59d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust boolean initialize, 60d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust Object instance) 6145a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust { 6210749d45726849381f4ff7384ef7154cec5299d4Jose Dillet super(com.getName(), com, annotationFinder, instance); 63aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm if(initialize) { 64aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm init(); 65aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm } 660f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 67336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isBeforeSuiteConfiguration = isBeforeSuite; 68336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isAfterSuiteConfiguration = isAfterSuite; 69336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 70336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isBeforeTestConfiguration = isBeforeTest; 71336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isAfterTestConfiguration = isAfterTest; 720f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 73336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isBeforeClassConfiguration = isBeforeClass; 74336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isAfterClassConfiguration = isAfterClass; 75336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 76336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isBeforeMethodConfiguration = isBeforeMethod; 77336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_isAfterMethodConfiguration = isAfterMethod; 780f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 79336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_beforeGroups = beforeGroups; 80336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_afterGroups = afterGroups; 810f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 82336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 830f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 840f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin /** 850f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin * @deprecated use #ConfigurationMethod(ConstructorOrMethod,...) instead. 860f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin */ 87b35d5f96bcebbe9f26cb6359101e57b90fcc49bbCédric Beust @Deprecated 880f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin public ConfigurationMethod(Method method, 89aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm IAnnotationFinder annotationFinder, 90aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isBeforeSuite, 91aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterSuite, 92aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isBeforeTest, 93aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterTest, 940f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin boolean isBeforeClass, 95aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterClass, 960f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin boolean isBeforeMethod, 97aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm boolean isAfterMethod, 98aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm String[] beforeGroups, 99d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust String[] afterGroups, 100d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust Object instance) 101aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm { 1020f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin this(new ConstructorOrMethod(method), annotationFinder, isBeforeSuite, isAfterSuite, isBeforeTest, isAfterTest, 1030f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin isBeforeClass, isAfterClass, isBeforeMethod, isAfterMethod, beforeGroups, afterGroups, instance); 1040f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin } 1050f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin 1060f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin public ConfigurationMethod(ConstructorOrMethod com, 1070f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin IAnnotationFinder annotationFinder, 1080f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isBeforeSuite, 1090f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isAfterSuite, 1100f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isBeforeTest, 1110f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isAfterTest, 1120f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isBeforeClass, 1130f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isAfterClass, 1140f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isBeforeMethod, 1150f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin boolean isAfterMethod, 1160f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin String[] beforeGroups, 1170f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin String[] afterGroups, 1180f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin Object instance) { 1190f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin this(com, annotationFinder, isBeforeSuite, isAfterSuite, isBeforeTest, isAfterTest, 120d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust isBeforeClass, isAfterClass, isBeforeMethod, isAfterMethod, beforeGroups, afterGroups, 121d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust true, instance); 122aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm } 123336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 124c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust private static ITestNGMethod[] createMethods(ITestNGMethod[] methods, IAnnotationFinder finder, 125c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isBeforeSuite, 126c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isAfterSuite, 127c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isBeforeTest, 128c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isAfterTest, 129c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isBeforeClass, 130c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isAfterClass, 131c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isBeforeMethod, 132c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust boolean isAfterMethod, 133c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust String[] beforeGroups, 134d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust String[] afterGroups, 135d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust Object instance) 136c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust { 137c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust List<ITestNGMethod> result = Lists.newArrayList(); 138d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt for (ITestNGMethod method : methods) { 139d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt result.add(new ConfigurationMethod(method.getConstructorOrMethod(), 140d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt finder, 141d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isBeforeSuite, 142d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isAfterSuite, 143d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isBeforeTest, 144d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isAfterTest, 145d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isBeforeClass, 146d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isAfterClass, 147d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isBeforeMethod, 148d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt isAfterMethod, 149d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt new String[0], 150d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt new String[0], 151d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt instance)); 152d46142454fa19e07df3851321c2d35df0f52a7daRyan Schmitt } 1530f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 154c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust return result.toArray(new ITestNGMethod[result.size()]); 155c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust } 156c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust 157c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust 158c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust public static ITestNGMethod[] createSuiteConfigurationMethods(ITestNGMethod[] methods, 159d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) { 160c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust return createMethods(methods, annotationFinder, 161c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust isBefore, 162c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust !isBefore, 163c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 164c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 165c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 166c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 167c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 168c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 169c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust new String[0], 170d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust new String[0], 171d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust instance); 172336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 173336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 174336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public static ITestNGMethod[] createTestConfigurationMethods(ITestNGMethod[] methods, 175d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) { 1760f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin return createMethods(methods, annotationFinder, 1770f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1780f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1790f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin isBefore, 1800f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin !isBefore, 1810f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1820f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1830f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1840f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin false, 1850f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin new String[0], 1860f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin new String[0], 1870f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin instance); 188336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 189336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 190336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public static ITestNGMethod[] createClassConfigurationMethods(ITestNGMethod[] methods, 191d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) { 192c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust return createMethods(methods, annotationFinder, 193c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 194c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 195c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 196c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 197c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust isBefore, 198c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust !isBefore, 199c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 200c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 201c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust new String[0], 202d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust new String[0], 203d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust instance); 204336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2050f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 2060f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin public static ITestNGMethod[] createBeforeConfigurationMethods(ITestNGMethod[] methods, 207d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) 208336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust { 209336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust ITestNGMethod[] result = new ITestNGMethod[methods.length]; 210336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust for(int i = 0; i < methods.length; i++) { 2110f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin result[i] = new ConfigurationMethod(methods[i].getConstructorOrMethod(), 212c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust annotationFinder, 213c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 214c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 215c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 216c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 217c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 218c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 219c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 220c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 221c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust isBefore ? methods[i].getBeforeGroups() : new String[0], 222d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust new String[0], 223d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust instance); 224336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2250f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 226336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return result; 227336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 228336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 2290f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin public static ITestNGMethod[] createAfterConfigurationMethods(ITestNGMethod[] methods, 230d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) 231336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust { 232336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust ITestNGMethod[] result = new ITestNGMethod[methods.length]; 233336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust for(int i = 0; i < methods.length; i++) { 2340f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin result[i] = new ConfigurationMethod(methods[i].getConstructorOrMethod(), 235c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust annotationFinder, 236c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 237c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 238c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 239c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 240c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 241c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 242c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 243c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 244c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust new String[0], 245d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust isBefore ? new String[0] : methods[i].getAfterGroups(), 246d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust instance); 247336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2480f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 249336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return result; 250336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2510f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 252336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public static ITestNGMethod[] createTestMethodConfigurationMethods(ITestNGMethod[] methods, 253d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust IAnnotationFinder annotationFinder, boolean isBefore, Object instance) { 254c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust return createMethods(methods, annotationFinder, 255c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 256c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 257c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 258c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 259c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 260c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust false, 261c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust isBefore, 262c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust !isBefore, 263c2f269c2c123407058d36416782b081a39c3f4b4Cédric Beust new String[0], 264d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust new String[0], 265d2cb0ebdfecac643c380d1e84f273f5ba92374a4Cédric Beust instance); 266336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2670f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 268336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 269336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isAfterClassConfiguration. 270336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 271336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 272336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isAfterClassConfiguration() { 273336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isAfterClassConfiguration; 274336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 275336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 276336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isAfterMethodConfiguration. 277336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 278336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 279336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isAfterMethodConfiguration() { 280336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isAfterMethodConfiguration; 281336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 282336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 283336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isBeforeClassConfiguration. 284336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 285336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 286336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isBeforeClassConfiguration() { 287336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isBeforeClassConfiguration; 288336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 289336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 290336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isBeforeMethodConfiguration. 291336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 292336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 293336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isBeforeMethodConfiguration() { 294336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isBeforeMethodConfiguration; 295336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 2960f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 297336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 298336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 299336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isAfterSuiteConfiguration. 300336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 301336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 302336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isAfterSuiteConfiguration() { 303336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isAfterSuiteConfiguration; 304336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 3050f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 306336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust /** 307336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @return Returns the isBeforeSuiteConfiguration. 308336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */ 309336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 310336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isBeforeSuiteConfiguration() { 311336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isBeforeSuiteConfiguration; 312336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 313336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 314336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 315336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isBeforeTestConfiguration() { 316336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isBeforeTestConfiguration; 317336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 318336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 319336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust @Override 320336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isAfterTestConfiguration() { 321336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_isAfterTestConfiguration; 322336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 3230f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 3240f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin @Override 325336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isBeforeGroupsConfiguration() { 326336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_beforeGroups != null && m_beforeGroups.length > 0; 327336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 328336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 3290f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin @Override 330336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust public boolean isAfterGroupsConfiguration() { 331336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_afterGroups != null && m_afterGroups.length > 0; 332336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 333336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 334336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private boolean inheritGroupsFromTestClass() { 335336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust return m_inheritGroupsFromTestClass; 336336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 3370f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 338336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private void init() { 339bc6f64ddd5ba1ec9dc81bc5066eed7984fefa3f6Cédric Beust IAnnotation a = AnnotationHelper.findConfiguration(m_annotationFinder, m_method.getMethod()); 3402d568355761a9632bf24a87984e241f8a079d724Cédric Beust IConfigurationAnnotation annotation = (IConfigurationAnnotation) a; 341336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust if (a != null) { 342336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust m_inheritGroupsFromTestClass = annotation.getInheritGroups(); 3437c34e4fb500043899ef7c6cc29c62e4c2026d0b5Cédric Beust setEnabled(annotation.getEnabled()); 344336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust setDescription(annotation.getDescription()); 345336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 346336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 347336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust if (annotation != null && annotation.isFakeConfiguration()) { 3480f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getBeforeSuite()) { 3490f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IBeforeSuite.class); 3500f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3510f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getAfterSuite()) { 3520f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IAfterSuite.class); 3530f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3540f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getBeforeTest()) { 3550f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IBeforeTest.class); 3560f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3570f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getAfterTest()) { 3580f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IAfterTest.class); 3590f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3600f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getBeforeGroups().length != 0) { 3610f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IBeforeGroups.class); 3620f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3630f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getAfterGroups().length != 0) { 3640f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IAfterGroups.class); 3650f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3660f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getBeforeTestClass()) { 3670f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IBeforeClass.class); 3680f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3690f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getAfterTestClass()) { 3700f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IAfterClass.class); 3710f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3720f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getBeforeTestMethod()) { 3730f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IBeforeMethod.class); 3740f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 3750f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin if (annotation.getAfterTestMethod()) { 3760f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin initGroups(IAfterMethod.class); 3770f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin } 378336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 379336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust else { 3802d568355761a9632bf24a87984e241f8a079d724Cédric Beust initGroups(IConfigurationAnnotation.class); 381336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 382336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 383336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust // If this configuration method has inherit-groups=true, add the groups 384336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust // defined in the @Test class 385336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust if (inheritGroupsFromTestClass()) { 3865153b6767f7cafe0916e73eac9a6d31838e7592aVladislav Rassokhin ITestAnnotation classAnnotation = m_annotationFinder.findAnnotation(m_methodClass, ITestAnnotation.class); 387336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust if (classAnnotation != null) { 388336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust String[] groups = classAnnotation.getGroups(); 3890f6db64c011bc71dcdb432d7d27730b04f5ef2c1Cédric Beust Map<String, String> newGroups = Maps.newHashMap(); 390336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust for (String g : getGroups()) { 391336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust newGroups.put(g, g); 392336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 393336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust if (groups != null) { 394336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust for (String g : groups) { 395336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust newGroups.put(g, g); 396336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 397336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust setGroups(newGroups.values().toArray(new String[newGroups.size()])); 398336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 399336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 400336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 401830ff4bf3fbfae0d63cb762b9c0d9a184feb58a3Cédric Beust 4021963187da6a45f898e62e4e922faac6b9382b4e4nullin if (annotation != null) { 4031963187da6a45f898e62e4e922faac6b9382b4e4nullin setTimeOut(annotation.getTimeOut()); 4041963187da6a45f898e62e4e922faac6b9382b4e4nullin } 405336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 4060f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 407336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust private static void ppp(String s) { 408336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust System.out.println("[ConfigurationMethod] " + s); 409336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust } 410336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 4110f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin @Override 412aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm public ConfigurationMethod clone() { 4130f4cf7bdb6fa5515ebc62e29ee7f88d5410e0326Vladislav Rassokhin ConfigurationMethod clone= new ConfigurationMethod(getConstructorOrMethod(), 414aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm getAnnotationFinder(), 415aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isBeforeSuiteConfiguration(), 416aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isAfterSuiteConfiguration(), 417aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isBeforeTestConfiguration(), 418aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isAfterTestConfiguration(), 419aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isBeforeClassConfiguration(), 420aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isAfterClassConfiguration(), 421aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isBeforeMethodConfiguration(), 422aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm isAfterMethodConfiguration(), 423aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm getBeforeGroups(), 424aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm getAfterGroups(), 425f2c9bcdd798a553f2d0400a51a1a480a414edae2Cédric Beust false /* do not call init() */, 426f2c9bcdd798a553f2d0400a51a1a480a414edae2Cédric Beust getInstance() 427aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm ); 428aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.m_testClass= getTestClass(); 429aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setDate(getDate()); 430aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setGroups(getGroups()); 4315c10ec0ace583f43750bd4ba280df7d2c638db04Cédric Beust clone.setGroupsDependedUpon(getGroupsDependedUpon(), Collections.<String>emptyList()); 432aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setMethodsDependedUpon(getMethodsDependedUpon()); 433aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setAlwaysRun(isAlwaysRun()); 434aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setMissingGroup(getMissingGroup()); 435aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setDescription(getDescription()); 4367c34e4fb500043899ef7c6cc29c62e4c2026d0b5Cédric Beust clone.setEnabled(getEnabled()); 437aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.setParameterInvocationCount(getParameterInvocationCount()); 438aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm clone.m_inheritGroupsFromTestClass= inheritGroupsFromTestClass(); 439336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 440aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm return clone; 441aec0b211238fc0ecc0095927c67ec4397311e705the.mindstorm } 4420f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin 44345a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust public boolean isFirstTimeOnly() { 44445a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust boolean result = false; 44545a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust IAnnotation before = m_annotationFinder.findAnnotation(getMethod(), IBeforeMethod.class); 44645a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust if (before != null) { 44745a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust result = ((ConfigurationAnnotation) before).isFirstTimeOnly(); 44845a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust } 44945a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust return result; 45045a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust } 45145a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust 45245a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust public boolean isLastTimeOnly() { 45345a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust boolean result = false; 45445a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust IAnnotation before = m_annotationFinder.findAnnotation(getMethod(), IAfterMethod.class); 45545a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust if (before != null) { 45645a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust result = ((ConfigurationAnnotation) before).isLastTimeOnly(); 45745a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust } 45845a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust return result; 45945a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust } 46045a161fb7f6ba0937ec480fef1a803524bc07214Cédric Beust 461336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust} 462336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust 463