Data providers providing different sets of data depending upon the calling test

We can define a data provider that provides different sets of data depending upon which test is calling that data provider

@DataProvider(name="DifferentSetDataProvider")
public static Object[][] DifferentSetData(Method m){
Object[][] data = null;
if(m.getName().equals("TestA")){
//row 1
data = new Object[3][4];
data[0][0] = "U1";
data[0][1] = "E1";...............}
else {
data = new Object[3][4];
data[0][0] = "L1";
data[0][1] = "P1";...............}
return data;
}

Here Method m is passed into data provider function as argument and m.getName() will give the name of function which called this data provider function to give it data.