code: private static Map<Locale, String> getAllPageDocs(IAnnotationBinding[] annotations) {
          // all @PageDoc or @Page annotations including annotations contained in @PageDocs or @Page
          List<IAnnotationBinding> allPageAnnotations = new ArrayList<>(2);
  
          List<Class<?>> singlePageAnnotationClasses = new ArrayList<>(2);
          singlePageAnnotationClasses.add(PageDoc.class);
          singlePageAnnotationClasses.add(Page.class);
          for (Class<?> annotationClass : singlePageAnnotationClasses) {
              IAnnotationBinding annotation = getAnnotationBinding(annotations, annotationClass);
              if (annotation == null) {
                  continue; // annotation is not found
              }
              if (allPageAnnotations.size() > 0) {
                  // TODO throw IllegalTestScriptException
                  throw new RuntimeException("don't use multiple page annoations at the same place");
              }
              allPageAnnotations.add(annotation);
          }
  
          List<Class<?>> multiplePageAnnotationClasses = new ArrayList<>(2);
          multiplePageAnnotationClasses.add(PageDocs.class);
          multiplePageAnnotationClasses.add(Pages.class);
          for (Class<?> annotationClass : multiplePageAnnotationClasses) {
              IAnnotationBinding annotation = getAnnotationBinding(annotations, annotationClass);
              if (annotation == null) {
                  continue; // annotation is not found
              }
              if (allPageAnnotations.size() > 0) {
                  // TODO throw IllegalTestScriptException
                  throw new RuntimeException("don't use multiple page annoations at the same place");
              }
              // get @PageDoc or @Page from @PageDocs or @Pages
              Object value = getAnnotationValue(annotation, "value");
              Object[] values = (Object[]) value;
              for (Object element : values) {
                  allPageAnnotations.add((IAnnotationBinding) element);
              }
          }
  
          // get resultPageMap
          Map<Locale, String> resultPageMap = new HashMap<>(allPageAnnotations.size());
          for (IAnnotationBinding eachPageAnnotation : allPageAnnotations) {
              Object value = getAnnotationValue(eachPageAnnotation, "value");
              Locale locale = getAnnotationLocaleValue(eachPageAnnotation, "locale");
              resultPageMap.put(locale, (String) value);
          }
  
          return resultPageMap;
      }
docs: return empty list if no Page is found