Пример #1
0
  /**
   * Replaces an entity if the current state allows it.
   *
   * @return the next character after the text replacement or '&' if no replacement took place.
   */
  private char replaceEntity() throws XMLStreamException {
    if ((_state == STATE_COMMENT) || (_state == STATE_PI) || (_state == STATE_CDATA))
      return '&'; // (&2.4)

    int start = _index; // Index of first replacement character.
    _data[_index++] = '&';
    while (true) {
      if (_readIndex >= _readCount) reloadBuffer();
      char c = _data[_index++] = _readBuffer[_readIndex++];
      _location._totalCharsRead++;
      if (c == ';') break;
      if (c <= ' ') throw new XMLStreamException("';' expected", _location);
    }
    // Ensures that the replacement string holds in the data buffer.
    while (start + _entities.getMaxLength() >= _data.length) {
      increaseDataBuffer();
    }

    // Replaces the entity.
    int length = _entities.replaceEntity(_data, start, _index - start);

    // Returns the next character after entity unless ampersand.
    _index = start + length;

    // Local character reading block.
    if (_readIndex >= _readCount) reloadBuffer();
    char c = _readBuffer[_readIndex++];
    _location._totalCharsRead++;
    return c == '&' ? replaceEntity() : c;
  }
Пример #2
0
 @Override
 public int hashCode() {
   int result = createdAt != null ? createdAt.hashCode() : 0;
   result = 31 * result + (int) (id ^ (id >>> 32));
   result = 31 * result + (text != null ? text.hashCode() : 0);
   result = 31 * result + (source != null ? source.hashCode() : 0);
   result = 31 * result + (truncated ? 1 : 0);
   result = 31 * result + (entities != null ? entities.hashCode() : 0);
   result = 31 * result + (extendedEntities != null ? extendedEntities.hashCode() : 0);
   result = 31 * result + (int) (inReplyToStatusId ^ (inReplyToStatusId >>> 32));
   result = 31 * result + (int) (inReplyToUserId ^ (inReplyToUserId >>> 32));
   result = 31 * result + (inReplyToScreenName != null ? inReplyToScreenName.hashCode() : 0);
   result = 31 * result + (user != null ? user.hashCode() : 0);
   result = 31 * result + (geo != null ? geo.hashCode() : 0);
   result = 31 * result + (place != null ? place.hashCode() : 0);
   result = 31 * result + (currentUserRetweet != null ? currentUserRetweet.hashCode() : 0);
   result = 31 * result + (contributors != null ? Arrays.hashCode(contributors) : 0);
   result = 31 * result + (int) (retweetCount ^ (retweetCount >>> 32));
   result = 31 * result + (int) (favoriteCount ^ (favoriteCount >>> 32));
   result = 31 * result + (int) (replyCount ^ (replyCount >>> 32));
   result = 31 * result + (favorited ? 1 : 0);
   result = 31 * result + (retweeted ? 1 : 0);
   result = 31 * result + (lang != null ? lang.hashCode() : 0);
   result = 31 * result + (int) (descendentReplyCount ^ (descendentReplyCount >>> 32));
   result = 31 * result + (retweetedStatus != null ? retweetedStatus.hashCode() : 0);
   result = 31 * result + (quotedStatus != null ? quotedStatus.hashCode() : 0);
   result = 31 * result + (card != null ? card.hashCode() : 0);
   result = 31 * result + (possiblySensitive ? 1 : 0);
   return result;
 }
Пример #3
0
  // Implements Reusable.
  public void reset() {
    // Resets all members (alphabetically ordered).
    _attributes.reset();
    _attrPrefixSep = 0;
    _attrQName = null;
    _attrValue = null;
    _attrQName = null;
    _charactersPending = false;
    _encoding = null;
    _entities.reset();
    _eventType = START_DOCUMENT;
    _index = 0;
    _isEmpty = false;
    _location.reset();
    _namespaces.reset();
    _prolog = null;
    _readCount = 0;
    _reader = null;
    _depth = 0;
    _readIndex = 0;
    _seqsIndex = 0;
    _start = 0;
    _startOffset = 0;
    _state = STATE_CHARACTERS;
    _utf8StreamReader.reset();

    // Recycles if factory produced.
    if (_factory != null) _factory.recycle(this);
  }
Пример #4
0
  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    StatusImpl status = (StatusImpl) o;

    if (id != status.id) return false;
    if (truncated != status.truncated) return false;
    if (inReplyToStatusId != status.inReplyToStatusId) return false;
    if (inReplyToUserId != status.inReplyToUserId) return false;
    if (retweetCount != status.retweetCount) return false;
    if (favoriteCount != status.favoriteCount) return false;
    if (replyCount != status.replyCount) return false;
    if (favorited != status.favorited) return false;
    if (retweeted != status.retweeted) return false;
    if (descendentReplyCount != status.descendentReplyCount) return false;
    if (possiblySensitive != status.possiblySensitive) return false;
    if (createdAt != null ? !createdAt.equals(status.createdAt) : status.createdAt != null)
      return false;
    if (text != null ? !text.equals(status.text) : status.text != null) return false;
    if (source != null ? !source.equals(status.source) : status.source != null) return false;
    if (entities != null ? !entities.equals(status.entities) : status.entities != null)
      return false;
    if (extendedEntities != null
        ? !extendedEntities.equals(status.extendedEntities)
        : status.extendedEntities != null) return false;
    if (inReplyToScreenName != null
        ? !inReplyToScreenName.equals(status.inReplyToScreenName)
        : status.inReplyToScreenName != null) return false;
    if (user != null ? !user.equals(status.user) : status.user != null) return false;
    if (geo != null ? !geo.equals(status.geo) : status.geo != null) return false;
    if (place != null ? !place.equals(status.place) : status.place != null) return false;
    if (currentUserRetweet != null
        ? !currentUserRetweet.equals(status.currentUserRetweet)
        : status.currentUserRetweet != null) return false;
    if (!Arrays.equals(contributors, status.contributors)) return false;
    if (lang != null ? !lang.equals(status.lang) : status.lang != null) return false;
    if (retweetedStatus != null
        ? !retweetedStatus.equals(status.retweetedStatus)
        : status.retweetedStatus != null) return false;
    if (quotedStatus != null
        ? !quotedStatus.equals(status.quotedStatus)
        : status.quotedStatus != null) return false;
    return !(card != null ? !card.equals(status.card) : status.card != null);
  }
Пример #5
0
 // Implements XMLStreamReader Interface.
 public Object getProperty(String name) throws IllegalArgumentException {
   if (name.equals(XMLInputFactory.IS_COALESCING)) {
     return Boolean.TRUE;
   } else if (name.equals(XMLInputFactory.ENTITIES)) {
     return _entities.getEntitiesMapping();
   } else {
     throw new IllegalArgumentException("Property: " + name + " not supported");
   }
 }
Пример #6
0
 @Override
 public UserMentionEntity[] getUserMentionEntities() {
   if (entities == null) return null;
   return entities.getUserMentions();
 }
Пример #7
0
 @Override
 public UrlEntity[] getUrlEntities() {
   if (entities == null) return null;
   return entities.getUrls();
 }
Пример #8
0
 @Override
 public MediaEntity[] getMediaEntities() {
   if (entities == null) return null;
   return entities.getMedia();
 }
Пример #9
0
 @Override
 public HashtagEntity[] getHashtagEntities() {
   if (entities == null) return null;
   return entities.getHashtags();
 }
Пример #10
0
 @Override
 public MediaEntity[] getExtendedMediaEntities() {
   if (extendedEntities == null) return null;
   return extendedEntities.getMedia();
 }
Пример #11
0
 /**
  * Defines a custom entities to replacement text mapping for this reader. For example:[code]
  * FastMap<String, String> HTML_ENTITIES = new FastMap<String, String>();
  * HTML_ENTITIES.put("nbsp", " "); HTML_ENTITIES.put("copy", "©"); HTML_ENTITIES.put("eacute",
  * "é"); ... XMLStreamReaderImpl reader = new XMLStreamReaderImpl();
  * reader.setEntities(HTML_ENTITIES); [/code] The entities mapping may be changed dynamically
  * (e.g. after reading the DTD and all external entities references are resolved).
  *
  * @param entities the entities to replacement texts mapping (both must be <code>CharSequence
  *     </code> instances).
  */
 public void setEntities(Map<String, String> entities) {
   _entities.setEntitiesMapping(entities);
 }