/**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_ANSWER, self::POST_TYPE_QUESTION]);
     $this->score = Util::setIfIntegerExists($json, 'score');
     $this->title = Util::setIfStringExists($json, 'title');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->apiSiteParameter = Util::setIfStringExists($json, 'api_site_parameter');
     $this->name = Util::setIfStringExists($json, 'name');
     $this->relation = Util::isEqual($json, 'relation', [self::RELATION_CHAT, self::RELATION_META, self::RELATION_PARENT]);
     $this->siteUrl = Util::setIfStringExists($json, 'site_url');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'event_id');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->eventType = Util::isEqual($json, 'event_type', [self::EVENT_TYPE_ANSWER_POSTED, self::EVENT_TYPE_COMMENT_POSTED, self::EVENT_TYPE_POST_EDITED, self::EVENT_TYPE_QUESTION_POSTED, self::EVENT_TYPE_USER_CREATED]);
     $this->excerpt = Util::setIfStringExists($json, 'excerpt');
     $this->link = Util::setIfStringExists($json, 'link');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->body = Util::setIfStringExists($json, 'body');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->isUnread = Util::setIfBoolExists($json, 'is_unread');
     $this->notificationType = Util::isEqual($json, 'notification_type', [self::NOTIFICATION_TYPE_ACCOUNTS_ASSOCIATED, self::NOTIFICATION_TYPE_BADGE_EARNED, self::NOTIFICATION_TYPE_BOUNTY_EXPIRED, self::NOTIFICATION_TYPE_BOUNTY_EXPIRES_IN_ONE_DAY, self::NOTIFICATION_TYPE_BOUNTY_EXPIRES_IN_THREE_DAYS, self::NOTIFICATION_TYPE_BOUNTY_PERIOD_STARTED, self::NOTIFICATION_TYPE_EDIT_SUGGESTED, self::NOTIFICATION_TYPE_GENERIC, self::NOTIFICATION_TYPE_MODERATOR_MESSAGE, self::NOTIFICATION_TYPE_NEW_PRIVILEGE, self::NOTIFICATION_TYPE_POST_MIGRATED, self::NOTIFICATION_TYPE_PROFILE_ACTIVITY, self::NOTIFICATION_TYPE_REGISTRATION_REMINDER, self::NOTIFICATION_TYPE_REPUTATION_BONUS, self::NOTIFICATION_TYPE_SUBSTANTIVE_EDIT]);
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->site = new Site(Util::setIfArrayExists($json, 'site'));
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->accountId = Util::setIfIntegerExists($json, 'account_id');
     $this->activityType = Util::isEqual($json, 'activity_type', [self::ACTIVITY_TYPE_ANSWER_POSTED, self::ACTIVITY_TYPE_BADGE_EARNED, self::ACTIVITY_TYPE_COMMENT_POSTED, self::ACTIVITY_TYPE_QUESTION_POSTED]);
     $this->apiSiteParameter = Util::setIfStringExists($json, 'api_site_parameter');
     $this->description = Util::setIfStringExists($json, 'description');
     $this->link = Util::setIfStringExists($json, 'link');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->score = Util::setIfIntegerExists($json, 'score');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     parent::__construct($json);
     $this->id = Util::setIfIntegerExists($json, 'comment_id');
     $this->canFlag = Util::setIfBoolExists($json, 'can_flag');
     $this->edited = Util::setIfBoolExists($json, 'edited');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_ANSWER, self::POST_TYPE_QUESTION]);
     $this->replyToUser = new ShallowUser(Util::setIfArrayExists($json, 'reply_to_user'));
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'user_id');
     $this->acceptRate = Util::setIfIntegerExists($json, 'accept_rate');
     $this->badgeCount = new BadgeCount(Util::setIfArrayExists($json, 'badge_count'));
     $this->displayName = Util::setIfStringExists($json, 'display_name');
     $this->link = Util::setIfStringExists($json, 'link');
     $this->profileImage = Util::setIfStringExists($json, 'profile_image');
     $this->reputation = Util::setIfIntegerExists($json, 'reputation');
     $this->userType = Util::isEqual($json, 'user_type', [self::USER_TYPE_DOES_NOT_EXIST, self::USER_TYPE_MODERATOR, self::USER_TYPE_REGISTERED, self::USER_TYPE_UNREGISTERED]);
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->approvalDate = Util::setIfDateTimeExists($json, 'approval_date');
     $this->body = Util::setIfStringExists($json, 'body');
     $this->comment = Util::setIfStringExists($json, 'comment');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_QUESTION, self::POST_TYPE_ANSWER]);
     $this->proposingUser = new ShallowUser(Util::setIfArrayExists($json, 'proposing_user'));
     $this->rejectionDate = Util::setIfDateTimeExists($json, 'rejection_date');
     $this->suggestedEditId = new ShallowUser(Util::setIfArrayExists($json, 'suggested_edit_id'));
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'badge_id');
     $this->awardCount = Util::setIfIntegerExists($json, 'award_count');
     $this->description = Util::setIfStringExists($json, 'description');
     $this->name = Util::setIfStringExists($json, 'name');
     $this->badgeType = Util::isEqual($json, 'badge_type', [self::BADGE_TYPE_NAMED, self::BADGE_TYPE_TAG_BASED]);
     $this->link = Util::setIfStringExists($json, 'link');
     $this->rank = Util::isEqual($json, 'rank', [self::RANK_GOLD, self::RANK_BRONZE, self::RANK_SILVER]);
     $this->user = new ShallowUser(Util::setIfArrayExists($json, 'user'));
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     parent::__construct($json);
     $this->loadAnswered($json);
     $this->loadGenericId($json);
     $this->answerCount = Util::setIfIntegerExists($json, 'answer_count');
     $this->closedDate = Util::setIfDateTimeExists($json, 'closed_date');
     $this->communityOwnedDate = Util::setIfDateTimeExists($json, 'community_owned_date');
     $this->equivalentTagsSearch = Util::setIfArrayExists($json, 'equivalent_tag_search');
     $this->excerpt = Util::setIfStringExists($json, 'excerpt');
     $this->hasAcceptedAnswer = Util::setIfBoolExists($json, 'has_accepted_answer');
     $this->isAccepted = Util::setIfBoolExists($json, 'is_accepted');
     $this->itemType = Util::isEqual($json, 'item_type', [self::ITEM_TYPE_ANSWER, self::ITEM_TYPE_QUESTION]);
     $this->lastActivityDate = Util::setIfDateTimeExists($json, 'last_activity_date');
     $this->lastActivityUser = new ShallowUser(Util::setIfArrayExists($json, 'last_activity_user'));
     $this->lockedDate = Util::setIfDateTimeExists($json, 'locked_date');
     $this->owner = new ShallowUser(Util::setIfArrayExists($json, 'owner'));
     $this->questionScore = Util::setIfIntegerExists($json, 'question_score');
     $this->score = Util::setIfIntegerExists($json, 'score');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->reputationChange = Util::setIfIntegerExists($json, 'reputation_change');
     $this->reputationHistoryType = Util::isEqual($json, 'reputation_history_type', $this->reputationHistoryTypes);
     $this->userId = Util::setIfIntegerExists($json, 'user_id');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->link = Util::setIfStringExists($json, 'link');
     $this->onDate = Util::setIfDateTimeExists($json, 'on_date');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_ANSWER, self::POST_TYPE_QUESTION]);
     $this->reputationChange = Util::setIfIntegerExists($json, 'reputation_change');
     $this->title = Util::setIfStringExists($json, 'title');
     $this->userId = Util::setIfIntegerExists($json, 'user_id');
     $this->voteType = Util::isEqual($json, 'vote_type', [self::VOTE_TYPE_ACCEPTS, self::VOTE_TYPE_BOUNTIES_OFFERED, self::VOTE_TYPE_BOUNTIES_WON, self::VOTE_TYPE_DOWN_VOTES, self::VOTE_TYPE_SPAM, self::VOTE_TYPE_SUGGESTED_EDITS, self::VOTE_TYPE_UP_VOTES]);
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->filter = Util::setIfStringExists($json, 'filter');
     $this->filterType = Util::isEqual($json, 'filter_type', [self::FILTER_TYPE_INVALID, self::FILTER_TYPE_SAFE, self::FILTER_TYPE_UNSAFE]);
     $this->includedFields = Util::setIfArrayExists($json, 'included_fields');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'user_id');
     $this->loadCount($json);
     $this->loadTop($json);
     $this->accountId = Util::setIfIntegerExists($json, 'account_id');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->lastAccessDate = Util::setIfDateTimeExists($json, 'last_access_date');
     $this->reputation = Util::setIfIntegerExists($json, 'reputation');
     $this->siteName = Util::setIfStringExists($json, 'site_name');
     $this->siteUrl = Util::setIfStringExists($json, 'site_url');
     $this->userType = Util::isEqual($json, 'user_type', [self::USER_TYPE_DOES_NOT_EXIST, self::USER_TYPE_MODERATOR, self::USER_TYPE_REGISTERED, self::USER_TYPE_UNREGISTERED]);
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     parent::__construct($json);
     $this->id = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_ANSWER, self::POST_TYPE_QUESTION]);
 }
 /**
  * Loads the variables if the data exist into resource. It works like a constructor.
  *
  * @param null|mixed[] $resource  The resource
  * @param string[]     $constants The array of constants
  */
 protected function loadRevision($resource, $constants)
 {
     $this->revisionGuid = Util::setIfStringExists($resource, 'revision_guid');
     $this->revisionNumber = Util::setIfIntegerExists($resource, 'revision_number');
     $this->revisionType = Util::isEqual($resource, 'revision_type', $constants);
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->loadVoteCount($json);
     $this->commentId = Util::setIfIntegerExists($json, 'comment_id');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->owner = new ShallowUser(Util::setIfArrayExists($json, 'owner'));
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->questionId = Util::setIfIntegerExists($json, 'question_id');
     $this->revisionGuid = Util::setIfStringExists($json, 'revision_guid');
     $this->timelineType = Util::isEqual($json, 'timeline_type', [self::TIMELINE_TYPE_ACCEPTED_ANSWER, self::TIMELINE_TYPE_ANSWER, self::TIMELINE_TYPE_COMMENT, self::TIMELINE_TYPE_POST_STATE_CHANGED, self::TIMELINE_TYPE_QUESTION, self::TIMELINE_TYPE_REVISION, self::TIMELINE_TYPE_UNACCEPTED_ANSWER, self::TIMELINE_TYPE_VOTE_AGGREGATE]);
     $this->user = new ShallowUser(Util::setIfArrayExists($json, 'user'));
 }
 /**
  * Loads the variables if the data exist into resource. It works like a constructor.
  *
  * @param null|mixed[] $resource       The resource
  * @param string[]     $stateConstants The array of site state constants
  * @param string[]     $typeConstants  The array of site type constants
  */
 protected function loadSite($resource, $stateConstants, $typeConstants)
 {
     $sites = Util::setIfArrayExists($resource, 'related_sites');
     foreach ($sites as $site) {
         $this->relatedSites[] = new RelatedSite($site);
     }
     $this->siteState = Util::isEqual($resource, 'site_state', $stateConstants);
     $this->siteType = Util::isEqual($resource, 'site_type', $typeConstants);
     $this->siteUrl = Util::setIfStringExists($resource, 'site_url');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     parent::__construct($json);
     $this->loadLast($json);
     $this->loadRevision($json, [self::REVISION_TYPE_SINGLE_USER, self::REVISION_TYPE_VOTE_BASED]);
     $this->body = Util::setIfStringExists($json, 'body');
     $this->comment = Util::setIfStringExists($json, 'comment');
     $this->rollback = Util::setIfBoolExists($json, 'is_rollback');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_QUESTION, self::POST_TYPE_ANSWER]);
     $this->setCommunityWiki = Util::setIfBoolExists($json, 'set_community_wiki');
     $this->user = new ShallowUser(Util::setIfArrayExists($json, 'user'));
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->loadGenericId($json);
     $this->commentId = Util::setIfIntegerExists($json, 'comment_id');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->isUnread = Util::setIfBoolExists($json, 'is_unread');
     $this->itemType = Util::isEqual($json, 'item_type', [self::ITEM_TYPE_CAREERS_INVITATIONS, self::ITEM_TYPE_CAREERS_MESSAGE, self::ITEM_TYPE_CHAT_MESSAGE, self::ITEM_TYPE_COMMENT, self::ITEM_TYPE_META_QUESTION, self::ITEM_TYPE_MODERATOR_MESSAGE, self::ITEM_TYPE_NEW_ANSWER, self::ITEM_TYPE_POST_NOTICE]);
     $this->link = Util::setIfStringExists($json, 'link');
     $this->site = new Site(Util::setIfArrayExists($json, 'site'));
     $this->title = Util::setIfStringExists($json, 'title');
 }
 /**
  * Constructor.
  *
  * @param null|mixed[] $json The json string being decoded
  */
 public function __construct($json = null)
 {
     $this->id = Util::setIfIntegerExists($json, 'user_id');
     $this->badgeId = Util::setIfIntegerExists($json, 'badge_id');
     $this->commentId = Util::setIfIntegerExists($json, 'comment_id');
     $this->creationDate = Util::setIfDateTimeExists($json, 'creation_date');
     $this->detail = Util::setIfStringExists($json, 'detail');
     $this->link = Util::setIfStringExists($json, 'link');
     $this->postId = Util::setIfIntegerExists($json, 'post_id');
     $this->postType = Util::isEqual($json, 'post_type', [self::POST_TYPE_ANSWER, self::POST_TYPE_QUESTION]);
     $this->suggestedEditId = Util::setIfIntegerExists($json, 'suggested_edit_id');
     $this->timelineType = Util::isEqual($json, 'timeline_type', [self::TIMELINE_TYPE_ACCEPTED_ANSWER, self::TIMELINE_TYPE_ANSWER, self::TIMELINE_TYPE_COMMENT, self::TIMELINE_TYPE_POST_STATE_CHANGED, self::TIMELINE_TYPE_QUESTION, self::TIMELINE_TYPE_REVISION, self::TIMELINE_TYPE_UNACCEPTED_ANSWER, self::TIMELINE_TYPE_VOTE_AGGREGATE]);
     $this->title = Util::setIfStringExists($json, 'title');
 }