public void write(TProtocol oprot) throws TException {
    validate();

    oprot.writeStructBegin(STRUCT_DESC);
    if (isSetSubjectDate()) {
      oprot.writeFieldBegin(SUBJECT_DATE_FIELD_DESC);
      oprot.writeI64(this.subjectDate);
      oprot.writeFieldEnd();
    }
    if (isSetLatitude()) {
      oprot.writeFieldBegin(LATITUDE_FIELD_DESC);
      oprot.writeDouble(this.latitude);
      oprot.writeFieldEnd();
    }
    if (isSetLongitude()) {
      oprot.writeFieldBegin(LONGITUDE_FIELD_DESC);
      oprot.writeDouble(this.longitude);
      oprot.writeFieldEnd();
    }
    if (isSetAltitude()) {
      oprot.writeFieldBegin(ALTITUDE_FIELD_DESC);
      oprot.writeDouble(this.altitude);
      oprot.writeFieldEnd();
    }
    if (this.author != null) {
      if (isSetAuthor()) {
        oprot.writeFieldBegin(AUTHOR_FIELD_DESC);
        oprot.writeString(this.author);
        oprot.writeFieldEnd();
      }
    }
    if (this.source != null) {
      if (isSetSource()) {
        oprot.writeFieldBegin(SOURCE_FIELD_DESC);
        oprot.writeString(this.source);
        oprot.writeFieldEnd();
      }
    }
    if (this.sourceURL != null) {
      if (isSetSourceURL()) {
        oprot.writeFieldBegin(SOURCE_URL_FIELD_DESC);
        oprot.writeString(this.sourceURL);
        oprot.writeFieldEnd();
      }
    }
    if (this.sourceApplication != null) {
      if (isSetSourceApplication()) {
        oprot.writeFieldBegin(SOURCE_APPLICATION_FIELD_DESC);
        oprot.writeString(this.sourceApplication);
        oprot.writeFieldEnd();
      }
    }
    if (isSetShareDate()) {
      oprot.writeFieldBegin(SHARE_DATE_FIELD_DESC);
      oprot.writeI64(this.shareDate);
      oprot.writeFieldEnd();
    }
    if (this.placeName != null) {
      if (isSetPlaceName()) {
        oprot.writeFieldBegin(PLACE_NAME_FIELD_DESC);
        oprot.writeString(this.placeName);
        oprot.writeFieldEnd();
      }
    }
    if (this.contentClass != null) {
      if (isSetContentClass()) {
        oprot.writeFieldBegin(CONTENT_CLASS_FIELD_DESC);
        oprot.writeString(this.contentClass);
        oprot.writeFieldEnd();
      }
    }
    if (this.applicationData != null) {
      if (isSetApplicationData()) {
        oprot.writeFieldBegin(APPLICATION_DATA_FIELD_DESC);
        this.applicationData.write(oprot);
        oprot.writeFieldEnd();
      }
    }
    if (this.lastEditedBy != null) {
      if (isSetLastEditedBy()) {
        oprot.writeFieldBegin(LAST_EDITED_BY_FIELD_DESC);
        oprot.writeString(this.lastEditedBy);
        oprot.writeFieldEnd();
      }
    }
    if (this.classifications != null) {
      if (isSetClassifications()) {
        oprot.writeFieldBegin(CLASSIFICATIONS_FIELD_DESC);
        {
          oprot.writeMapBegin(new TMap(TType.STRING, TType.STRING, this.classifications.size()));
          for (Map.Entry<String, String> _iter21 : this.classifications.entrySet()) {
            oprot.writeString(_iter21.getKey());
            oprot.writeString(_iter21.getValue());
          }
          oprot.writeMapEnd();
        }
        oprot.writeFieldEnd();
      }
    }
    oprot.writeFieldStop();
    oprot.writeStructEnd();
  }