public byte[] getBytes(ByteOrder order) {
        ByteBuffer buf = ByteBuffer.allocate(Message.HEADER_SIZE + dataSize);
        buf.order(order);

        buf.putInt(opcode);        
        buf.putShort(operatorId);  
        buf.putShort(dataSize);
                  
        
        if(dataSize > 0 && data != null && data.length > 0) {
            buf.put(data);
        }
        
        return buf.array();
    }