8 package cz.vutbr.fit.knot.annotations.entity.attribute;
11 import javax.persistence.DiscriminatorValue;
12 import javax.persistence.Entity;
13 import javax.xml.datatype.DatatypeFactory;
14 import javax.xml.datatype.Duration;
15 import org.joda.time.Period;
16 import org.joda.time.format.ISOPeriodFormat;
17 import org.joda.time.format.PeriodFormatter;
18 import org.joda.time.format.PeriodFormatterBuilder;
32 @DiscriminatorValue(
"Duration")
47 PeriodFormatter pf =
new PeriodFormatterBuilder().append(ISOPeriodFormat.standard()).toFormatter();
48 Period p = pf.parsePeriod(this.stringValue);
50 }
catch (Exception e) {
62 return this.stringValue;
72 this.stringValue = ((Duration) value).toString();
81 public void setRawValue(String value)
throws IllegalArgumentException {
101 PeriodFormatter pf =
new PeriodFormatterBuilder().append(ISOPeriodFormat.standard()).toFormatter();
102 Period p = pf.parsePeriod(value);
103 this.stringValue = p.toString();
104 }
catch (Exception e) {
105 throw new IllegalArgumentException(
"Value " + value
106 +
" is not a valid Duration value according to RFC 3339");
118 return stringValue == null || stringValue.equals(
"");
void setRawValue(String value)
Class representing attribute of type Duration.
Base class representing attribute of annotation.
static final String DURATION_URI
void setValue(Object value)
String getTypeOntologyUri()