Извините, я знаю, что вопрос не имеет смысла, но я просто не могу понять, как задать вопрос. Я использую класс модели, который расширяет RealmObject, сериализация Gson. Когда я делаю запрос, я отправляю это json:
{"clothing_item_ids": [],
"date": "2020-01-17 02:19:41 -0500",
"location": {
"id": 0
},
"name": "Good event",
"tag_ids": []
}
Но я хочу отправить его без объекта местоположения, когда местоположение равно нулю. Я не могу понять, возникла ли проблема из-за того, как я реализовал Царство. Пожалуйста, помогите и извините за мое невежество по этому вопросу.
@Parcel(implementations = {LocationRealmProxy.class}, value = Parcel.Serialization.FIELD, analyze = {Location.class})
public class Location extends RealmObject {
@PrimaryKey
@SerializedName("id")
public int id;
@SerializedName("city")
public String city;
@SerializedName("postal_code")
public String postalCode;
@SerializedName("state")
public String state;
@SerializedName("street")
public String street;
public Location() {
}
public Location(Location location) {
this.id = location.id;
this.city = location.city;
this.postalCode = location.postalCode;
this.state = location.state;
this.street = location.street;
}
}
Вот класс события:
@Parcel(implementations = {EventRealmProxy.class}, value = Parcel.Serialization.FIELD, analyze = {Event.class})
public class Event extends RealmObject implements Serializable {
public static final String DATE_FIELD = "timestamp";
@PrimaryKey
@SerializedName("id")
public String id;
@SerializedName("date")
public String date;
@Nullable
public Date timestamp;
@SerializedName("image")
public String image;
@SerializedName("name")
public String name;
@Nullable
@SerializedName("event_clothing_items")
@ParcelPropertyConverter(RealmListParcelConverter.class)
public RealmList<ClothingItem> eventClothingItems;
@Nullable
@SerializedName("location")
public Location location;
@Nullable
@SerializedName("tags")
@ParcelPropertyConverter(RealmListParcelConverter.class)
public RealmList<Tag> tags;
public Event() {
timestamp = new Date();
eventClothingItems = new RealmList<>();
location = new Location();
tags = new RealmList<>();
}
public Event(Event event) {
eventClothingItems = new RealmList<>();
location = new Location();
tags = new RealmList<>();
this.id = event.id;
this.date = event.date;
this.image = event.image;
this.name = event.name;
this.tags.addAll(event.tags);
this.eventClothingItems.addAll(event.eventClothingItems);
this.location = new Location(event.location);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Event event = (Event) o;
return id.equals(event.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}
Это модель запроса
public class CreateEventRequestModel {
public String name;
public String date;
public Location location;
@SerializedName("clothing_item_ids")
public List<Integer> clothingItemIds;
@SerializedName("tag_ids")
public List<Integer> tagIds;
private CreateEventRequestModel() {
}
public CreateEventRequestModel(Event event) {
if (event == null) {
return;
}
this.name = event.name;
this.date = event.date;
this.location = event.location;
this.tagIds = new ArrayList<>();
this.clothingItemIds = new ArrayList<>();
if (event.tags != null) {
for (Tag tag : event.tags) {
this.tagIds.add(tag.id);
}
}
if (event.eventClothingItems != null) {
for (ClothingItem clothingItem : event.eventClothingItems) {
this.clothingItemIds.add(Integer.valueOf(clothingItem.id));
}
}
}
}
Помогите мне, пожалуйста, выяснить, в чем здесь проблема, почему местоположение не может иметь все его поля как нулевые, или как я могу проверить, когда местоположение допустимо (поле не должно быть пустым, или все поля должны быть нулевыми или удалить объект местоположения).