// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static void checkArgument (boolean expression) {
// 	if (!expression) {
// 		throw new IllegalArgumentException();
// 	}
// }
// 
// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static <T> T checkNotNull (T reference) {
// 	if (reference == null) {
// 		throw new NullPointerException();
// 	}
// 	return reference;
// }


import static hk.miru.javapgm.Preconditions.checkArgument;
import static hk.miru.javapgm.Preconditions.checkNotNull;
import javax.annotation.Nullable;
/* Unique identifier for each PGM transport session.
 */
package hk.miru.javapgm;



public class TransportSessionId
{
	private GlobalSourceId gsi = null;
	private int sourcePort = 0;

	public TransportSessionId (@Nullable GlobalSourceId gsi, int sourcePort) {
                this.gsi = gsi;
                this.sourcePort = sourcePort;
	}

// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static void checkArgument (boolean expression) {
// 	if (!expression) {
// 		throw new IllegalArgumentException();
// 	}
// }
// 
// Path: src/main/java/hk/miru/javapgm/Preconditions.java
// public static <T> T checkNotNull (T reference) {
// 	if (reference == null) {
// 		throw new NullPointerException();
// 	}
// 	return reference;
// }


// Path: src/main/java/hk/miru/javapgm/TransportSessionId.java
import static hk.miru.javapgm.Preconditions.checkArgument;
import static hk.miru.javapgm.Preconditions.checkNotNull;
import javax.annotation.Nullable;

/* Unique identifier for each PGM transport session.
 */
package hk.miru.javapgm;



public class TransportSessionId
{
	private GlobalSourceId gsi = null;
	private int sourcePort = 0;

	public TransportSessionId (@Nullable GlobalSourceId gsi, int sourcePort) {
                this.gsi = gsi;
                this.sourcePort = sourcePort;
	}

	public TransportSessionId (TransportSessionId tsi) {