コード例 #1
0
  private <T extends PageObject> void initializeFieldAsPageObject(
      Field field, T pageInstance, Browser browser) {

    Identification identification = getIdentificationForField(field);

    PageObjectModel metaData =
        PageObjectModel.forPageFragment(browser, identification, pageInstance);
    metaData.setCaching(getCachingForField(field));
    metaData.setName(getNameForField(field));

    try {
      PageObject pageObject = create((Class<? extends PageObject>) field.getType(), metaData);
      ReflectionUtils.forceSetField(field, pageInstance, pageObject);
    } catch (Exception e) {
      throw exception(pageInstance, e).inPageObjectFieldInjection(field);
    }
  }
コード例 #2
0
  @SuppressWarnings("rawtypes")
  private <T extends PageObject> void initializeFieldAsPageObjectList(
      Field field, T pageInstance, Browser browser) {

    Identification identification = getIdentificationForField(field);
    Class<? extends PageObject> listType = getPageObjectClassFromListField(pageInstance, field);

    PageObjectModel listMetaData =
        PageObjectModel.forPageFragment(browser, identification, pageInstance);
    listMetaData.setCaching(getCachingForField(field));
    listMetaData.setName(getNameForField(field));

    try {
      PageObjectList<? extends PageObject> pageObjectList =
          new LazyLoadingPageObjectList(listType, listMetaData);
      ReflectionUtils.forceSetField(field, pageInstance, pageObjectList);
    } catch (Exception e) {
      throw exception(pageInstance, e).inPageObjectFieldInjection(field);
    }
  }