Skip to content

Commit 14011cf

Browse files
committed
issue #424 - update CodeGenerator and regen model
1. Code subtypes now use their builders for static initialization and static `of` helpers just return one of these constants. This avoids unneccessarilly constructing new instances which carries a slight validation cost. 2. String, Uri, and certain String/Uri subtypes now use java-based validation from ValidationSupport instead of regex / pattern matching Lock in the model updates by updating CodeGenerator. Signed-off-by: Lee Surprenant <lmsurpre@us.ibm.com>
1 parent 8dfa126 commit 14011cf

255 files changed

Lines changed: 9336 additions & 3900 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

fhir-model/src/main/java/com/ibm/fhir/model/type/Canonical.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,20 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

15-
import com.ibm.fhir.model.util.ValidationSupport;
1614
import com.ibm.fhir.model.visitor.Visitor;
1715

1816
/**
1917
* A URI that is a reference to a canonical URL on a FHIR resource
2018
*/
2119
@Generated("com.ibm.fhir.tools.CodeGenerator")
2220
public class Canonical extends Uri {
23-
private static final Pattern PATTERN = Pattern.compile("\\S*");
24-
2521
private volatile int hashCode;
2622

2723
private Canonical(Builder builder) {
2824
super(builder);
29-
// ValidationSupport.checkMinLength(value);
30-
// ValidationSupport.checkValue(value, PATTERN);
3125
}
3226

3327
@Override

fhir-model/src/main/java/com/ibm/fhir/model/type/Code.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

@@ -21,13 +20,10 @@
2120
*/
2221
@Generated("com.ibm.fhir.tools.CodeGenerator")
2322
public class Code extends String {
24-
private static final Pattern PATTERN = Pattern.compile("[^\\s]+(\\s[^\\s]+)*");
25-
2623
private volatile int hashCode;
2724

2825
protected Code(Builder builder) {
2926
super(builder);
30-
// ValidationSupport.checkValue(value, PATTERN);
3127
ValidationSupport.checkCode(value);
3228
}
3329

fhir-model/src/main/java/com/ibm/fhir/model/type/Markdown.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,20 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

15-
import com.ibm.fhir.model.util.ValidationSupport;
1614
import com.ibm.fhir.model.visitor.Visitor;
1715

1816
/**
1917
* A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine
2018
*/
2119
@Generated("com.ibm.fhir.tools.CodeGenerator")
2220
public class Markdown extends String {
23-
private static final Pattern PATTERN = Pattern.compile("[ \\r\\n\\t\\S]+");
24-
2521
private volatile int hashCode;
2622

2723
private Markdown(Builder builder) {
2824
super(builder);
29-
ValidationSupport.checkValue(value, PATTERN);
3025
}
3126

3227
@Override

fhir-model/src/main/java/com/ibm/fhir/model/type/Oid.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public class Oid extends Uri {
2626

2727
private Oid(Builder builder) {
2828
super(builder);
29-
ValidationSupport.checkMinLength(value);
3029
ValidationSupport.checkValue(value, PATTERN);
3130
}
3231

fhir-model/src/main/java/com/ibm/fhir/model/type/String.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

@@ -20,18 +19,13 @@
2019
*/
2120
@Generated("com.ibm.fhir.tools.CodeGenerator")
2221
public class String extends Element {
23-
private static final Pattern PATTERN = Pattern.compile("[ \\r\\n\\t\\S]+");
24-
2522
protected final java.lang.String value;
2623

2724
private volatile int hashCode;
2825

2926
protected String(Builder builder) {
3027
super(builder);
3128
value = builder.value;
32-
// ValidationSupport.checkMaxLength(value);
33-
// ValidationSupport.checkMinLength(value);
34-
// ValidationSupport.checkValue(value, PATTERN);
3529
ValidationSupport.checkString(value);
3630
ValidationSupport.requireValueOrChildren(this);
3731
}

fhir-model/src/main/java/com/ibm/fhir/model/type/Uri.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

@@ -20,17 +19,13 @@
2019
*/
2120
@Generated("com.ibm.fhir.tools.CodeGenerator")
2221
public class Uri extends Element {
23-
private static final Pattern PATTERN = Pattern.compile("\\S*");
24-
2522
protected final java.lang.String value;
2623

2724
private volatile int hashCode;
2825

2926
protected Uri(Builder builder) {
3027
super(builder);
3128
value = builder.value;
32-
// ValidationSupport.checkMaxLength(value);
33-
// ValidationSupport.checkValue(value, PATTERN);
3429
ValidationSupport.checkUri(value);
3530
ValidationSupport.requireValueOrChildren(this);
3631
}

fhir-model/src/main/java/com/ibm/fhir/model/type/Url.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,20 @@
88

99
import java.util.Collection;
1010
import java.util.Objects;
11-
import java.util.regex.Pattern;
1211

1312
import javax.annotation.Generated;
1413

15-
import com.ibm.fhir.model.util.ValidationSupport;
1614
import com.ibm.fhir.model.visitor.Visitor;
1715

1816
/**
1917
* A URI that is a literal reference
2018
*/
2119
@Generated("com.ibm.fhir.tools.CodeGenerator")
2220
public class Url extends Uri {
23-
private static final Pattern PATTERN = Pattern.compile("\\S*");
24-
2521
private volatile int hashCode;
2622

2723
private Url(Builder builder) {
2824
super(builder);
29-
// ValidationSupport.checkMinLength(value);
30-
// ValidationSupport.checkValue(value, PATTERN);
3125
}
3226

3327
@Override

fhir-model/src/main/java/com/ibm/fhir/model/type/Uuid.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public class Uuid extends Uri {
2626

2727
private Uuid(Builder builder) {
2828
super(builder);
29-
ValidationSupport.checkMinLength(value);
3029
ValidationSupport.checkValue(value, PATTERN);
3130
}
3231

fhir-model/src/main/java/com/ibm/fhir/model/type/code/AccountStatus.java

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,48 +20,61 @@ public class AccountStatus extends Code {
2020
/**
2121
* Active
2222
*/
23-
public static final AccountStatus ACTIVE = AccountStatus.of(ValueSet.ACTIVE);
23+
public static final AccountStatus ACTIVE = AccountStatus.builder().value(ValueSet.ACTIVE).build();
2424

2525
/**
2626
* Inactive
2727
*/
28-
public static final AccountStatus INACTIVE = AccountStatus.of(ValueSet.INACTIVE);
28+
public static final AccountStatus INACTIVE = AccountStatus.builder().value(ValueSet.INACTIVE).build();
2929

3030
/**
3131
* Entered in error
3232
*/
33-
public static final AccountStatus ENTERED_IN_ERROR = AccountStatus.of(ValueSet.ENTERED_IN_ERROR);
33+
public static final AccountStatus ENTERED_IN_ERROR = AccountStatus.builder().value(ValueSet.ENTERED_IN_ERROR).build();
3434

3535
/**
3636
* On Hold
3737
*/
38-
public static final AccountStatus ON_HOLD = AccountStatus.of(ValueSet.ON_HOLD);
38+
public static final AccountStatus ON_HOLD = AccountStatus.builder().value(ValueSet.ON_HOLD).build();
3939

4040
/**
4141
* Unknown
4242
*/
43-
public static final AccountStatus UNKNOWN = AccountStatus.of(ValueSet.UNKNOWN);
43+
public static final AccountStatus UNKNOWN = AccountStatus.builder().value(ValueSet.UNKNOWN).build();
4444

4545
private volatile int hashCode;
4646

4747
private AccountStatus(Builder builder) {
4848
super(builder);
4949
}
5050

51-
public static AccountStatus of(java.lang.String value) {
52-
return AccountStatus.builder().value(value).build();
51+
public static AccountStatus of(ValueSet value) {
52+
switch (value) {
53+
case ACTIVE:
54+
return ACTIVE;
55+
case INACTIVE:
56+
return INACTIVE;
57+
case ENTERED_IN_ERROR:
58+
return ENTERED_IN_ERROR;
59+
case ON_HOLD:
60+
return ON_HOLD;
61+
case UNKNOWN:
62+
return UNKNOWN;
63+
default:
64+
throw new IllegalArgumentException(value.name());
65+
}
5366
}
5467

55-
public static AccountStatus of(ValueSet value) {
56-
return AccountStatus.builder().value(value).build();
68+
public static AccountStatus of(java.lang.String value) {
69+
return of(ValueSet.valueOf(value));
5770
}
5871

5972
public static String string(java.lang.String value) {
60-
return AccountStatus.builder().value(value).build();
73+
return of(ValueSet.valueOf(value));
6174
}
6275

6376
public static Code code(java.lang.String value) {
64-
return AccountStatus.builder().value(value).build();
77+
return of(ValueSet.valueOf(value));
6578
}
6679

6780
@Override

fhir-model/src/main/java/com/ibm/fhir/model/type/code/ActionCardinalityBehavior.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,40 @@ public class ActionCardinalityBehavior extends Code {
2020
/**
2121
* Single
2222
*/
23-
public static final ActionCardinalityBehavior SINGLE = ActionCardinalityBehavior.of(ValueSet.SINGLE);
23+
public static final ActionCardinalityBehavior SINGLE = ActionCardinalityBehavior.builder().value(ValueSet.SINGLE).build();
2424

2525
/**
2626
* Multiple
2727
*/
28-
public static final ActionCardinalityBehavior MULTIPLE = ActionCardinalityBehavior.of(ValueSet.MULTIPLE);
28+
public static final ActionCardinalityBehavior MULTIPLE = ActionCardinalityBehavior.builder().value(ValueSet.MULTIPLE).build();
2929

3030
private volatile int hashCode;
3131

3232
private ActionCardinalityBehavior(Builder builder) {
3333
super(builder);
3434
}
3535

36-
public static ActionCardinalityBehavior of(java.lang.String value) {
37-
return ActionCardinalityBehavior.builder().value(value).build();
36+
public static ActionCardinalityBehavior of(ValueSet value) {
37+
switch (value) {
38+
case SINGLE:
39+
return SINGLE;
40+
case MULTIPLE:
41+
return MULTIPLE;
42+
default:
43+
throw new IllegalArgumentException(value.name());
44+
}
3845
}
3946

40-
public static ActionCardinalityBehavior of(ValueSet value) {
41-
return ActionCardinalityBehavior.builder().value(value).build();
47+
public static ActionCardinalityBehavior of(java.lang.String value) {
48+
return of(ValueSet.valueOf(value));
4249
}
4350

4451
public static String string(java.lang.String value) {
45-
return ActionCardinalityBehavior.builder().value(value).build();
52+
return of(ValueSet.valueOf(value));
4653
}
4754

4855
public static Code code(java.lang.String value) {
49-
return ActionCardinalityBehavior.builder().value(value).build();
56+
return of(ValueSet.valueOf(value));
5057
}
5158

5259
@Override

0 commit comments

Comments
 (0)