// Path: java/src/main/java/com/inmobi/monetization/api/request/enums/AdRequest.java
// public enum AdRequest {
// 	BANNER,INTERSTITIAL,NATIVE,NONE
// }
// 
// Path: java/src/main/java/com/inmobi/monetization/api/request/utils/Validator.java
// public interface Validator {
// 
// 	public boolean isValid();
// }
// 
// Path: android/android_inmobi/src/main/java/com/inmobi/monetization/api/utils/InternalUtil.java
// public class InternalUtil {
// 
// 	/**
// 	 * Used for logging purpose.
// 	 */
// 	public static final String LIB_VERSION = "1.0";
// 	/**
// 	 * InMobi specific Logging tag.
// 	 */
// 	public static final String LOGGING_TAG = "InMobi_Lib_" + LIB_VERSION;
// 
// 	private static LogLevel logLevel = LogLevel.DEBUG;
// 	/**
// 	 * Uses StringUtils.isBlank() API to check for blank strings.
// 	 * 
// 	 * @param cs
// 	 *            The String, for which the check has to be made.
// 	 * @return false, if the String passed is null or empty. True, otherwise.
// 	 */
// 	public static boolean isBlank(String cs) {
// 		return TextUtils.isEmpty(cs);
// 	}
// 	public static LogLevel getLogLevel() {
// 		return logLevel;
// 	}
// 	public static void setLogLevel(LogLevel logLevel) {
// 		InternalUtil.logLevel = logLevel;
// 	}
// 	
// 	public static void Log(String msg,LogLevel level) {
// 		if(level.value >= logLevel.value) {
// 			System.out.println(msg);
// 		}
// 	}
// 	
// }
// 
// Path: java/src/main/java/com/inmobi/monetization/api/utils/LogLevel.java
// public enum LogLevel {
// 	NONE(4),DEBUG(3),WARNING(2),ERROR(1);
// 	
// 	public final int value;
// 	
// 	private LogLevel(int value) {
// 		this.value = value;
// 	}
// }


import main.java.com.inmobi.monetization.api.request.enums.AdRequest;
import main.java.com.inmobi.monetization.api.request.utils.Validator;
import main.java.com.inmobi.monetization.api.utils.InternalUtil;
import main.java.com.inmobi.monetization.api.utils.LogLevel;
		boolean isValid = false;
		if (property != null && property.isValid()) {
			if (device != null && device.isValid()) {

				if (requestType == AdRequest.NATIVE) {
					// impression is not mandatory for native ads.
					if (user != null) {
						isValid = user.isValid();
					} else {
						isValid = true;
					}
				} else if (requestType == AdRequest.BANNER
						|| requestType == AdRequest.INTERSTITIAL) {
					if (impression != null && impression.isValid()) {

						if (user != null) {
							isValid = user.isValid();
						} else {
							isValid = true;
						}
					} else {
						InternalUtil.Log("Please provide a valid Impression in the request",LogLevel.ERROR);
					}
				} else {
					InternalUtil.Log("Valid AdRequest enum not found.",LogLevel.ERROR);
				}
			} else {
				InternalUtil.Log("Please provide a valid Device in the request",LogLevel.ERROR);
			}
		} else {
// Path: java/src/main/java/com/inmobi/monetization/api/request/enums/AdRequest.java
// public enum AdRequest {
// 	BANNER,INTERSTITIAL,NATIVE,NONE
// }
// 
// Path: java/src/main/java/com/inmobi/monetization/api/request/utils/Validator.java
// public interface Validator {
// 
// 	public boolean isValid();
// }
// 
// Path: android/android_inmobi/src/main/java/com/inmobi/monetization/api/utils/InternalUtil.java
// public class InternalUtil {
// 
// 	/**
// 	 * Used for logging purpose.
// 	 */
// 	public static final String LIB_VERSION = "1.0";
// 	/**
// 	 * InMobi specific Logging tag.
// 	 */
// 	public static final String LOGGING_TAG = "InMobi_Lib_" + LIB_VERSION;
// 
// 	private static LogLevel logLevel = LogLevel.DEBUG;
// 	/**
// 	 * Uses StringUtils.isBlank() API to check for blank strings.
// 	 * 
// 	 * @param cs
// 	 *            The String, for which the check has to be made.
// 	 * @return false, if the String passed is null or empty. True, otherwise.
// 	 */
// 	public static boolean isBlank(String cs) {
// 		return TextUtils.isEmpty(cs);
// 	}
// 	public static LogLevel getLogLevel() {
// 		return logLevel;
// 	}
// 	public static void setLogLevel(LogLevel logLevel) {
// 		InternalUtil.logLevel = logLevel;
// 	}
// 	
// 	public static void Log(String msg,LogLevel level) {
// 		if(level.value >= logLevel.value) {
// 			System.out.println(msg);
// 		}
// 	}
// 	
// }
// 
// Path: java/src/main/java/com/inmobi/monetization/api/utils/LogLevel.java
// public enum LogLevel {
// 	NONE(4),DEBUG(3),WARNING(2),ERROR(1);
// 	
// 	public final int value;
// 	
// 	private LogLevel(int value) {
// 		this.value = value;
// 	}
// }


// Path: java/src/main/java/com/inmobi/monetization/api/request/ad/Request.java
import main.java.com.inmobi.monetization.api.request.enums.AdRequest;
import main.java.com.inmobi.monetization.api.request.utils.Validator;
import main.java.com.inmobi.monetization.api.utils.InternalUtil;
import main.java.com.inmobi.monetization.api.utils.LogLevel;

		boolean isValid = false;
		if (property != null && property.isValid()) {
			if (device != null && device.isValid()) {

				if (requestType == AdRequest.NATIVE) {
					// impression is not mandatory for native ads.
					if (user != null) {
						isValid = user.isValid();
					} else {
						isValid = true;
					}
				} else if (requestType == AdRequest.BANNER
						|| requestType == AdRequest.INTERSTITIAL) {
					if (impression != null && impression.isValid()) {

						if (user != null) {
							isValid = user.isValid();
						} else {
							isValid = true;
						}
					} else {
						InternalUtil.Log("Please provide a valid Impression in the request",LogLevel.ERROR);
					}
				} else {
					InternalUtil.Log("Valid AdRequest enum not found.",LogLevel.ERROR);
				}
			} else {
				InternalUtil.Log("Please provide a valid Device in the request",LogLevel.ERROR);
			}
		} else {
			InternalUtil.Log("Please provide a valid Property in the request",LogLevel.ERROR);