class DataValidation {

	// Uses null
	public static String validateName(String name) {
		if (name.length() == 0) return null;
		if (!Character.isUpperCase(name.charAt(0))) return null;
		for (int i = 1; i < name.length(); i++)
			if (!Character.isLowerCase(name.charAt(i))) return null;
		return name;
	}

	// Uses trailer value (-1)
	public static int validateAssignment(int grade) {
		return grade >= 0 && grade <= 10 ? grade : -1;
	}

	// Uses result object	
	static class Result {
		Result(boolean isValid, String grade) {
			this.isValid = isValid;
			this.grade = grade;
		}
		Result(String grade) {this(true, grade);}
		Result(boolean isValid) {this(isValid, "");}

		public boolean isValid;
		public String grade;
	}

	public static Result validateProject(String grade) {
		return "ABCDF".indexOf(grade) >= 0 ? new Result(grade) : new Result(false);
	}

	// Uses guard method
	public static boolean validateExam(int grade) {
		return grade >= 0 && grade <= 100 ? true : false;
	}
}

		

