001package org.hl7.fhir.utilities.validation; 002 003 004public class ValidationOptions { 005 public enum ValueSetMode { 006 ALL_CHECKS, CHECK_MEMERSHIP_ONLY, NO_MEMBERSHIP_CHECK 007 } 008 009 private String language; 010 private boolean useServer = true; 011 private boolean useClient = true; 012 private boolean guessSystem = false; 013 private ValueSetMode valueSetMode = ValueSetMode.ALL_CHECKS; 014 015 public ValidationOptions() { 016 super(); 017 } 018 019 public ValidationOptions(String language) { 020 super(); 021 this.language = language; 022 } 023 024 public String getLanguage() { 025 return language; 026 } 027 028 029 public boolean isUseServer() { 030 return useServer; 031 } 032 033 public boolean isUseClient() { 034 return useClient; 035 } 036 037 public boolean isGuessSystem() { 038 return guessSystem; 039 } 040 041 private ValidationOptions copy() { 042 ValidationOptions n = new ValidationOptions(language); 043 n.useServer = useServer; 044 n.useClient = useClient; 045 n.guessSystem = guessSystem; 046 return n; 047 } 048 049 public ValidationOptions setLanguage(String language) { 050 ValidationOptions n = this.copy(); 051 n.language = language; 052 return n; 053 } 054 055 056 public ValidationOptions noServer() { 057 ValidationOptions n = this.copy(); 058 n.useServer = false; 059 return n; 060 } 061 062 public ValidationOptions noClient() { 063 ValidationOptions n = this.copy(); 064 n.useClient = false; 065 return n; 066 } 067 068 public ValidationOptions guessSystem() { 069 ValidationOptions n = this.copy(); 070 n.guessSystem = false; 071 return n; 072 } 073 074 075 public String toJson() { 076 return "\"lang\":\""+language+"\", \"useServer\":\""+Boolean.toString(useServer)+"\", \"useClient\":\""+Boolean.toString(useClient)+"\", \"guessSystem\":\""+Boolean.toString(guessSystem)+"\", \"valueSetMode\":\""+valueSetMode.toString()+"\""; 077 } 078 079 public static ValidationOptions defaults() { 080 return new ValidationOptions("en-US"); 081 } 082 083 public ValidationOptions checkValueSetOnly() { 084 ValidationOptions n = this.copy(); 085 n.valueSetMode = ValueSetMode.CHECK_MEMERSHIP_ONLY; 086 return n; 087 } 088 089 public ValidationOptions noCheckValueSetMembership() { 090 ValidationOptions n = this.copy(); 091 n.valueSetMode = ValueSetMode.NO_MEMBERSHIP_CHECK; 092 return n; 093 } 094 095 public ValueSetMode getValueSetMode() { 096 return valueSetMode; 097 } 098 099 100}