def execute(self):
        self._client_socket_wrapper.write('QUERY?')
        query = self._client_socket_wrapper.read()
        query_parser = QueryParser()
        try:
            query_obj = query_parser.parse(query)
        except:
            self._client_socket_wrapper.write(str(-1))
            message = self._client_socket_wrapper.read()
            message = 'Error occurred while parsing the query.'
            data = json.dumps(message)
            self._client_socket_wrapper.write(data)
            return


        self._query_id = query_obj.get_query_id()
        self._client_socket_wrapper.write(self._query_id)
        self.send(self._communication_service.get_name(), 'QueryProcessor', query_obj)
        #query_processor = QueryProcessor(query_obj, self._communication_service, self)
        #query_processor.process()
        message = self._client_socket_wrapper.read()
        if message != 'OK':
            return

        source_name, source_service, message = self._queue.get()
        data = json.dumps(message)
        self._client_socket_wrapper.write(data)
class QueryParserTest(unittest.TestCase):
    def setUp(self):
        self._qp = QueryParser()

    def tearDown(self):
        pass

    def test_query(self):
        query = "insert Node Person { name:'Sagar Chakravarthy', age:21 }"
        # self._qp.parse(query)

        query = "find moviea:Movie -movieedge:MovieEdge> movieb:Movie where moviea.name == 'Inception' || movieb.year >= 2012 return movieb.name"
        print(query[64:])
        obj = self._qp.parse(query)
        obj.display()
 def setUp(self):
     self._qp = QueryParser()