Skip to content

Commit 2daa8b9

Browse files
committed
Updated README, transformations
1 parent 29d5d1e commit 2daa8b9

File tree

6 files changed

+66
-11
lines changed

6 files changed

+66
-11
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@
44

55
### Usage
66

7-
### Repositories
8-
9-
```
10-
mavenCentral()
11-
maven("https://jitpack.io")
12-
maven("https://hyperledger.jfrog.io/artifactory/besu-maven")
13-
```
14-
157
#### Gradle Groovy DSL
168

179
```
@@ -53,6 +45,15 @@ application {
5345
}
5446
```
5547

48+
#### Repositories
49+
50+
```
51+
mavenCentral()
52+
maven("https://jitpack.io")
53+
maven("https://hyperledger.jfrog.io/artifactory/besu-maven")
54+
```
55+
56+
5657
#### Data read sample
5758

5859
```java
@@ -72,7 +73,6 @@ String table = "directory";
7273

7374
ChainClientConfig cfg = new ChainClientConfig()
7475
.organization(organization)
75-
.seed(seed)
7676
.http(new HttpClientConfig()
7777
.host(host)
7878
.port(port)

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ publishing {
115115
create<MavenPublication>("Maven") {
116116
groupId = "com.weavechain"
117117
artifactId = "api"
118-
version = "1.1"
118+
version = "1.2"
119119
from(components["java"])
120120
}
121121
withType<MavenPublication> {

src/main/java/com/weavechain/core/data/DataLayout.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ private void buildTransformationsMap() {
140140
transformationAlgo = new HashMap<>();
141141

142142
transformationAlgo.put(DataTransform.ERASURE, new Erasure());
143+
transformationAlgo.put(DataTransform.REDACTION, new Redaction());
143144
transformationAlgo.put(DataTransform.HASHING, new Hashing(MappingRepositories.INSTANCE.getHashesRepository()));
144145
transformationAlgo.put(DataTransform.RANDOM_ID, new RandomId(MappingRepositories.INSTANCE.getRandomIdsRepository()));
145146
transformationAlgo.put(DataTransform.LINKED_RANDOM_ID, new RandomId(MappingRepositories.INSTANCE.getLinkedRandomIdsRepository()));

src/main/java/com/weavechain/core/data/transform/DataTransform.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ public enum DataTransform {
66

77
ERASURE, //field value is blanked. Nulls and data type are preserved
88

9+
REDACTION, //field value is replaced. Nulls and data type are preserved
10+
911
HASHING, //field value is hashed (SHA2). Nulls are preserved, result data type is string
1012

1113
RANDOM_ID, //field value is associated a random id. Nulls are preserved, result data type is long
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.weavechain.core.data.transform;
2+
3+
import com.weavechain.core.data.DataLayout;
4+
import com.weavechain.core.encoding.Utils;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Getter;
7+
8+
import java.util.Map;
9+
10+
public class Redaction implements Transformation {
11+
12+
@Override
13+
public Object transform(String scope, String table, Object value) {
14+
TransformationAlgoParams algoParams = DataLayout.getTransformAlgoParams(scope, table);
15+
Redaction.Params params = algoParams != null ? algoParams.getRedactionParams() : null;
16+
17+
if (value == null) {
18+
return null;
19+
} else if (value instanceof Long) {
20+
Object redacted = params != null && params.getRedactionMappings() != null ? params.getRedactionMappings().get(value) : null;
21+
return redacted != null ? redacted : params != null && params.getDefaultRedaction() != null ? params.getDefaultRedaction() : 0L;
22+
} else if (value instanceof Double) {
23+
Object redacted = params != null && params.getRedactionMappings() != null ? params.getRedactionMappings().get(value) : null;
24+
return redacted != null ? redacted : params != null && params.getDefaultRedaction() != null ? params.getDefaultRedaction() : 0d;
25+
} else {
26+
Object redacted = params != null && params.getRedactionMappings() != null ? params.getRedactionMappings().get(value) : null;
27+
return redacted != null ? redacted : params != null && params.getDefaultRedaction() != null ? params.getDefaultRedaction() : "";
28+
}
29+
}
30+
31+
@Override
32+
public String reverse(String scope, String table, Object value) {
33+
throw new IllegalArgumentException("Not supported");
34+
}
35+
36+
@Getter
37+
@AllArgsConstructor
38+
public static class Params {
39+
40+
private Object defaultRedaction;
41+
42+
private Map<Object, Object> redactionMappings;
43+
}
44+
}

src/main/java/com/weavechain/core/data/transform/TransformationAlgoParams.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public class TransformationAlgoParams {
1515

1616
private Encrypt.Params encryptParams;
1717

18+
private Redaction.Params redactionParams;
19+
1820
public TransformationAlgoParams quantizationParams(Quantization.Params value) {
1921
this.quantizationParams = value;
2022
return this;
@@ -30,11 +32,17 @@ public TransformationAlgoParams encryptParams(Encrypt.Params value) {
3032
return this;
3133
}
3234

35+
public TransformationAlgoParams redactionParams(Redaction.Params value) {
36+
this.redactionParams = value;
37+
return this;
38+
}
39+
3340
public TransformationAlgoParams copy() {
3441
return new TransformationAlgoParams(
3542
quantizationParams,
3643
noiseParams,
37-
encryptParams
44+
encryptParams,
45+
redactionParams
3846
);
3947
}
4048
}

0 commit comments

Comments
 (0)