package tc.oc.api.message.types;
import javax.annotation.Nullable;
import com.google.common.reflect.TypeToken;
import tc.oc.api.annotations.Serialize;
import tc.oc.api.docs.virtual.PartialModel;
import tc.oc.commons.core.reflect.Types;
public class FindRequest<T extends PartialModel> implements ModelMessage<T> {
private final TypeToken<T> model;
public FindRequest(@Nullable TypeToken<T> model) {
this.model = model != null ? model : Types.assertFullySpecified(new TypeToken<T>(getClass()){});
}
public FindRequest(@Nullable Class<T> model) {
this(model == null ? null : TypeToken.of(model));
}
protected FindRequest() {
this((Class) null);
}
@Serialize public @Nullable Integer skip() {
return null;
}
@Serialize public @Nullable Integer limit() {
return null;
}
@Override
public TypeToken<T> model() {
return model;
}
}