Skip to content

Commit

Permalink
feat(core): Use data classes to replace record to improve JAVA8 com…
Browse files Browse the repository at this point in the history
…patibility (#593)
  • Loading branch information
Ahoo-Wang committed Jul 6, 2024
1 parent 0cd3491 commit 841af3b
Show file tree
Hide file tree
Showing 14 changed files with 124 additions and 39 deletions.
9 changes: 8 additions & 1 deletion cosid-core/src/main/java/me/ahoo/cosid/stat/SimpleStat.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,12 @@

package me.ahoo.cosid.stat;

public record SimpleStat(String kind, Stat actual) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public class SimpleStat implements Stat {
private final String kind;
private final Stat actual;
}
4 changes: 2 additions & 2 deletions cosid-core/src/main/java/me/ahoo/cosid/stat/Stat.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@

public interface Stat {

String kind();
String getKind();

@Nullable
default Stat actual() {
default Stat getActual() {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,13 @@

import me.ahoo.cosid.stat.Stat;

public record DatePrefixConverterStat(String kind, String pattern, Stat actual) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class DatePrefixConverterStat implements Stat {
private final String kind;
private final String pattern;
private final Stat actual;
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,13 @@

import me.ahoo.cosid.stat.Stat;

public record GroupedPrefixConverterStat(String kind, String delimiter, Stat actual) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class GroupedPrefixConverterStat implements Stat {
private final String kind;
private final String delimiter;
private final Stat actual;
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,14 @@

import me.ahoo.cosid.stat.Stat;

public record PrefixConverterStat(String kind, String prefix, Stat actual) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class PrefixConverterStat implements Stat {
private final String kind;
private final String prefix;
private final Stat actual;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,15 @@

import me.ahoo.cosid.stat.Stat;

public record RadixConverterStat(String kind, int radix, int charSize, boolean padStart, long maxId) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class RadixConverterStat implements Stat {
private final String kind;
private final int radix;
private final int charSize;
private final boolean padStart;
private final long maxId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@

import me.ahoo.cosid.stat.Stat;

public record SuffixConverterStat(String kind, String suffix, Stat actual) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class SuffixConverterStat implements Stat {
private final String kind;
private final String suffix;
private final Stat actual;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@

import me.ahoo.cosid.stat.Stat;

public record ToStringConverterStat(String kind, boolean padStart, int charSize) implements Stat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class ToStringConverterStat implements Stat {
private final String kind;
private final boolean padStart;
private final int charSize;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,15 @@

import me.ahoo.cosid.stat.Stat;

public record CosIdGeneratorStat(String kind,
int machineId,
long lastTimestamp,
Stat converter) implements IdGeneratorStat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class CosIdGeneratorStat implements IdGeneratorStat {
private final String kind;
private final int machineId;
private final long lastTimestamp;
private final Stat converter;

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
public interface IdGeneratorStat extends Stat {
@Nullable
@Override
default IdGeneratorStat actual() {
default IdGeneratorStat getActual() {
return null;
}

@Nullable
Stat converter();
Stat getConverter();

static IdGeneratorStat simple(String kind, @Nullable IdGeneratorStat actual, Stat converter) {
return new SimpleIdGeneratorStat(kind, actual, converter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,22 @@
import me.ahoo.cosid.segment.grouped.GroupedKey;
import me.ahoo.cosid.stat.Stat;

public record SegmentIdStat(String kind,
long fetchTime,
long maxId,
long offset,
long sequence,
long step,
boolean isExpired,
boolean isOverflow,
boolean isAvailable,
GroupedKey groupedKey,
Stat converter) implements IdGeneratorStat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class SegmentIdStat implements IdGeneratorStat {
private final String kind;
private final long fetchTime;
private final long maxId;
private final long offset;
private final long sequence;
private final long step;
private final boolean isExpired;
private final boolean isOverflow;
private final boolean isAvailable;
private final GroupedKey groupedKey;
private final Stat converter;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@

import me.ahoo.cosid.stat.Stat;

public record SimpleIdGeneratorStat(String kind, IdGeneratorStat actual, Stat converter) implements IdGeneratorStat {
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class SimpleIdGeneratorStat implements IdGeneratorStat {
private final String kind;
private final IdGeneratorStat actual;
private final Stat converter;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,20 @@

import me.ahoo.cosid.stat.Stat;

public record SnowflakeIdStat(String kind,
long epoch,
int timestampBit,
int machineBit,
int sequenceBit,
boolean isSafeJavascript,
int machineId,
long lastTimestamp,
Stat converter) implements IdGeneratorStat {

import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public final class SnowflakeIdStat implements IdGeneratorStat {
private final String kind;
private final long epoch;
private final int timestampBit;
private final int machineBit;
private final int sequenceBit;
private final boolean isSafeJavascript;
private final int machineId;
private final long lastTimestamp;
private final Stat converter;

}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ void statSnowflakeId() {
Assertions.assertNotNull(stat);
assertThat(stat, Matchers.instanceOf(SnowflakeIdStat.class));
var snowflakeIdStat = (SnowflakeIdStat) stat;
assertThat(snowflakeIdStat.machineId(), equalTo(0));
assertThat(snowflakeIdStat.getMachineId(), equalTo(0));
}

@Test
Expand Down Expand Up @@ -82,6 +82,6 @@ void statCosIdGenerator() {
Assertions.assertNotNull(stat);
assertThat(stat, Matchers.instanceOf(CosIdGeneratorStat.class));
var cosIdGeneratorStat = (CosIdGeneratorStat) stat;
assertThat(cosIdGeneratorStat.machineId(), equalTo(0));
assertThat(cosIdGeneratorStat.getMachineId(), equalTo(0));
}
}

0 comments on commit 841af3b

Please sign in to comment.