Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit 432c5b6

Browse files
committed
Add DateParameter, TimeParameter and DateTimeParameter
1 parent 4bd3edb commit 432c5b6

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.codeoverflow.chatoverflow.requirement.parameter
2+
3+
import java.time.LocalDate
4+
import java.time.format.DateTimeFormatter
5+
6+
import org.codeoverflow.chatoverflow.api.io.parameter.DateParameter
7+
8+
/**
9+
* A parameter holding a LocalDate value.
10+
* Formatting is done in the ISO-8601 standard.
11+
* Example: `2011-12-30`
12+
*/
13+
class DateParameterImpl extends DateParameter {
14+
15+
private val FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE
16+
private var value: LocalDate = _
17+
18+
override def get(): LocalDate = value
19+
20+
override def getType: Class[LocalDate] = classOf[LocalDate]
21+
22+
override def serialize(): String = value.format(FORMATTER)
23+
24+
override def deserialize(value: String): Unit = set(LocalDate.parse(value, FORMATTER))
25+
26+
override def set(value: LocalDate): Unit = this.value = value
27+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.codeoverflow.chatoverflow.requirement.parameter
2+
3+
import java.time.{LocalDateTime, LocalTime}
4+
import java.time.format.DateTimeFormatter
5+
6+
import org.codeoverflow.chatoverflow.api.io.parameter.{DateTimeParameter, TimeParameter}
7+
/**
8+
* A parameter holding a LocalDateTime value.
9+
* Formatting is done in the ISO-8601 standard.
10+
* Example: `2011-12-30T10:15:30`
11+
*/
12+
class DateTimeParameterImpl extends DateTimeParameter {
13+
14+
private val FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME
15+
private var value: LocalDateTime = _
16+
17+
override def get(): LocalDateTime = value
18+
19+
override def getType: Class[LocalDateTime] = classOf[LocalDateTime]
20+
21+
override def serialize(): String = value.format(FORMATTER)
22+
23+
override def deserialize(value: String): Unit = set(LocalDateTime.parse(value, FORMATTER))
24+
25+
override def set(value: LocalDateTime): Unit = this.value = value
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.codeoverflow.chatoverflow.requirement.parameter
2+
3+
import java.time.LocalTime
4+
import java.time.format.DateTimeFormatter
5+
6+
import org.codeoverflow.chatoverflow.api.io.parameter.TimeParameter
7+
8+
/**
9+
* A parameter holding a LocalTime value.
10+
* Formatting is done in the ISO-8601 standard.
11+
* Example: `10:15:30`
12+
*/
13+
class TimeParameterImpl extends TimeParameter {
14+
15+
private val FORMATTER = DateTimeFormatter.ISO_LOCAL_TIME
16+
private var value: LocalTime = _
17+
18+
override def get(): LocalTime = value
19+
20+
override def getType: Class[LocalTime] = classOf[LocalTime]
21+
22+
override def serialize(): String = value.format(FORMATTER)
23+
24+
override def deserialize(value: String): Unit = set(LocalTime.parse(value, FORMATTER))
25+
26+
override def set(value: LocalTime): Unit = this.value = value
27+
}

0 commit comments

Comments
 (0)