// Path: src/main/java/de/vivistra/telegrambot/utils/Assert.java
// public class Assert {
// 	public static void notNull(Object value) {
// 
// 		if (Tester.isNull(value)) {
// 			throw new IllegalArgumentException("Argument is NULL.");
// 		}
// 	}
// 
// 	public static void notEmpty(String value) {
// 
// 		if (Tester.isEmpty(value)) {
// 			throw new IllegalArgumentException("Argument is NULL or empty.");
// 		}
// 	}
// 
// }
// 
// Path: src/main/java/de/vivistra/telegrambot/utils/Tester.java
// public class Tester {
// 	public static boolean isNull(Object value) {
// 		return (value == null);
// 	}
// 
// 	public static boolean isEmpty(String value) {
// 
// 		return (isNull(value) || value.isEmpty());
// 	}
// }


import org.json.JSONObject;
import de.vivistra.telegrambot.utils.Assert;
import de.vivistra.telegrambot.utils.Tester;
package de.vivistra.telegrambot.model;



/**
 * This class represents a Telegram user or bot
 */
public class User {
	// Unique identifier for this user or bot
	private Long id;
	// User's or bot's first name
	private String firstName;
	// Optional. User's or bot's last name
	private String lastName;
	// Optional. User's or bot's username
	private String userName;

	/**
	 * Constructor for a user or bot object
	 * 
	 * @param id
	 * @param firstName
	 * @param lastName
	 * @param userName
	 */
	public User(Long id, String firstName, String lastName, String userName) {
// Path: src/main/java/de/vivistra/telegrambot/utils/Assert.java
// public class Assert {
// 	public static void notNull(Object value) {
// 
// 		if (Tester.isNull(value)) {
// 			throw new IllegalArgumentException("Argument is NULL.");
// 		}
// 	}
// 
// 	public static void notEmpty(String value) {
// 
// 		if (Tester.isEmpty(value)) {
// 			throw new IllegalArgumentException("Argument is NULL or empty.");
// 		}
// 	}
// 
// }
// 
// Path: src/main/java/de/vivistra/telegrambot/utils/Tester.java
// public class Tester {
// 	public static boolean isNull(Object value) {
// 		return (value == null);
// 	}
// 
// 	public static boolean isEmpty(String value) {
// 
// 		return (isNull(value) || value.isEmpty());
// 	}
// }


// Path: src/main/java/de/vivistra/telegrambot/model/User.java
import org.json.JSONObject;
import de.vivistra.telegrambot.utils.Assert;
import de.vivistra.telegrambot.utils.Tester;

package de.vivistra.telegrambot.model;



/**
 * This class represents a Telegram user or bot
 */
public class User {
	// Unique identifier for this user or bot
	private Long id;
	// User's or bot's first name
	private String firstName;
	// Optional. User's or bot's last name
	private String lastName;
	// Optional. User's or bot's username
	private String userName;

	/**
	 * Constructor for a user or bot object
	 * 
	 * @param id
	 * @param firstName
	 * @param lastName
	 * @param userName
	 */
	public User(Long id, String firstName, String lastName, String userName) {
		Assert.notNull(id);