Moved from profile to conditional

Improved dialect resolving
This commit is contained in:
jvi
2020-11-24 00:55:31 +01:00
parent ffa17b8457
commit e7f65af1ed
13 changed files with 146 additions and 52 deletions

View File

@@ -0,0 +1,19 @@
package ca.uhn.fhir.jpa.starter.annotations;
import ca.uhn.fhir.context.FhirVersionEnum;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class OnDSTU2Condition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata metadata) {
FhirVersionEnum version = FhirVersionEnum.forVersionString(conditionContext.
getEnvironment()
.getProperty("hapi.fhir.fhir_version")
.toUpperCase());
return version == FhirVersionEnum.DSTU2;
}
}

View File

@@ -0,0 +1,35 @@
package ca.uhn.fhir.jpa.starter.annotations;
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
import org.springframework.context.annotation.Conditional;
public class OnEitherVersion extends AnyNestedCondition {
OnEitherVersion() {
super(ConfigurationPhase.REGISTER_BEAN);
}
@Override
protected ConditionOutcome getFinalMatchOutcome(MemberMatchOutcomes memberOutcomes) {
ConditionOutcome result = super.getFinalMatchOutcome(memberOutcomes);
return result;
}
@Conditional(OnDSTU2Condition.class)
static class OnDSTU2 {
}
@Conditional(OnDSTU3Condition.class)
static class OnDSTU3 {
}
@Conditional(OnR4Condition.class)
static class OnR4 {
}
@Conditional(OnR5Condition.class)
static class OnR5 {
}
}

View File

@@ -0,0 +1,19 @@
package ca.uhn.fhir.jpa.starter.annotations;
import ca.uhn.fhir.context.FhirVersionEnum;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class OnR4Condition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata metadata) {
FhirVersionEnum version = FhirVersionEnum.forVersionString(conditionContext.
getEnvironment()
.getProperty("hapi.fhir.fhir_version")
.toUpperCase());
return version == FhirVersionEnum.R4;
}
}

View File

@@ -0,0 +1,19 @@
package ca.uhn.fhir.jpa.starter.annotations;
import ca.uhn.fhir.context.FhirVersionEnum;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class OnR5Condition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata metadata) {
FhirVersionEnum version = FhirVersionEnum.forVersionString(conditionContext.
getEnvironment()
.getProperty("hapi.fhir.fhir_version")
.toUpperCase());
return version == FhirVersionEnum.R5;
}
}