<?php // vDTvxyYdWeYfv
/**
 * @link http://craftcms.com/
 * @copyright Copyright (c) Pixel & Tonic, Inc.
 * @license http://craftcms.com/license
 */

namespace craft\behaviors;

/**
 * Element Query behavior
 *
 * This class provides attributes for all the unique custom field handles.
 *
 * @method self contentPage(mixed $value) Sets the [[contentPage]] property
 * @method self text(mixed $value) Sets the [[text]] property
 * @method self tag(mixed $value) Sets the [[tag]] property
 * @method self size(mixed $value) Sets the [[size]] property
 * @method self color(mixed $value) Sets the [[color]] property
 * @method self list(mixed $value) Sets the [[list]] property
 * @method self button(mixed $value) Sets the [[button]] property
 * @method self width(mixed $value) Sets the [[width]] property
 * @method self cite(mixed $value) Sets the [[cite]] property
 * @method self image(mixed $value) Sets the [[image]] property
 * @method self imageLink(mixed $value) Sets the [[imageLink]] property
 * @method self caption(mixed $value) Sets the [[caption]] property
 * @method self position(mixed $value) Sets the [[position]] property
 * @method self captionType(mixed $value) Sets the [[captionType]] property
 * @method self images(mixed $value) Sets the [[images]] property
 * @method self layout(mixed $value) Sets the [[layout]] property
 * @method self data(mixed $value) Sets the [[data]] property
 * @method self access(mixed $value) Sets the [[access]] property
 * @method self autoplay(mixed $value) Sets the [[autoplay]] property
 * @method self navArrows(mixed $value) Sets the [[navArrows]] property
 * @method self navDots(mixed $value) Sets the [[navDots]] property
 * @method self transitionType(mixed $value) Sets the [[transitionType]] property
 * @method self transitionTime(mixed $value) Sets the [[transitionTime]] property
 * @method self aspect(mixed $value) Sets the [[aspect]] property
 * @method self maxItems(mixed $value) Sets the [[maxItems]] property
 * @method self video(mixed $value) Sets the [[video]] property
 * @method self form(mixed $value) Sets the [[form]] property
 * @method self confirm(mixed $value) Sets the [[confirm]] property
 * @method self viewPath(mixed $value) Sets the [[viewPath]] property
 * @method self heading(mixed $value) Sets the [[heading]] property
 * @method self summary(mixed $value) Sets the [[summary]] property
 * @method self style(mixed $value) Sets the [[style]] property
 * @method self panels(mixed $value) Sets the [[panels]] property
 * @method self label(mixed $value) Sets the [[label]] property
 * @method self richText(mixed $value) Sets the [[richText]] property
 * @method self isOpen(mixed $value) Sets the [[isOpen]] property
 * @method self trigger(mixed $value) Sets the [[trigger]] property
 * @method self triggerText(mixed $value) Sets the [[triggerText]] property
 * @method self triggerImage(mixed $value) Sets the [[triggerImage]] property
 * @method self modalImage(mixed $value) Sets the [[modalImage]] property
 * @method self modalHeading(mixed $value) Sets the [[modalHeading]] property
 * @method self modalRichText(mixed $value) Sets the [[modalRichText]] property
 * @method self modalButton(mixed $value) Sets the [[modalButton]] property
 * @method self cards(mixed $value) Sets the [[cards]] property
 * @method self code(mixed $value) Sets the [[code]] property
 * @method self forgotPassword(mixed $value) Sets the [[forgotPassword]] property
 * @method self categories(mixed $value) Sets the [[categories]] property
 * @method self limit(mixed $value) Sets the [[limit]] property
 * @method self sort(mixed $value) Sets the [[sort]] property
 * @method self hideSearch(mixed $value) Sets the [[hideSearch]] property
 * @method self hideFilters(mixed $value) Sets the [[hideFilters]] property
 * @method self questions(mixed $value) Sets the [[questions]] property
 * @method self question(mixed $value) Sets the [[question]] property
 * @method self isTrue(mixed $value) Sets the [[isTrue]] property
 * @method self answers(mixed $value) Sets the [[answers]] property
 * @method self answer(mixed $value) Sets the [[answer]] property
 * @method self isCorrect(mixed $value) Sets the [[isCorrect]] property
 * @method self quiz(mixed $value) Sets the [[quiz]] property
 * @method self customFields(mixed $value) Sets the [[customFields]] property
 * @method self postCategories(mixed $value) Sets the [[postCategories]] property
 * @method self location(mixed $value) Sets the [[location]] property
 * @method self directions(mixed $value) Sets the [[directions]] property
 * @method self event(mixed $value) Sets the [[event]] property
 * @method self email(mixed $value) Sets the [[email]] property
 * @method self firstName(mixed $value) Sets the [[firstName]] property
 * @method self lastName(mixed $value) Sets the [[lastName]] property
 * @method self phone(mixed $value) Sets the [[phone]] property
 * @method self user(mixed $value) Sets the [[user]] property
 * @method self page(mixed $value) Sets the [[page]] property
 * @method self externalPage(mixed $value) Sets the [[externalPage]] property
 * @method self accessibilityText(mixed $value) Sets the [[accessibilityText]] property
 * @method self pageHeader(mixed $value) Sets the [[pageHeader]] property
 * @method self subheading(mixed $value) Sets the [[subheading]] property
 * @method self pageWidth(mixed $value) Sets the [[pageWidth]] property
 * @method self audio(mixed $value) Sets the [[audio]] property
 * @method self document(mixed $value) Sets the [[document]] property
 * @method self tableau(mixed $value) Sets the [[tableau]] property
 * @method self blog(mixed $value) Sets the [[blog]] property
 * @method self icon(mixed $value) Sets the [[icon]] property
 * @method self seoData(mixed $value) Sets the [[seoData]] property
 * @method self poster(mixed $value) Sets the [[poster]] property
 * @method self card(mixed $value) Sets the [[card]] property
 * @method self modal(mixed $value) Sets the [[modal]] property
 * @method self modalContent(mixed $value) Sets the [[modalContent]] property
 * @method self login(mixed $value) Sets the [[login]] property
 * @method self quoteSymbol(mixed $value) Sets the [[quoteSymbol]] property
 * @method self keywords(mixed $value) Sets the [[keywords]] property
 * @method self blogCategories(mixed $value) Sets the [[blogCategories]] property
 * @method self square(mixed $value) Sets the [[square]] property
 * @method self horizontal(mixed $value) Sets the [[horizontal]] property
 * @method self wide(mixed $value) Sets the [[wide]] property
 * @method self mediaCategories(mixed $value) Sets the [[mediaCategories]] property
 * @method self locationName(mixed $value) Sets the [[locationName]] property
 * @method self letterbox(mixed $value) Sets the [[letterbox]] property
 * @method self redirectPage(mixed $value) Sets the [[redirectPage]] property
 * @method self correctSummary(mixed $value) Sets the [[correctSummary]] property
 * @method self incorrectSummary(mixed $value) Sets the [[incorrectSummary]] property
 * @method self station(mixed $value) Sets the [[station]] property
 * @method self city(mixed $value) Sets the [[city]] property
 * @method self state(mixed $value) Sets the [[state]] property
 * @method self zipCode(mixed $value) Sets the [[zipCode]] property
 * @method self licenseType(mixed $value) Sets the [[licenseType]] property
 * @method self jointLicense(mixed $value) Sets the [[jointLicense]] property
 * @method self pbsDuesName(mixed $value) Sets the [[pbsDuesName]] property
 * @method self jobTitle(mixed $value) Sets the [[jobTitle]] property
 * @method self vizHeight(mixed $value) Sets the [[vizHeight]] property
 * @method self previewImage(mixed $value) Sets the [[previewImage]] property
 * @method self pageNavigationType(mixed $value) Sets the [[pageNavigationType]] property
 * @method self hideHeading(mixed $value) Sets the [[hideHeading]] property
 * @method self panelSubheading(mixed $value) Sets the [[panelSubheading]] property
 * @method self contentAside(mixed $value) Sets the [[contentAside]] property
 * @method self widget(mixed $value) Sets the [[widget]] property
 * @method self other(mixed $value) Sets the [[other]] property
 * @method self buttonAlign(mixed $value) Sets the [[buttonAlign]] property
 * @method self triggerPosition(mixed $value) Sets the [[triggerPosition]] property
 * @method self correctTitle(mixed $value) Sets the [[correctTitle]] property
 * @method self incorrectTitle(mixed $value) Sets the [[incorrectTitle]] property
 * @method self additionalContent(mixed $value) Sets the [[additionalContent]] property
 * @method self showSummary(mixed $value) Sets the [[showSummary]] property
 * @method self failed(mixed $value) Sets the [[failed]] property
 * @method self subscribePage(mixed $value) Sets the [[subscribePage]] property
 * @method self hideSidebar(mixed $value) Sets the [[hideSidebar]] property
 * @method self passwordResetMail(mixed $value) Sets the [[passwordResetMail]] property
 * @method self vizWidth(mixed $value) Sets the [[vizWidth]] property
 * @method self vizTabs(mixed $value) Sets the [[vizTabs]] property
 * @method self vizToolbar(mixed $value) Sets the [[vizToolbar]] property
 * @method self tableauAuthorizMessage(mixed $value) Sets the [[tableauAuthorizMessage]] property
 * @method self headerScripts(mixed $value) Sets the [[headerScripts]] property
 * @method self footerScripts(mixed $value) Sets the [[footerScripts]] property
 * @method self requiresAuth(mixed $value) Sets the [[requiresAuth]] property
 * @method self requireAuth(mixed $value) Sets the [[requireAuth]] property
 * @method self basicContent(mixed $value) Sets the [[basicContent]] property
 * @method self basicPage(mixed $value) Sets the [[basicPage]] property
 * @method self basicSource(mixed $value) Sets the [[basicSource]] property
 * @method self basicSummary(mixed $value) Sets the [[basicSummary]] property
 * @method self showControls(mixed $value) Sets the [[showControls]] property
 * @method self firstLastName(mixed $value) Sets the [[firstLastName]] property
 * @method self fiscalYear(mixed $value) Sets the [[fiscalYear]] property
 * @method self documentStatus(mixed $value) Sets the [[documentStatus]] property
 * @method self confirmSubmission(mixed $value) Sets the [[confirmSubmission]] property
 * @method self stationCallLetters(mixed $value) Sets the [[stationCallLetters]] property
 * @method self licenseeOrganization(mixed $value) Sets the [[licenseeOrganization]] property
 * @method self operatingOrganization(mixed $value) Sets the [[operatingOrganization]] property
 * @method self streetAddress(mixed $value) Sets the [[streetAddress]] property
 * @method self transmitterInformation(mixed $value) Sets the [[transmitterInformation]] property
 * @method self transmitterChanges(mixed $value) Sets the [[transmitterChanges]] property
 * @method self broadcastChannels(mixed $value) Sets the [[broadcastChannels]] property
 * @method self primaryPbsChannel(mixed $value) Sets the [[primaryPbsChannel]] property
 * @method self additionalServices(mixed $value) Sets the [[additionalServices]] property
 * @method self proRepName(mixed $value) Sets the [[proRepName]] property
 * @method self proRepAddress(mixed $value) Sets the [[proRepAddress]] property
 * @method self proRepEmail(mixed $value) Sets the [[proRepEmail]] property
 * @method self proRepPhone(mixed $value) Sets the [[proRepPhone]] property
 * @method self proRepTitle(mixed $value) Sets the [[proRepTitle]] property
 * @method self layRep1Address(mixed $value) Sets the [[layRep1Address]] property
 * @method self layRep1Email(mixed $value) Sets the [[layRep1Email]] property
 * @method self layRep1Name(mixed $value) Sets the [[layRep1Name]] property
 * @method self layRep1Phone(mixed $value) Sets the [[layRep1Phone]] property
 * @method self layRep1Title(mixed $value) Sets the [[layRep1Title]] property
 * @method self layRep2Address(mixed $value) Sets the [[layRep2Address]] property
 * @method self layRep2Email(mixed $value) Sets the [[layRep2Email]] property
 * @method self layRep2Name(mixed $value) Sets the [[layRep2Name]] property
 * @method self layRep2Phone(mixed $value) Sets the [[layRep2Phone]] property
 * @method self layRep2Title(mixed $value) Sets the [[layRep2Title]] property
 * @method self posters(mixed $value) Sets the [[posters]] property
 * @method self groupType(mixed $value) Sets the [[groupType]] property
 */
class ElementQueryBehavior extends ContentBehavior
{
    // Public Methods
    // =========================================================================

    /**
     * @inheritdoc
     */
    public function __call($name, $params)
    {
        if (isset(self::$fieldHandles[$name]) && count($params) === 1) {
            $this->$name = $params[0];
            return $this->owner;
        }
        return parent::__call($name, $params);
    }

    /**
     * @inheritdoc
     */
    public function hasMethod($name)
    {
        if (isset(self::$fieldHandles[$name])) {
            return true;
        }
        return parent::hasMethod($name);
    }
}
