Skip to content

Commit 3b20e87

Browse files
Add @type annotation and DatabaseType enum.
1 parent 897b9b4 commit 3b20e87

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.objectbox.annotation;
2+
3+
/**
4+
* Use with {@link Type @Type} to specify how a property value is stored in the database.
5+
* <p>
6+
* This is e.g. useful for integer types that can mean different things depending on interpretation.
7+
* For example a 64-bit long value might be interpreted as time in milliseconds, or as time in nanoseconds.
8+
*/
9+
public enum DatabaseType {
10+
11+
/**
12+
* High precision time stored as a 64-bit long representing nanoseconds since 1970-01-01 (unix epoch).
13+
*/
14+
DateNano
15+
16+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright 2019 ObjectBox Ltd. All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package io.objectbox.annotation;
18+
19+
import java.lang.annotation.ElementType;
20+
import java.lang.annotation.Retention;
21+
import java.lang.annotation.RetentionPolicy;
22+
import java.lang.annotation.Target;
23+
24+
/**
25+
* Specifies the database type of an annotated property as one of {@link DatabaseType}.
26+
*/
27+
@Retention(RetentionPolicy.CLASS)
28+
@Target({ElementType.FIELD})
29+
public @interface Type {
30+
31+
DatabaseType value();
32+
33+
}

0 commit comments

Comments
 (0)