1+ /*
2+ * Copyright (C) 2025 Ctrip.com.
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 com.ctrip.sqllin.dsl.annotation
18+
19+ /* *
20+ * Marks declarations that are **experimental** in SQLlin DSL database API.
21+ *
22+ * This annotation indicates that the API is still being refined and may undergo changes
23+ * in future releases. These APIs include experimental features that provide additional
24+ * functionality but may not be as stable as the core APIs.
25+ *
26+ * Any usage of a declaration annotated with `@ExperimentalDSLDatabaseAPI` must be accepted either by
27+ * annotating that usage with the [OptIn] annotation, e.g. `@OptIn(ExperimentalDSLDatabaseAPI::class)`,
28+ * or by using the compiler argument `-opt-in=com.ctrip.sqllin.dsl.annotation.ExperimentalDSLDatabaseAPI`.
29+ *
30+ * @see OptIn
31+ * @see RequiresOptIn
32+ */
33+ @RequiresOptIn(
34+ message = " This is an experimental API for SQLlin DSL database operations. " +
35+ " It may be changed or removed in future releases. " +
36+ " Use with caution and be prepared for potential breaking changes." ,
37+ level = RequiresOptIn .Level .WARNING
38+ )
39+ @Target(
40+ AnnotationTarget .CLASS ,
41+ AnnotationTarget .FUNCTION ,
42+ AnnotationTarget .PROPERTY ,
43+ AnnotationTarget .TYPEALIAS
44+ )
45+ @Retention(AnnotationRetention .BINARY )
46+ public annotation class ExperimentalDSLDatabaseAPI
0 commit comments