public class A {
	/**
	 * 
	 * 
	 */
	void foo(long l, int i, String s, Object o) throws IOException {
		if (condition1 && condition2 && condition3 || condition4
				&& (condition5 && condition6))
		{
			System.out.println(4);
		}
	}
}