// Path: javax.usb/src/main/java/javax/usb/UsbIrp.java
// public interface UsbIrp {
//     void complete();
// 
//     boolean getAcceptShortPacket();
// 
//     int getActualLength();
// 
//     byte[] getData();
// 
//     int getLength();
// 
//     int getOffset();
// 
//     UsbException getUsbException();
// 
//     boolean isComplete();
// 
//     boolean isUsbException();
// 
//     void setAcceptShortPacket(boolean accept);
// 
//     void setActualLength(int length);
// 
//     void setComplete(boolean complete);
// 
//     void setData(byte[] data);
// 
//     void setData(byte[] data, int offset, int length);
// 
//     void setLength(int length);
// 
//     void setOffset(int offset);
// 
//     void setUsbException(UsbException usbException);
// 
//     void waitUntilComplete();
// 
//     void waitUntilComplete(long timeout);
// }
// 
// Path: javax.usb/src/main/java/javax/usb/UsbPipe.java
// public interface UsbPipe {
//     void abortAllSubmissions() throws UsbNotActiveException, UsbNotOpenException, UsbDisconnectedException;
// 
//     void addUsbPipeListener(UsbPipeListener listener);
// 
//     UsbIrp asyncSubmit(byte[] data) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void asyncSubmit(List list) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void asyncSubmit(UsbIrp irp) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void close() throws UsbException, UsbNotActiveException, UsbNotOpenException, UsbDisconnectedException;
// 
//     UsbControlIrp createUsbControlIrp(byte bmRequestType, byte bRequest, short wValue, short wIndex);
// 
//     UsbIrp createUsbIrp();
// 
//     UsbEndpoint getUsbEndpoint();
// 
//     boolean isActive();
// 
//     boolean isOpen();
// 
//     void open() throws UsbException, UsbNotActiveException, UsbNotClaimedException, UsbDisconnectedException;
// 
//     void removeUsbPipeListener(UsbPipeListener listener);
// 
//     int syncSubmit(byte[] data) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void syncSubmit(List<UsbIrp> list) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void syncSubmit(UsbIrp irp) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// }


import javax.usb.UsbIrp;
import javax.usb.UsbPipe;
package javax.usb.event;


public class UsbPipeDataEvent extends UsbPipeEvent {

    private byte[] data;
    private int actualLength;

    public UsbPipeDataEvent(UsbPipe source, byte[] data, int actualLength) {
        super(source);
        this.data = data;
        this.actualLength = actualLength;
    }

// Path: javax.usb/src/main/java/javax/usb/UsbIrp.java
// public interface UsbIrp {
//     void complete();
// 
//     boolean getAcceptShortPacket();
// 
//     int getActualLength();
// 
//     byte[] getData();
// 
//     int getLength();
// 
//     int getOffset();
// 
//     UsbException getUsbException();
// 
//     boolean isComplete();
// 
//     boolean isUsbException();
// 
//     void setAcceptShortPacket(boolean accept);
// 
//     void setActualLength(int length);
// 
//     void setComplete(boolean complete);
// 
//     void setData(byte[] data);
// 
//     void setData(byte[] data, int offset, int length);
// 
//     void setLength(int length);
// 
//     void setOffset(int offset);
// 
//     void setUsbException(UsbException usbException);
// 
//     void waitUntilComplete();
// 
//     void waitUntilComplete(long timeout);
// }
// 
// Path: javax.usb/src/main/java/javax/usb/UsbPipe.java
// public interface UsbPipe {
//     void abortAllSubmissions() throws UsbNotActiveException, UsbNotOpenException, UsbDisconnectedException;
// 
//     void addUsbPipeListener(UsbPipeListener listener);
// 
//     UsbIrp asyncSubmit(byte[] data) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void asyncSubmit(List list) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void asyncSubmit(UsbIrp irp) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void close() throws UsbException, UsbNotActiveException, UsbNotOpenException, UsbDisconnectedException;
// 
//     UsbControlIrp createUsbControlIrp(byte bmRequestType, byte bRequest, short wValue, short wIndex);
// 
//     UsbIrp createUsbIrp();
// 
//     UsbEndpoint getUsbEndpoint();
// 
//     boolean isActive();
// 
//     boolean isOpen();
// 
//     void open() throws UsbException, UsbNotActiveException, UsbNotClaimedException, UsbDisconnectedException;
// 
//     void removeUsbPipeListener(UsbPipeListener listener);
// 
//     int syncSubmit(byte[] data) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void syncSubmit(List<UsbIrp> list) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// 
//     void syncSubmit(UsbIrp irp) throws UsbException, UsbNotActiveException, UsbNotOpenException, IllegalArgumentException, UsbDisconnectedException;
// }


// Path: javax.usb/src/main/java/javax/usb/event/UsbPipeDataEvent.java
import javax.usb.UsbIrp;
import javax.usb.UsbPipe;

package javax.usb.event;


public class UsbPipeDataEvent extends UsbPipeEvent {

    private byte[] data;
    private int actualLength;

    public UsbPipeDataEvent(UsbPipe source, byte[] data, int actualLength) {
        super(source);
        this.data = data;
        this.actualLength = actualLength;
    }

    public UsbPipeDataEvent(UsbPipe source, UsbIrp usbIrp) {