[O] Pojoless

This commit is contained in:
Azalea 2025-10-25 09:44:39 +08:00
parent 55869f9d07
commit 3a54798d5f
24 changed files with 36 additions and 371 deletions

View File

@ -19,15 +19,15 @@ import icu.samnyan.aqua.sega.diva.model.request.card.CardProcedureRequest
import icu.samnyan.aqua.sega.diva.model.request.card.ChangeNameRequest
import icu.samnyan.aqua.sega.diva.model.request.card.ChangePasswdRequest
import icu.samnyan.aqua.sega.diva.model.request.card.RegistrationRequest
import icu.samnyan.aqua.sega.diva.model.request.databank.BannerDataRequest
import icu.samnyan.aqua.sega.diva.model.request.databank.PsRankingRequest
import icu.samnyan.aqua.sega.diva.model.request.ingame.*
import icu.samnyan.aqua.sega.diva.model.request.user.PdUnlockRequest
import icu.samnyan.aqua.sega.diva.model.request.user.PreStartRequest
import icu.samnyan.aqua.sega.diva.model.request.user.SpendCreditRequest
import icu.samnyan.aqua.sega.diva.model.request.user.StartRequest
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import icu.samnyan.aqua.sega.diva.util.DivaMapper
import icu.samnyan.aqua.sega.diva.util.DivaTime
import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode
import jakarta.servlet.http.HttpServletRequest
import lombok.AllArgsConstructor
import org.springframework.http.MediaType
@ -38,7 +38,6 @@ import org.springframework.web.bind.annotation.RestController
import org.springframework.web.multipart.MultipartFile
import java.net.URLDecoder
import java.nio.charset.StandardCharsets
import java.time.LocalDateTime
val DIVA_BAD = mapOf("stat" to "0")
val DIVA_OK = emptyMap
@ -56,18 +55,11 @@ class DivaController(
val changeNameHandler: ChangeNameHandler,
val changePasswdHandler: ChangePasswdHandler,
val registrationHandler: RegistrationHandler,
val bannerInfoHandler: BannerInfoHandler,
val bannerDataHandler: BannerDataHandler,
val contestInfoHandler: ContestInfoHandler,
val cstmzItmCtlgHandler: CstmzItmCtlgHandler,
val festaInfoHandler: FestaInfoHandler,
val nvRankingHandler: NvRankingHandler,
val psRankingHandler: PsRankingHandler,
val pstdHCtrlHandler: PstdHCtrlHandler,
val pstdItemNgLstHandler: PstdItemNgLstHandler,
val pvListHandler: PvListHandler,
val qstInfHandler: QstInfHandler,
val rmtWpLstHandler: RmtWpLstHandler,
val shopCatalogHandler: ShopCatalogHandler,
val buyCstmzItmHandler: BuyCstmzItmHandler,
val buyModuleHandler: BuyModuleHandler,
@ -82,6 +74,7 @@ class DivaController(
val preStartHandler: PreStartHandler,
val spendCreditHandler: SpendCreditHandler,
val startHandler: StartHandler,
val db: DivaRepos
) {
val logger = logger()
val mapper = DivaMapper()
@ -107,23 +100,26 @@ class DivaController(
"pv_list" -> pvListHandler.handle(mapper.convert(body, BaseRequest::class.java))
"ng_word" -> DIVA_OK
"rmt_wp_list" -> rmtWpLstHandler.handle(mapper.convert(body, BaseRequest::class.java))
"rmt_wp_list" -> mapOf("rwl_lut" to DivaTime.now, "rw_lst" to "***")
"festa_info" -> festaInfoHandler.handle(mapper.convert(body, BaseRequest::class.java))
"contest_info" -> contestInfoHandler.handle(mapper.convert(body, BaseRequest::class.java))
"pv_def_chr_list" -> mapOf("pdcl_lut" to DivaDateTimeUtil.getString(LocalDateTime.now()), "pdc_lst" to "***")
"pv_ng_mdl_list" -> mapOf("pnml_lut" to DivaDateTimeUtil.getString(LocalDateTime.now()), "pnm_lst" to "***")
"cstmz_itm_ng_mdl_list" -> mapOf("cinml_lut" to DivaDateTimeUtil.getString(LocalDateTime.now()), "cinm_lst" to "***")
"pv_def_chr_list" -> mapOf("pdcl_lut" to DivaTime.now, "pdc_lst" to "***")
"pv_ng_mdl_list" -> mapOf("pnml_lut" to DivaTime.now, "pnm_lst" to "***")
"cstmz_itm_ng_mdl_list" -> mapOf("cinml_lut" to DivaTime.now, "cinm_lst" to "***")
"banner_info" -> bannerInfoHandler.handle(mapper.convert(body, BaseRequest::class.java))
"banner_data" -> bannerDataHandler.handle(mapper.convert(body, BannerDataRequest::class.java))
"banner_info" -> listOf("bi_lut", "bi_id", "bi_st", "bi_et", "bi_ut").associateWith { null }
"banner_data" -> mapOf("bd_ut" to DivaTime.now, "bd_ti" to "***", "bd_hs" to "***", "bd_id" to body["bd_id"])
"cm_ply_info" -> emptyMap
"qst_inf" -> qstInfHandler.handle(mapper.convert(body, BaseRequest::class.java))
"pstd_h_ctrl" -> pstdHCtrlHandler.handle(mapper.convert(body, BaseRequest::class.java))
"pstd_item_ng_lst" -> pstdItemNgLstHandler.handle(mapper.convert(body, BaseRequest::class.java))
"qst_inf" -> mapOf("qi_lut" to DivaTime.now, "qhi_str" to null, "qrai_str" to null)
"pstd_h_ctrl" -> mapOf("p_std_hc_lut" to DivaTime.now, "p_std_hc_str" to "***,***")
"pstd_item_ng_lst" -> mapOf("p_std_i_n_lut" to DivaTime.now, "p_std_i_ie_n_lst" to "***", "p_std_i_se_n_lst" to "***")
"shop_catalog" -> shopCatalogHandler.handle(mapper.convert(body, BaseRequest::class.java))
"cstmz_itm_ctlg" -> cstmzItmCtlgHandler.handle(mapper.convert(body, BaseRequest::class.java))
"cstmz_itm_ctlg" -> mapOf(
"cstmz_itm_ctlg_lut" to DivaTime.now,
"cstmz_itm_ctlg" to encode(db.g.customize.findAll().map { it.toInternal() }.joinToString(",") { encode(it) })
)
"card_procedure" -> cardProcedureHandler.handle(mapper.convert(body, CardProcedureRequest::class.java))
"registration" -> registrationHandler.handle(mapper.convert(body, RegistrationRequest::class.java))

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.databank.BannerDataRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.BannerDataResponse
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class BannerDataHandler {
fun handle(request: BannerDataRequest) = BannerDataResponse(
LocalDateTime.now(),
"***",
"***",
request.bd_id
)
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.BannerInfoResponse
import org.springframework.stereotype.Component
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class BannerInfoHandler {
fun handle(request: BaseRequest) = BannerInfoResponse(
null,
null,
null,
null,
null
)
}

View File

@ -1,24 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.DivaCustomizeRepository
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.CstmzItmCtlgResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class CstmzItmCtlgHandler(private val customizeRepository: DivaCustomizeRepository) {
fun handle(request: BaseRequest): Any {
val customizeList = customizeRepository.findAll()
return CstmzItmCtlgResponse(
DivaDateTimeUtil.getString(LocalDateTime.now()),
encode(customizeList.map { it.toInternal() }.joinToString(",") { encode(it) })
)
}
}

View File

@ -1,18 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.PstdHCtrlResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class PstdHCtrlHandler {
fun handle(request: BaseRequest) = PstdHCtrlResponse(
DivaDateTimeUtil.getString(LocalDateTime.now()),
"***,***"
)
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.PstdItemNgLstResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class PstdItemNgLstHandler {
fun handle(request: BaseRequest) = PstdItemNgLstResponse(
DivaDateTimeUtil.getString(LocalDateTime.now()),
"***",
"***"
)
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.QstInfResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class QstInfHandler {
fun handle(request: BaseRequest) = QstInfResponse(
DivaDateTimeUtil.getString(LocalDateTime.now()),
null,
null
)
}

View File

@ -1,18 +0,0 @@
package icu.samnyan.aqua.sega.diva.handler.databank
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest
import icu.samnyan.aqua.sega.diva.model.response.databank.RmtWpLstResponse
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import org.springframework.stereotype.Component
import java.time.LocalDateTime
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Component
class RmtWpLstHandler {
fun handle(request: BaseRequest) = RmtWpLstResponse(
DivaDateTimeUtil.getString(LocalDateTime.now()),
"***"
)
}

View File

@ -7,10 +7,9 @@ import icu.samnyan.aqua.sega.diva.model.request.ingame.GetPvPdRequest
import icu.samnyan.aqua.sega.diva.model.response.ingame.GetPvPdResponse
import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvCustomize
import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvRecord
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil
import icu.samnyan.aqua.sega.diva.util.DivaTime
import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode
import org.springframework.stereotype.Component
import java.time.LocalDateTime
import java.util.function.Supplier
/**
@ -93,7 +92,7 @@ class GetPvPdHandler(val db: DivaRepos) {
return GetPvPdResponse(
pd.toString(),
false,
DivaDateTimeUtil.getString(LocalDateTime.now())
DivaTime.now
)
}

View File

@ -5,7 +5,6 @@ package icu.samnyan.aqua.sega.diva.model.common;
*/
public class Const {
public final static String ALL_NOT_HAVE = "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
public final static String ALL_NOT_HAVE_TEST = "0";
public final static String ALL_HAVE = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
public final static String NULL_QUEST = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1";
}

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.diva.model.common.collection;
import icu.samnyan.aqua.sega.diva.model.gamedata.Festa;
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil;
import icu.samnyan.aqua.sega.diva.util.DivaTime;
import icu.samnyan.aqua.sega.diva.util.URIEncoder;
import lombok.Data;
@ -66,14 +66,14 @@ public class FestaCollection {
}
public String getStarts() {
return DivaDateTimeUtil.getString(this.firstFesta.getStart()) + "," + DivaDateTimeUtil.getString(this.secondFesta.getStart());
return DivaTime.getString(this.firstFesta.getStart()) + "," + DivaTime.getString(this.secondFesta.getStart());
}
public String getEnds() {
return DivaDateTimeUtil.getString(this.firstFesta.getEnd()) + "," + DivaDateTimeUtil.getString(this.secondFesta.getEnd());
return DivaTime.getString(this.firstFesta.getEnd()) + "," + DivaTime.getString(this.secondFesta.getEnd());
}
public String getLastUpdateTime() {
return DivaDateTimeUtil.getString(this.firstFesta.getCreateDate().isBefore(this.secondFesta.getCreateDate()) ? this.firstFesta.getCreateDate() : this.secondFesta.getCreateDate());
return DivaTime.getString(this.firstFesta.getCreateDate().isBefore(this.secondFesta.getCreateDate()) ? this.firstFesta.getCreateDate() : this.secondFesta.getCreateDate());
}
}

View File

@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.diva.model.gamedata;
import icu.samnyan.aqua.sega.diva.model.common.ContestLeague;
import icu.samnyan.aqua.sega.diva.model.common.ContestNormaType;
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil;
import icu.samnyan.aqua.sega.diva.util.DivaTime;
import icu.samnyan.aqua.sega.diva.util.URIEncoder;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
@ -85,8 +85,8 @@ public class Contest implements Serializable {
public String getString() {
List<Object> list = new LinkedList<>();
list.add(this.id); // Contest ID
list.add(DivaDateTimeUtil.format(this.startTime)); // Start time
list.add(DivaDateTimeUtil.format(this.endTime)); // End time
list.add(DivaTime.format(this.startTime)); // Start time
list.add(DivaTime.format(this.endTime)); // End time
list.add(URIEncoder.encode(this.name)); // Contest name
list.add(URIEncoder.encode(this.description)); // Contest description
list.add(this.league.getValue()); // Contest league

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.diva.model.gamedata;
import icu.samnyan.aqua.sega.diva.model.Internalizable;
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil;
import icu.samnyan.aqua.sega.diva.util.DivaTime;
import icu.samnyan.aqua.sega.diva.util.URIEncoder;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@ -43,8 +43,8 @@ public class DivaCustomize implements Serializable, Internalizable {
return id + ",0," +
URIEncoder.encode(name) + "," +
price + "," +
DivaDateTimeUtil.format(releaseDate) + "," +
DivaDateTimeUtil.format(endDate) + "," +
DivaTime.format(releaseDate) + "," +
DivaTime.format(endDate) + "," +
sortOrder;
}
}

View File

@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.diva.model.gamedata;
import icu.samnyan.aqua.sega.diva.model.Internalizable;
import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil;
import icu.samnyan.aqua.sega.diva.util.DivaTime;
import icu.samnyan.aqua.sega.diva.util.URIEncoder;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@ -43,8 +43,8 @@ public class DivaModule implements Serializable, Internalizable {
return id + ",0," +
URIEncoder.encode(name) + "," +
price + "," +
DivaDateTimeUtil.format(releaseDate) + "," +
DivaDateTimeUtil.format(endDate) + "," +
DivaTime.format(releaseDate) + "," +
DivaTime.format(endDate) + "," +
sortOrder;
}
}

View File

@ -1,18 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.request.databank;
import icu.samnyan.aqua.sega.diva.model.request.BaseRequest;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class BannerDataRequest extends BaseRequest {
private int bd_id;
}

View File

@ -1,25 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.boot;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class AttendResponse {
private String atnd_prm1;
private String atnd_prm2;
private String atnd_prm3;
private LocalDateTime atnd_lut;
public AttendResponse(String atnd_prm1, String atnd_prm2, String atnd_prm3, LocalDateTime atnd_lut) {
this.atnd_prm1 = atnd_prm1;
this.atnd_prm2 = atnd_prm2;
this.atnd_prm3 = atnd_prm3;
this.atnd_lut = atnd_lut;
}
}

View File

@ -1,26 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class BannerDataResponse {
private LocalDateTime bd_ut;
private String bd_ti;
private String bd_hs;
private int bd_id;
public BannerDataResponse(LocalDateTime bd_ut, String bd_ti, String bd_hs, int bd_id) {
this.bd_ut = bd_ut;
this.bd_ti = bd_ti;
this.bd_hs = bd_hs;
this.bd_id = bd_id;
}
}

View File

@ -1,26 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class BannerInfoResponse {
private String bi_lut;
// Array of 10
private String bi_id;
private String bi_st;
private String bi_et;
private String bi_ut;
public BannerInfoResponse(String bi_lut, String bi_id, String bi_st, String bi_et, String bi_ut) {
this.bi_lut = bi_lut;
this.bi_id = bi_id;
this.bi_st = bi_st;
this.bi_et = bi_et;
this.bi_ut = bi_ut;
}
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class CstmzItmCtlgResponse {
private String cstmz_itm_ctlg_lut;
private String cstmz_itm_ctlg;
public CstmzItmCtlgResponse(String cstmz_itm_ctlg_lut, String cstmz_itm_ctlg) {
this.cstmz_itm_ctlg_lut = cstmz_itm_ctlg_lut;
this.cstmz_itm_ctlg = cstmz_itm_ctlg;
}
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class PstdHCtrlResponse {
private String p_std_hc_lut;
private String p_std_hc_str;
public PstdHCtrlResponse(String p_std_hc_lut, String p_std_hc_str) {
this.p_std_hc_lut = p_std_hc_lut;
this.p_std_hc_str = p_std_hc_str;
}
}

View File

@ -1,21 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class PstdItemNgLstResponse {
private String p_std_i_n_lut;
private String p_std_i_ie_n_lst;
private String p_std_i_se_n_lst;
public PstdItemNgLstResponse(String p_std_i_n_lut, String p_std_i_ie_n_lst, String p_std_i_se_n_lst) {
this.p_std_i_n_lut = p_std_i_n_lut;
this.p_std_i_ie_n_lst = p_std_i_ie_n_lst;
this.p_std_i_se_n_lst = p_std_i_se_n_lst;
}
}

View File

@ -1,21 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class QstInfResponse {
private String qi_lut;
private String qhi_str;
private String qrai_str;
public QstInfResponse(String qi_lut, String qhi_str, String qrai_str) {
this.qi_lut = qi_lut;
this.qhi_str = qhi_str;
this.qrai_str = qrai_str;
}
}

View File

@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.diva.model.response.databank;
import lombok.Getter;
import lombok.Setter;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Getter
@Setter
public class RmtWpLstResponse {
private String rwl_lut;
private String rw_lst;
public RmtWpLstResponse(String rwl_lut, String rw_lst) {
this.rwl_lut = rwl_lut;
this.rw_lst = rw_lst;
}
}

View File

@ -19,10 +19,11 @@ object DivaStringUtils {
fun getDummyString(content: String, length: Int) = "$content,".repeat(length).removeSuffix(",")
}
object DivaDateTimeUtil {
object DivaTime {
val now get() = getString(LocalDateTime.now())
@JvmStatic
fun getString(time: LocalDateTime) =
URIEncoder.encode(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time))
fun getString(time: LocalDateTime) = URIEncoder.encode(format(time))
@JvmStatic
fun format(time: LocalDateTime) = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0").format(time)
@ -30,7 +31,7 @@ object DivaDateTimeUtil {
class DivaDateTimeSerializer(t: Class<LocalDateTime>? = null) : StdSerializer<LocalDateTime>(t) {
override fun serialize(value: LocalDateTime, gen: JsonGenerator, provider: SerializerProvider) {
gen.writeString(DivaDateTimeUtil.getString(value))
gen.writeString(DivaTime.getString(value))
}
}