public void doNodeLevelValidation(String lhs, String lhsv, String oper, String rhsv, 
			AcceptanceTestContext context, TestCase testCase, TestCaseReport testCaseReport) {
		if(hasValidationFunction(lhs)) 
		{
			boolean isLiveProvider = lhs.startsWith("#liveProviderValidation[");
			boolean isResponseHeader = lhs.startsWith("#responseHeader[");
			boolean isResponseCookie = lhs.startsWith("#responseCookie[");
			String path = lhs.substring(lhs.indexOf("[")+1, lhs.length()-1);
			if(isResponseHeader)
			{
				Assert.assertTrue("Specified header not found - "+path, testCaseReport.getResHeaders()!=null
						&& testCaseReport.getResHeaders().containsKey(path));
				lhsv = testCaseReport.getResHeaders().get(path).get(0);
			}
			else if(isResponseCookie)
			{
				Map<String, String> cookieMap = context.getWorkflowContextHandler().getCookies(testCase);
				Assert.assertTrue("Specified Cookie not found - "+path, cookieMap!=null
						&& cookieMap.containsKey(path));
				lhsv = cookieMap.get(path);
			}
			else
			{
				String[] pathelements = path.split("\\.");
				if(pathelements.length<3)
				{
					throw new AssertionError("Invalid nomenclature for provider validation node, can have only 3 elements) - " + lhs);
				}
				List<Map<String, String>> provData = null;
				if(isLiveProvider)
					provData = context.getLiveProviderData(pathelements[0], testCase);
				else
					provData = context.getProviderTestDataMap().get(pathelements[0]);
				Assert.assertNotNull("Provider not found - " + pathelements[0], provData);
				int index = -1;
				try {
					index = Integer.parseInt(pathelements[1]);
				} catch (Exception e) {
					Assert.assertNotNull("Provider index has to be a number - " + pathelements[1], null);
				}
				Assert.assertTrue("Specified index is outside provider data range - "+pathelements[1], 
						index>=0 && index<provData.size());
				Map<String, String> row = provData.get(index);
				Assert.assertNotNull("Provider row not found - " + index, row);
				Assert.assertTrue("Specified provider property not found - "+pathelements[2], row.containsKey(pathelements[2]));
				lhsv = row.get(pathelements[2]);
			}
		}
		compare(lhsv, oper, rhsv, lhs);
	}