// Path: src/test/java/org/vaadin/easybinder/testentity/Flight.java
// @FlightValid
// @GroupSequenceProvider(FlightGroupProvider.class)
// public class Flight {
// 	@Valid
// 	FlightId flightId;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date sbt;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date ebt;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date abt;
// 
// 	@NotNull(groups = FlightGroupProvider.Scheduled.class, message = "Gate should be set when scheduled")
// 	String gate;
// 	
// 	boolean canceled;
// 
// 	public Flight() {
// 		flightId = new FlightId();
// 	}
// 
// 	/**
// 	 * @return the flightId
// 	 */
// 	public FlightId getFlightId() {
// 		return flightId;
// 	}
// 
// 	/**
// 	 * @param flightId
// 	 *            the flightId to set
// 	 */
// 	public void setFlightId(FlightId flightId) {
// 		this.flightId = flightId;
// 	}
// 
// 	/**
// 	 * @return the sbt
// 	 */
// 	public Date getSbt() {
// 		return sbt;
// 	}
// 
// 	/**
// 	 * @return the ebt
// 	 */
// 	public Date getEbt() {
// 		return ebt;
// 	}
// 
// 	/**
// 	 * @return the abt
// 	 */
// 	public Date getAbt() {
// 		return abt;
// 	}
// 
// 	/**
// 	 * @return the gate
// 	 */
// 	public String getGate() {
// 		return gate;
// 	}
// 
// 	/**
// 	 * @param sbt
// 	 *            the sbt to set
// 	 */
// 	public void setSbt(Date sbt) {
// 		this.sbt = sbt;
// 	}
// 
// 	/**
// 	 * @param ebt
// 	 *            the ebt to set
// 	 */
// 	public void setEbt(Date ebt) {
// 		this.ebt = ebt;
// 	}
// 
// 	/**
// 	 * @param abt
// 	 *            the abt to set
// 	 */
// 	public void setAbt(Date abt) {
// 		this.abt = abt;
// 	}
// 
// 	/**
// 	 * @param gate
// 	 *            the gate to set
// 	 */
// 	public void setGate(String gate) {
// 		this.gate = gate;
// 	}
// 	
// 	public void setCanceled(boolean canceled) {
// 		this.canceled = canceled;
// 	}
// 	
// 	public boolean getCanceled() {
// 		return canceled;
// 	}
// 
// 	public boolean isCanceled() {
// 		return canceled;
// 	}
// 
// }
// 
// Path: src/test/java/org/vaadin/easybinder/testentity/FlightId.java
// public static enum LegType {
// 	DEPARTURE, ARRIVAL
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.EnumSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.junit.Test;
import org.vaadin.easybinder.testentity.Flight;
import org.vaadin.easybinder.testentity.FlightId.LegType;
import com.vaadin.annotations.PropertyId;
import com.vaadin.data.HasValue;
import com.vaadin.ui.AbstractSingleSelect;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.DateField;
import com.vaadin.ui.DateTimeField;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextField;
package org.vaadin.easybinder.usagetest;





public abstract class BaseTests {

	static class MyForm {
		@PropertyId("flightId.airline")
		TextField airline = new TextField("Airline");
		@PropertyId("flightId.flightNumber")
		TextField flightNumber = new TextField("Flight number");
		@PropertyId("flightId.flightSuffix")
		TextField flightSuffix = new TextField("Flight suffix");
		@PropertyId("flightId.date")
		DateField date = new DateField("Date");
		@PropertyId("flightId.legType")
// Path: src/test/java/org/vaadin/easybinder/testentity/Flight.java
// @FlightValid
// @GroupSequenceProvider(FlightGroupProvider.class)
// public class Flight {
// 	@Valid
// 	FlightId flightId;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date sbt;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date ebt;
// 
// 	@Temporal(TemporalType.TIMESTAMP)
// 	Date abt;
// 
// 	@NotNull(groups = FlightGroupProvider.Scheduled.class, message = "Gate should be set when scheduled")
// 	String gate;
// 	
// 	boolean canceled;
// 
// 	public Flight() {
// 		flightId = new FlightId();
// 	}
// 
// 	/**
// 	 * @return the flightId
// 	 */
// 	public FlightId getFlightId() {
// 		return flightId;
// 	}
// 
// 	/**
// 	 * @param flightId
// 	 *            the flightId to set
// 	 */
// 	public void setFlightId(FlightId flightId) {
// 		this.flightId = flightId;
// 	}
// 
// 	/**
// 	 * @return the sbt
// 	 */
// 	public Date getSbt() {
// 		return sbt;
// 	}
// 
// 	/**
// 	 * @return the ebt
// 	 */
// 	public Date getEbt() {
// 		return ebt;
// 	}
// 
// 	/**
// 	 * @return the abt
// 	 */
// 	public Date getAbt() {
// 		return abt;
// 	}
// 
// 	/**
// 	 * @return the gate
// 	 */
// 	public String getGate() {
// 		return gate;
// 	}
// 
// 	/**
// 	 * @param sbt
// 	 *            the sbt to set
// 	 */
// 	public void setSbt(Date sbt) {
// 		this.sbt = sbt;
// 	}
// 
// 	/**
// 	 * @param ebt
// 	 *            the ebt to set
// 	 */
// 	public void setEbt(Date ebt) {
// 		this.ebt = ebt;
// 	}
// 
// 	/**
// 	 * @param abt
// 	 *            the abt to set
// 	 */
// 	public void setAbt(Date abt) {
// 		this.abt = abt;
// 	}
// 
// 	/**
// 	 * @param gate
// 	 *            the gate to set
// 	 */
// 	public void setGate(String gate) {
// 		this.gate = gate;
// 	}
// 	
// 	public void setCanceled(boolean canceled) {
// 		this.canceled = canceled;
// 	}
// 	
// 	public boolean getCanceled() {
// 		return canceled;
// 	}
// 
// 	public boolean isCanceled() {
// 		return canceled;
// 	}
// 
// }
// 
// Path: src/test/java/org/vaadin/easybinder/testentity/FlightId.java
// public static enum LegType {
// 	DEPARTURE, ARRIVAL
// }


// Path: src/test/java/org/vaadin/easybinder/usagetest/BaseTests.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.EnumSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.junit.Test;
import org.vaadin.easybinder.testentity.Flight;
import org.vaadin.easybinder.testentity.FlightId.LegType;
import com.vaadin.annotations.PropertyId;
import com.vaadin.data.HasValue;
import com.vaadin.ui.AbstractSingleSelect;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.DateField;
import com.vaadin.ui.DateTimeField;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextField;

package org.vaadin.easybinder.usagetest;





public abstract class BaseTests {

	static class MyForm {
		@PropertyId("flightId.airline")
		TextField airline = new TextField("Airline");
		@PropertyId("flightId.flightNumber")
		TextField flightNumber = new TextField("Flight number");
		@PropertyId("flightId.flightSuffix")
		TextField flightSuffix = new TextField("Flight suffix");
		@PropertyId("flightId.date")
		DateField date = new DateField("Date");
		@PropertyId("flightId.legType")
		AbstractSingleSelect<LegType> legType = new ComboBox<>("Leg type", EnumSet.allOf(LegType.class));