private static boolean[] getAllowedDirections(AtomicQuery query) {
   boolean[] dirs = new boolean[4];
   if (query.queryProperties()) {
     assert query.isAllowedDirection(EdgeDirection.OUT);
     dirs[0] = true;
   }
   if (query.queryRelationships()) {
     Direction d = Direction.BOTH;
     if (query.hasDirectionCondition()) {
       d = query.getDirectionCondition();
     }
     switch (d) {
       case IN:
         dirs[3] = true;
         break;
       case OUT:
         dirs[2] = true;
         break;
       case BOTH:
         dirs[2] = true;
         dirs[3] = true;
         break;
     }
   }
   return dirs;
 }