public void initThread(JSONObject threadDetails) throws userException {
        if (threadDetails.containsKey("shareCount")) {
            this.setShareCount(threadDetails.getLong("shareCount"));
        } else {
            this.setShareCount(0);
        }
        if (threadDetails.containsKey("commentsCount")) {
            this.setCommentsCount(threadDetails.getLong("commentsCount"));
        } else {
            this.setCommentsCount(0);
        }
        if (threadDetails.containsKey("upRatingsCount")) {
            this.setUpRatingsCount(threadDetails.getLong("upRatingsCount"));
        } else {
            this.setUpRatingsCount(0);
        }
        if (threadDetails.containsKey("downRatingsCount")) {
            this.setDownRatingsCount(threadDetails.getLong("downRatingsCount"));
        } else {
            this.setDownRatingsCount(0);
        }
        if (threadDetails.containsKey("title")) {
            this.setTitle(threadDetails.getString("title"));
        } else {
            throw new userException("title of board is mandatory");
        }
        if (threadDetails.containsKey("abuseFlag")) {
            this.setAbuseFlag(threadDetails.getString("abuseFlag") == "1");
        } else {
            this.setAbuseFlag(false);
        }
        if (threadDetails.containsKey("description")) {
            this.setDescription(threadDetails.getString("description"));
        } else {
            this.setDescription("");
        }
        this.setTimestamp((new Date()).getTime());
        if (threadDetails.containsKey("uuid")) {
            this.setCreatorUuid(threadDetails.getString("uuid"));
        } else {
            throw new userException("uuid of creator is mandatory");
        }
        this.extractTags();
    }