/*
* Copyright (C) 2015 Actor LLC. <https://actor.im>
*/
package im.actor.core.entity;
import com.google.j2objc.annotations.Property;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import im.actor.core.api.ApiStickerCollection;
import im.actor.core.api.ApiStickerDescriptor;
import im.actor.runtime.bser.BserCreator;
public class StickerPack extends WrapperEntity<ApiStickerCollection> {
private static final int RECORD_ID = 10;
public static final BserCreator<StickerPack> CREATOR = StickerPack::new;
@Property("readonly, nonatomic")
private int id;
@Property("readonly, nonatomic")
private long accessHash;
@NotNull
@Property("readonly, nonatomic")
@SuppressWarnings("NullableProblems")
private List<Sticker> stickers;
public StickerPack(@NotNull ApiStickerCollection wrappedPack) {
super(RECORD_ID, wrappedPack);
}
public StickerPack(@NotNull byte[] data) throws IOException {
super(RECORD_ID, data);
}
private StickerPack() {
super(RECORD_ID);
}
public int getId() {
return id;
}
public long getAccessHash() {
return accessHash;
}
@NotNull
public List<Sticker> getStickers() {
return stickers;
}
@Override
protected void applyWrapped(@NotNull ApiStickerCollection wrapped) {
this.id = wrapped.getId();
this.accessHash = wrapped.getAccessHash();
this.stickers = new ArrayList<>();
for (ApiStickerDescriptor m : wrapped.getStickers()) {
this.stickers.add(new Sticker(m, id, accessHash));
}
}
@NotNull
@Override
protected ApiStickerCollection createInstance() {
return new ApiStickerCollection();
}
}