private create()

in module/geb-core/src/main/groovy/geb/content/PageContentTemplate.groovy [61:93]


    private create(Object[] args) {
        def createAction = {
            def factoryReturn = invokeFactory(*args)
            def creation = wrapFactoryReturn(factoryReturn, *args)
            if (creation instanceof TemplateDerivedPageContent) {
                if (params.required) {
                    creation.require()
                }
                creation.ensureWithinBounds(params.min, params.max)
            } else if (params.required && creation == null) {
                throw new RequiredPageValueNotPresent(this, *args)
            }
            creation
        }

        def wait = config.getWaitForParam(params.wait)
        if (wait) {
            try {
                if (params.waitCondition) {
                    wait.waitFor(effectiveWaitCondition(params.waitCondition, createAction))
                } else {
                    wait.waitFor(createAction)
                }
            } catch (WaitTimeoutException e) {
                if (params.required) {
                    throw e
                }
                e.lastEvaluationValue
            }
        } else {
            createAction()
        }
    }