001package org.hl7.fhir.convertors.conv14_40.datatypes14_40; 002 003public class Expression14_40 { 004 public static String convertToR4Expression(String oldExpression) { 005 String pass1 = oldExpression.replaceAll("\\$context", "%context").replaceAll("\\$resource", "%resource").replaceAll("code\\+profile", "code&profile").replaceAll("path\\+'\\.'", "path&'.'").replaceAll("fullUrl\\+resource", "fullUrl&resource"); 006 String pass2 = pass1; 007 if (pass1.endsWith(".distinct()")) pass2 = pass1.substring(0, pass2.length() - 11) + ".isDistinct()"; 008 String pass3 = pass2; 009 if (pass2.endsWith(".empty() or (type.count() = 1)")) 010 pass3 = pass2.substring(0, pass2.length() - 30) + ".empty() or (type.count() <= 1)"; 011 String pass4 = pass3; 012 if (pass3.equals("duration >= 0")) pass4 = "duration.exists() implies duration >= 0"; 013 else if (pass3.equals("period >= 0")) pass4 = "period.exists() implies period >= 0"; 014 else if (pass3.equals("fullUrl.empty() xor resource")) pass4 = "fullUrl.empty() xor resource.exists()"; 015 return pass4; 016 } 017 018 public static String convertTo2016MayExpression(String newExpression) { 019 String pass1 = newExpression.replaceAll("%context", "\\$context").replaceAll("%resource", "\\$resource").replaceAll("code&profile", "code+profile").replaceAll("path&'\\.'", "path+'.'").replaceAll("fullUrl%resource", "fullUrl+resource"); 020 String pass2 = pass1; 021 if (pass1.endsWith(".isDistinct()")) pass2 = pass1.substring(0, pass1.length() - 13) + ".distinct()"; 022 String pass3 = pass2; 023 if (pass2.endsWith(".empty() or (type.count() <= 1)")) 024 pass3 = pass2.substring(0, pass2.length() - 31) + ".empty() or (type.count() = 1)"; 025 String pass4 = pass3; 026 if (pass3.equals("duration.exists() implies duration >= 0")) pass4 = "duration >= 0"; 027 else if (pass3.equals("period.exists() implies period >= 0")) pass4 = "period >= 0"; 028 else if (pass3.equals("fullUrl.empty() xor resource.exists()")) pass4 = "fullUrl.empty() xor resource"; 029 return pass4; 030 } 031}