This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f701607974 Merge RepositoryTupleType and RepositoryTupleEntity 
(#31139)
4f701607974 is described below

commit 4f7016079749fa19d5d088e02f3f8b7995e861e1
Author: Liang Zhang <[email protected]>
AuthorDate: Tue May 7 16:43:20 2024 +0800

    Merge RepositoryTupleType and RepositoryTupleEntity (#31139)
    
    * Refactor RepositoryTupleEntity
    
    * Merge RepositoryTupleType and RepositoryTupleEntity
    
    * Merge RepositoryTupleType and RepositoryTupleEntity
---
 .../config/YamlAuthorityRuleConfiguration.java     |  4 +--
 .../config/YamlGlobalClockRuleConfiguration.java   |  4 +--
 .../yaml/config/YamlLoggingRuleConfiguration.java  |  6 ++--
 .../config/pojo/YamlSingleRuleConfiguration.java   |  2 +-
 .../config/YamlSQLFederationRuleConfiguration.java |  4 +--
 .../config/YamlSQLParserRuleConfiguration.java     |  4 +--
 .../config/YamlSQLTranslatorRuleConfiguration.java |  4 +--
 .../yaml/config/YamlTrafficRuleConfiguration.java  |  4 +--
 .../config/YamlTransactionRuleConfiguration.java   |  4 +--
 .../mode/tuple/RepositoryTupleSwapperEngine.java   | 31 +++++++++---------
 .../tuple/annotation/RepositoryTupleEntity.java    |  7 ++++
 .../mode/tuple/annotation/RepositoryTupleType.java | 38 ----------------------
 12 files changed, 32 insertions(+), 80 deletions(-)

diff --git 
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
 
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
index 32c74bcb8c9..44c67c634ce 100644
--- 
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
+++ 
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/config/YamlAuthorityRuleConfiguration.java
@@ -22,7 +22,6 @@ import lombok.Setter;
 import org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
 import 
org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 
 import java.util.Collection;
@@ -33,8 +32,7 @@ import java.util.Map;
 /**
  * Authority rule configuration for YAML.
  */
-@RepositoryTupleEntity("authority")
-@RepositoryTupleType("authority")
+@RepositoryTupleEntity(value = "authority", leaf = true)
 @Getter
 @Setter
 public final class YamlAuthorityRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/yaml/config/YamlGlobalClockRuleConfiguration.java
 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/yaml/config/YamlGlobalClockRuleConfiguration.java
index 2af56283189..4c640a45f24 100644
--- 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/yaml/config/YamlGlobalClockRuleConfiguration.java
+++ 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/yaml/config/YamlGlobalClockRuleConfiguration.java
@@ -21,7 +21,6 @@ import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.globalclock.api.config.GlobalClockRuleConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 
 import java.util.Properties;
@@ -29,8 +28,7 @@ import java.util.Properties;
 /**
  * Global clock rule configuration for YAML.
  */
-@RepositoryTupleEntity("global_clock")
-@RepositoryTupleType("global_clock")
+@RepositoryTupleEntity(value = "global_clock", leaf = true)
 @Getter
 @Setter
 public final class YamlGlobalClockRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/config/YamlLoggingRuleConfiguration.java
 
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/config/YamlLoggingRuleConfiguration.java
index 090b8181ab2..e30dd2be85f 100644
--- 
a/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/config/YamlLoggingRuleConfiguration.java
+++ 
b/kernel/logging/core/src/main/java/org/apache/shardingsphere/logging/yaml/config/YamlLoggingRuleConfiguration.java
@@ -20,9 +20,8 @@ package org.apache.shardingsphere.logging.yaml.config;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import org.apache.shardingsphere.logging.config.LoggingRuleConfiguration;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -30,8 +29,7 @@ import java.util.LinkedList;
 /**
  * Logging rule configuration for YAML.
  */
-@RepositoryTupleEntity("logging")
-@RepositoryTupleType("logging")
+@RepositoryTupleEntity(value = "logging", leaf = true)
 @Getter
 @Setter
 public final class YamlLoggingRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/pojo/YamlSingleRuleConfiguration.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/pojo/YamlSingleRuleConfiguration.java
index 96e765ea2a6..3ce2a9ab09a 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/pojo/YamlSingleRuleConfiguration.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/yaml/config/pojo/YamlSingleRuleConfiguration.java
@@ -30,7 +30,7 @@ import java.util.LinkedList;
 /**
  * Single rule configuration for YAML.
  */
-@RepositoryTupleEntity("single")
+@RepositoryTupleEntity(value = "single")
 @Getter
 @Setter
 public final class YamlSingleRuleConfiguration implements 
YamlRuleConfiguration {
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/config/YamlSQLFederationRuleConfiguration.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/config/YamlSQLFederationRuleConfiguration.java
index 479e2c13872..801e044cf44 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/config/YamlSQLFederationRuleConfiguration.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/yaml/config/YamlSQLFederationRuleConfiguration.java
@@ -20,15 +20,13 @@ package org.apache.shardingsphere.sqlfederation.yaml.config;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import 
org.apache.shardingsphere.sqlfederation.api.config.SQLFederationRuleConfiguration;
 
 /**
  * SQL federation rule configuration for YAML.
  */
-@RepositoryTupleEntity("sql_federation")
-@RepositoryTupleType("sql_federation")
+@RepositoryTupleEntity(value = "sql_federation", leaf = true)
 @Getter
 @Setter
 public final class YamlSQLFederationRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/config/YamlSQLParserRuleConfiguration.java
 
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/config/YamlSQLParserRuleConfiguration.java
index 3ebd4df6dc3..c1db137ecaf 100644
--- 
a/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/config/YamlSQLParserRuleConfiguration.java
+++ 
b/kernel/sql-parser/core/src/main/java/org/apache/shardingsphere/parser/yaml/config/YamlSQLParserRuleConfiguration.java
@@ -20,15 +20,13 @@ package org.apache.shardingsphere.parser.yaml.config;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration;
 
 /**
  * SQL parser configuration for YAML.
  */
-@RepositoryTupleEntity("sql_parser")
-@RepositoryTupleType("sql_parser")
+@RepositoryTupleEntity(value = "sql_parser", leaf = true)
 @Getter
 @Setter
 public final class YamlSQLParserRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/config/YamlSQLTranslatorRuleConfiguration.java
 
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/config/YamlSQLTranslatorRuleConfiguration.java
index b6d673fe511..7baef6cbd9f 100644
--- 
a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/config/YamlSQLTranslatorRuleConfiguration.java
+++ 
b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/yaml/config/YamlSQLTranslatorRuleConfiguration.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.sqltranslator.yaml.config;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import 
org.apache.shardingsphere.sqltranslator.api.config.SQLTranslatorRuleConfiguration;
 
@@ -29,8 +28,7 @@ import java.util.Properties;
 /**
  * SQL translator configuration for YAML.
  */
-@RepositoryTupleEntity("sql_translator")
-@RepositoryTupleType("sql_translator")
+@RepositoryTupleEntity(value = "sql_translator", leaf = true)
 @Getter
 @Setter
 public final class YamlSQLTranslatorRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/config/YamlTrafficRuleConfiguration.java
 
b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/config/YamlTrafficRuleConfiguration.java
index a55a57c89d4..d5552720d41 100644
--- 
a/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/config/YamlTrafficRuleConfiguration.java
+++ 
b/kernel/traffic/core/src/main/java/org/apache/shardingsphere/traffic/yaml/config/YamlTrafficRuleConfiguration.java
@@ -21,7 +21,6 @@ import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import org.apache.shardingsphere.traffic.api.config.TrafficRuleConfiguration;
 
@@ -31,8 +30,7 @@ import java.util.Map;
 /**
  * Traffic rule configuration for YAML.
  */
-@RepositoryTupleEntity("traffic")
-@RepositoryTupleType("traffic")
+@RepositoryTupleEntity(value = "traffic", leaf = true)
 @Getter
 @Setter
 public final class YamlTrafficRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/config/YamlTransactionRuleConfiguration.java
 
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/config/YamlTransactionRuleConfiguration.java
index 438d72565e4..71b873edc22 100644
--- 
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/config/YamlTransactionRuleConfiguration.java
+++ 
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/yaml/config/YamlTransactionRuleConfiguration.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.transaction.yaml.config;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
 import 
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
 
@@ -29,8 +28,7 @@ import java.util.Properties;
 /**
  * Transaction rule configuration for YAML.
  */
-@RepositoryTupleEntity("transaction")
-@RepositoryTupleType("transaction")
+@RepositoryTupleEntity(value = "transaction", leaf = true)
 @Getter
 @Setter
 public final class YamlTransactionRuleConfiguration implements 
YamlGlobalRuleConfiguration {
diff --git 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/RepositoryTupleSwapperEngine.java
 
b/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/RepositoryTupleSwapperEngine.java
index 07a37a93018..07a5b4aab9a 100644
--- 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/RepositoryTupleSwapperEngine.java
+++ 
b/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/RepositoryTupleSwapperEngine.java
@@ -27,15 +27,14 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleField;
-import 
org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleKeyListNameGenerator;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleType;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapper;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
 import org.apache.shardingsphere.mode.path.GlobalNodePath;
 import org.apache.shardingsphere.mode.path.rule.RuleNodePath;
 import org.apache.shardingsphere.mode.spi.RuleNodePathProvider;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleField;
+import 
org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleKeyListNameGenerator;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.ParameterizedType;
@@ -63,12 +62,12 @@ public final class RepositoryTupleSwapperEngine {
      * @return repository tuples
      */
     public Collection<RepositoryTuple> swapToRepositoryTuples(final 
YamlRuleConfiguration yamlRuleConfig) {
-        if (null == 
yamlRuleConfig.getClass().getAnnotation(RepositoryTupleEntity.class)) {
+        RepositoryTupleEntity tupleEntity = 
yamlRuleConfig.getClass().getAnnotation(RepositoryTupleEntity.class);
+        if (null == tupleEntity) {
             return Collections.emptyList();
         }
-        RepositoryTupleType tupleType = 
yamlRuleConfig.getClass().getAnnotation(RepositoryTupleType.class);
-        if (null != tupleType) {
-            return Collections.singleton(new 
RepositoryTuple(tupleType.value(), YamlEngine.marshal(yamlRuleConfig)));
+        if (tupleEntity.leaf()) {
+            return Collections.singleton(new 
RepositoryTuple(tupleEntity.value(), YamlEngine.marshal(yamlRuleConfig)));
         }
         Collection<RepositoryTuple> result = new LinkedList<>();
         RuleNodePath ruleNodePath = 
TypedSPILoader.getService(RuleNodePathProvider.class, 
yamlRuleConfig.getRuleConfigurationType()).getRuleNodePath();
@@ -140,21 +139,21 @@ public final class RepositoryTupleSwapperEngine {
      * @return swapped YAML rule configurations
      */
     public Optional<YamlRuleConfiguration> swapToYamlRuleConfiguration(final 
Collection<RepositoryTuple> repositoryTuples, final Class<? extends 
YamlRuleConfiguration> toBeSwappedType) {
-        if (null == 
toBeSwappedType.getAnnotation(RepositoryTupleEntity.class)) {
+        RepositoryTupleEntity tupleEntity = 
toBeSwappedType.getAnnotation(RepositoryTupleEntity.class);
+        if (null == tupleEntity) {
             return Optional.empty();
         }
-        RepositoryTupleType tupleType = 
toBeSwappedType.getAnnotation(RepositoryTupleType.class);
-        return null == tupleType
-                ? swapToYamlRuleConfiguration(repositoryTuples, 
toBeSwappedType, getFields(toBeSwappedType))
-                : swapToYamlRuleConfiguration(repositoryTuples, 
toBeSwappedType, tupleType);
+        return tupleEntity.leaf()
+                ? swapToYamlRuleConfiguration(repositoryTuples, 
toBeSwappedType, tupleEntity)
+                : swapToYamlRuleConfiguration(repositoryTuples, 
toBeSwappedType, getFields(toBeSwappedType));
     }
     
     @SneakyThrows(ReflectiveOperationException.class)
     private Optional<YamlRuleConfiguration> swapToYamlRuleConfiguration(final 
Collection<RepositoryTuple> repositoryTuples,
-                                                                        final 
Class<? extends YamlRuleConfiguration> toBeSwappedType, final 
RepositoryTupleType tupleType) {
+                                                                        final 
Class<? extends YamlRuleConfiguration> toBeSwappedType, final 
RepositoryTupleEntity tupleEntity) {
         if 
(YamlGlobalRuleConfiguration.class.isAssignableFrom(toBeSwappedType)) {
             for (RepositoryTuple each : repositoryTuples) {
-                if (GlobalNodePath.getVersion(tupleType.value(), 
each.getKey()).isPresent()) {
+                if (GlobalNodePath.getVersion(tupleEntity.value(), 
each.getKey()).isPresent()) {
                     return Optional.of(YamlEngine.unmarshal(each.getValue(), 
toBeSwappedType));
                 }
             }
@@ -163,7 +162,7 @@ public final class RepositoryTupleSwapperEngine {
         YamlRuleConfiguration yamlRuleConfig = 
toBeSwappedType.getConstructor().newInstance();
         RuleNodePath ruleNodePath = 
TypedSPILoader.getService(RuleNodePathProvider.class, 
yamlRuleConfig.getRuleConfigurationType()).getRuleNodePath();
         for (RepositoryTuple each : repositoryTuples.stream().filter(each -> 
ruleNodePath.getRoot().isValidatedPath(each.getKey())).collect(Collectors.toList()))
 {
-            if 
(ruleNodePath.getUniqueItem(tupleType.value()).isValidatedPath(each.getKey())) {
+            if 
(ruleNodePath.getUniqueItem(tupleEntity.value()).isValidatedPath(each.getKey()))
 {
                 return Optional.of(YamlEngine.unmarshal(each.getValue(), 
toBeSwappedType));
             }
         }
diff --git 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleEntity.java
 
b/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleEntity.java
index c275ed24ffe..e3eb959818b 100644
--- 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleEntity.java
+++ 
b/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleEntity.java
@@ -35,4 +35,11 @@ public @interface RepositoryTupleEntity {
      * @return rule type name
      */
     String value();
+    
+    /**
+     * Whether leaf node.
+     * 
+     * @return is leaf node or not
+     */
+    boolean leaf() default false;
 }
diff --git 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleType.java
 
b/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleType.java
deleted file mode 100644
index 3f43efae578..00000000000
--- 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/tuple/annotation/RepositoryTupleType.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mode.tuple.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Repository tuple type.
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface RepositoryTupleType {
-    
-    /**
-     * Get persist path name.
-     *
-     * @return persist path name
-     */
-    String value();
-}

Reply via email to