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

lujiajing pushed a commit to branch expose-methods
in repository 
https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git


The following commit(s) were added to refs/heads/expose-methods by this push:
     new e8f9391  remove duration over days
e8f9391 is described below

commit e8f93919204e721162cd3478cb275bb8c9bff730
Author: Megrez Lu <[email protected]>
AuthorDate: Wed Apr 27 09:36:09 2022 +0800

    remove duration over days
---
 .../banyandb/v1/client/BanyanDBClient.java         | 52 +++++++++++++++++++++-
 .../banyandb/v1/client/metadata/Duration.java      | 30 +------------
 .../banyandb/v1/client/metadata/Measure.java       |  9 +++-
 .../banyandb/v1/client/metadata/Property.java      |  2 +-
 .../banyandb/v1/client/metadata/Stream.java        |  9 +++-
 .../banyandb/v1/client/metadata/TagFamilySpec.java |  9 +++-
 6 files changed, 75 insertions(+), 36 deletions(-)

diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
index 98501c9..c9e924d 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClient.java
@@ -328,6 +328,7 @@ public class BanyanDBClient implements Closeable {
             store.get(property.group(), property.name(), property.id());
             store.update(property);
         } catch (BanyanDBException ex) {
+            // multiple entity can share a single index rule
             if (ex.getStatus().equals(Status.Code.NOT_FOUND)) {
                 store.create(property);
                 return;
@@ -349,6 +350,18 @@ public class BanyanDBClient implements Closeable {
         return store.get(group, name, id);
     }
 
+    /**
+     * List Properties
+     *
+     * @param group group of the metadata
+     * @param name  name of the metadata
+     * @return all properties belonging to the group and the name
+     */
+    public List<Property> findProperties(String group, String name) throws 
BanyanDBException {
+        PropertyStore store = new PropertyStore(checkNotNull(this.channel));
+        return store.list(group, name);
+    }
+
     /**
      * Delete property
      *
@@ -373,7 +386,14 @@ public class BanyanDBClient implements Closeable {
 
         IndexRuleMetadataRegistry irRegistry = new 
IndexRuleMetadataRegistry(checkNotNull(this.channel));
         for (final IndexRule ir : indexRules) {
-            irRegistry.create(ir);
+            try {
+                irRegistry.create(ir);
+            } catch (BanyanDBException ex) {
+                if (ex.getStatus().equals(Status.Code.ALREADY_EXISTS)) {
+                    continue;
+                }
+                throw ex;
+            }
         }
 
         List<String> indexRuleNames = 
indexRules.stream().map(IndexRule::name).collect(Collectors.toList());
@@ -398,7 +418,15 @@ public class BanyanDBClient implements Closeable {
 
         IndexRuleMetadataRegistry irRegistry = new 
IndexRuleMetadataRegistry(checkNotNull(this.channel));
         for (final IndexRule ir : indexRules) {
-            irRegistry.create(ir);
+            try {
+                irRegistry.create(ir);
+            } catch (BanyanDBException ex) {
+                // multiple entity can share a single index rule
+                if (ex.getStatus().equals(Status.Code.ALREADY_EXISTS)) {
+                    continue;
+                }
+                throw ex;
+            }
         }
 
         List<String> indexRuleNames = 
indexRules.stream().map(IndexRule::name).collect(Collectors.toList());
@@ -411,6 +439,26 @@ public class BanyanDBClient implements Closeable {
         irbRegistry.create(binding);
     }
 
+    /**
+     * Try to find the group defined
+     *
+     * @param name name of the group
+     * @return the group found in BanyanDB
+     */
+    public Group findGroup(String name) throws BanyanDBException {
+        Preconditions.checkArgument(!Strings.isNullOrEmpty(name));
+
+        try {
+            return new 
GroupMetadataRegistry(checkNotNull(this.channel)).get(name, name);
+        } catch (BanyanDBException ex) {
+            if (ex.getStatus().equals(Status.Code.NOT_FOUND)) {
+                return null;
+            }
+
+            throw ex;
+        }
+    }
+
     /**
      * Try to find the stream from the BanyanDB with given group and name.
      *
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
index 060cd76..ad5530e 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Duration.java
@@ -27,11 +27,9 @@ import java.util.regex.Pattern;
 @EqualsAndHashCode
 public class Duration {
     private static final Pattern DURATION_PATTERN =
-            
Pattern.compile("(((?<year>[0-9]+)y)?((?<week>[0-9]+)w)?((?<day>[0-9]+)d)?((?<hour>[0-9]+)h)?((?<minute>[0-9]+)m)?|0)");
+            
Pattern.compile("(((?<day>\\d+)d)?((?<hour>\\d+)h)?((?<minute>\\d+)m)?|0)");
     private static final long MINUTES_PER_HOUR = 60;
     private static final long MINUTES_PER_DAY = MINUTES_PER_HOUR * 24;
-    private static final long MINUTES_PER_WEEK = MINUTES_PER_DAY * 7;
-    private static final long MINUTES_PER_YEAR = MINUTES_PER_DAY * 365;
 
     @EqualsAndHashCode.Exclude
     private volatile String text;
@@ -48,16 +46,6 @@ public class Duration {
 
         final StringBuilder builder = new StringBuilder();
         long minutes = this.minutes;
-        if (minutes >= MINUTES_PER_YEAR) {
-            long years = minutes / MINUTES_PER_YEAR;
-            builder.append(years).append("y");
-            minutes = minutes % MINUTES_PER_YEAR;
-        }
-        if (minutes >= MINUTES_PER_WEEK) {
-            long weeks = minutes / MINUTES_PER_WEEK;
-            builder.append(weeks).append("w");
-            minutes = minutes % MINUTES_PER_WEEK;
-        }
         if (minutes >= MINUTES_PER_DAY) {
             long weeks = minutes / MINUTES_PER_DAY;
             builder.append(weeks).append("d");
@@ -88,14 +76,6 @@ public class Duration {
             return new Duration(0);
         }
         long total = 0;
-        final String years = matcher.group("year");
-        if (!Strings.isNullOrEmpty(years)) {
-            total += Long.parseLong(years) * MINUTES_PER_YEAR;
-        }
-        final String weeks = matcher.group("week");
-        if (!Strings.isNullOrEmpty(weeks)) {
-            total += Long.parseLong(weeks) * MINUTES_PER_WEEK;
-        }
         final String days = matcher.group("day");
         if (!Strings.isNullOrEmpty(days)) {
             total += Long.parseLong(days) * MINUTES_PER_DAY;
@@ -122,12 +102,4 @@ public class Duration {
     public static Duration ofDays(long days) {
         return ofHours(days * MINUTES_PER_DAY);
     }
-
-    public static Duration ofWeeks(long weeks) {
-        return ofHours(weeks * MINUTES_PER_WEEK);
-    }
-
-    public static Duration ofYears(long years) {
-        return ofHours(years * MINUTES_PER_YEAR);
-    }
 }
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
index 80b021d..3e586c4 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
@@ -85,6 +85,11 @@ public abstract class Measure extends 
NamedSchema<BanyandbDatabase.Measure> {
             return this;
         }
 
+        public final Measure.Builder addTagFamilies(Iterable<TagFamilySpec> 
tagFamilySpecs) {
+            tagFamiliesBuilder().addAll(tagFamilySpecs);
+            return this;
+        }
+
         abstract ImmutableList.Builder<FieldSpec> fieldsBuilder();
 
         public final Measure.Builder addField(FieldSpec fieldSpec) {
@@ -95,7 +100,9 @@ public abstract class Measure extends 
NamedSchema<BanyandbDatabase.Measure> {
         abstract ImmutableList.Builder<IndexRule> indexRulesBuilder();
 
         public final Measure.Builder addIndexes(Iterable<IndexRule> 
indexRules) {
-            indexRulesBuilder().addAll(indexRules);
+            for (final IndexRule ir : indexRules) {
+                this.addIndex(ir);
+            }
             return this;
         }
 
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
index 785389b..72771e5 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Property.java
@@ -33,7 +33,7 @@ import java.util.List;
 public abstract class Property extends NamedSchema<BanyandbProperty.Property> {
     public abstract String id();
 
-    abstract ImmutableList<TagAndValue<?>> tags();
+    public abstract ImmutableList<TagAndValue<?>> tags();
 
     @Override
     public BanyandbProperty.Property serialize() {
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
index 9bf62c1..88864fb 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Stream.java
@@ -71,10 +71,17 @@ public abstract class Stream extends 
NamedSchema<BanyandbDatabase.Stream> {
             return this;
         }
 
+        public final Builder addTagFamilies(Iterable<TagFamilySpec> 
tagFamilySpecs) {
+            tagFamiliesBuilder().addAll(tagFamilySpecs);
+            return this;
+        }
+
         abstract ImmutableList.Builder<IndexRule> indexRulesBuilder();
 
         public final Builder addIndexes(Iterable<IndexRule> indexRules) {
-            indexRulesBuilder().addAll(indexRules);
+            for (final IndexRule ir : indexRules) {
+                this.addIndex(ir);
+            }
             return this;
         }
 
diff --git 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
index ff14425..a09f048 100644
--- 
a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
+++ 
b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
@@ -36,12 +36,12 @@ public abstract class TagFamilySpec implements 
Serializable<BanyandbDatabase.Tag
     /**
      * name of the tag family
      */
-    abstract String tagFamilyName();
+    public abstract String tagFamilyName();
 
     /**
      * TagSpec(s) contained in this family
      */
-    abstract ImmutableList<TagSpec> tagSpecs();
+    public abstract ImmutableList<TagSpec> tagSpecs();
 
     public static TagFamilySpec.Builder create(String tagFamilyName) {
         return new 
AutoValue_TagFamilySpec.Builder().setTagFamilyName(tagFamilyName);
@@ -58,6 +58,11 @@ public abstract class TagFamilySpec implements 
Serializable<BanyandbDatabase.Tag
             return this;
         }
 
+        public final Builder addTagSpecs(Iterable<TagSpec> tagSpecs) {
+            tagSpecsBuilder().addAll(tagSpecs);
+            return this;
+        }
+
         public abstract TagFamilySpec build();
     }
 

Reply via email to