]> git.basschouten.com Git - openhab-addons.git/blob
0c164b5adb2e5e0678eb9a2e05329804e457d941
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2020 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.persistence.dynamodb.internal;
14
15 import java.time.ZonedDateTime;
16
17 import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
18 import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument;
19 import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
20 import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBRangeKey;
21
22 /**
23  * DynamoDBItem for items that can be serialized as DynamoDB string
24  *
25  * @author Sami Salonen - Initial contribution
26  */
27 @DynamoDBDocument
28 public class DynamoDBStringItem extends AbstractDynamoDBItem<String> {
29
30     public DynamoDBStringItem() {
31         this(null, null, null);
32     }
33
34     public DynamoDBStringItem(String name, String state, ZonedDateTime time) {
35         super(name, state, time);
36     }
37
38     @DynamoDBAttribute(attributeName = DynamoDBItem.ATTRIBUTE_NAME_ITEMSTATE)
39     @Override
40     public String getState() {
41         return state;
42     }
43
44     @DynamoDBHashKey(attributeName = DynamoDBItem.ATTRIBUTE_NAME_ITEMNAME)
45     @Override
46     public String getName() {
47         return name;
48     }
49
50     @Override
51     @DynamoDBRangeKey(attributeName = ATTRIBUTE_NAME_TIMEUTC)
52     public ZonedDateTime getTime() {
53         return time;
54     }
55
56     @Override
57     public void accept(org.openhab.persistence.dynamodb.internal.DynamoDBItemVisitor visitor) {
58         visitor.visit(this);
59     }
60
61     @Override
62     public void setName(String name) {
63         this.name = name;
64     }
65
66     @Override
67     public void setState(String state) {
68         this.state = state;
69     }
70
71     @Override
72     public void setTime(ZonedDateTime time) {
73         this.time = time;
74     }
75 }