Refine search
private String executeTemplate(Primitive primitive1, Primitive primitive2, String templateName) { ST template = this.findTemplate(templateName); template.add("primitive1", primitive1); template.add("primitive2", primitive2); template.add("sameTwoPrimitives", primitive1 == primitive2); return template.render(); }
private String executeTemplate(Primitive primitive1, Primitive primitive2, String templateName) { ST template = this.findTemplate(templateName); template.add("primitive1", primitive1); template.add("primitive2", primitive2); template.add("sameTwoPrimitives", primitive1 == primitive2); return template.render(); }
public byte[] getTemplateData(String templateResource, Map<String, WidInfo> widInfoMap) throws IOException { ST stTemplate = new ST(getTemplateResourceFileAsString(templateResource), '$', '$'); stTemplate.add("widInfo", widInfoMap); stTemplate.add("openbracket", "{"); stTemplate.add("closebracket", "}"); return stTemplate.render().getBytes(); }
String tbl_properties = propertiesToString(tbl.getParameters(), duplicateProps); createTab_stmt.add(TEMPORARY, tbl_temp); createTab_stmt.add(EXTERNAL, tbl_external); createTab_stmt.add(LIST_COLUMNS, tbl_columns); createTab_stmt.add(TBL_COMMENT, tbl_comment); createTab_stmt.add(LIST_PARTITIONS, tbl_partitions); createTab_stmt.add(TBL_PROPERTIES, tbl_properties); outStream.write(createTab_stmt.render().getBytes(StandardCharsets.UTF_8)); } catch (IOException e) { LOG.info("show create table: ", e);
String tbl_properties = propertiesToString(tbl.getParameters(), duplicateProps); createTab_stmt.add(TEMPORARY, tbl_temp); createTab_stmt.add(EXTERNAL, tbl_external); createTab_stmt.add(LIST_COLUMNS, tbl_columns); createTab_stmt.add(TBL_COMMENT, tbl_comment); createTab_stmt.add(LIST_PARTITIONS, tbl_partitions); createTab_stmt.add(TBL_PROPERTIES, tbl_properties); outStream.write(createTab_stmt.render().getBytes(StandardCharsets.UTF_8)); } catch (IOException e) { LOG.info("show create table: " + stringifyException(e));
Assert.assertEquals(kombucha.getInstanceOf("isItTimeForKombucha").render(), "select hour(current_timestamp(0)) < 24 as is_time;"); assertPattern(kombucha.getInstanceOf("getById").render(), "select\r?\n" + " t.record_id\r?\n" + ", t.id\r?\n" + "and t.tenant_record_id = :tenantRecordId\r?\n" + ";"); assertPattern(kombucha.getInstanceOf("getByRecordId").render(), "select\r?\n" + " t.record_id\r?\n" + ", t.id\r?\n" + "and t.tenant_record_id = :tenantRecordId\r?\n" + ";"); assertPattern(kombucha.getInstanceOf("getRecordId").render(), "select\r?\n" + " t.record_id\r?\n" + "from kombucha t\r?\n" + "and t.tenant_record_id = :tenantRecordId\r?\n" + ";"); assertPattern(kombucha.getInstanceOf("getHistoryRecordId").render(), "select\r?\n" + " max\\(t.record_id\\)\r?\n" + "from kombucha_history t\r?\n" + "and t.tenant_record_id = :tenantRecordId\r?\n" + ";"); assertPattern(kombucha.getInstanceOf("getAll").render(), "select\r?\n" + " t.record_id\r?\n" + ", t.id\r?\n" +
/** * Generate a reference to a resource * @param id attribute identifier * @param typ possible reference types * @return string that represents the result */ private String genReference(String id, ElementDefinition.TypeRefComponent typ) { ST shex_ref = tmplt(REFERENCE_DEFN_TEMPLATE); String ref = getTypeName(typ); shex_ref.add("id", id); shex_ref.add("ref", ref); references.add(ref); return shex_ref.render(); }
/** * Generate an entry in a choice list * @param base base identifier * @param typ type/discriminant * @return ShEx fragment for choice entry */ private String genChoiceEntry(StructureDefinition sd, ElementDefinition ed, String id, String base, ElementDefinition.TypeRefComponent typ) { ST shex_choice_entry = tmplt(ELEMENT_TEMPLATE); String ext = typ.getCode(); shex_choice_entry.add("id", "fhir:" + base+Character.toUpperCase(ext.charAt(0)) + ext.substring(1) + " "); shex_choice_entry.add("card", ""); shex_choice_entry.add("defn", genTypeRef(sd, ed, id, typ)); shex_choice_entry.add("comment", " "); return shex_choice_entry.render(); }
private void addComment(ST tmplt, ElementDefinition ed) { if(withComments && ed.hasShort() && !ed.getId().startsWith("Extension.")) { int nspaces; char[] sep; nspaces = Integer.max(COMMENT_COL - tmplt.add("comment", "#").render().indexOf('#'), MIN_COMMENT_SEP); tmplt.remove("comment"); sep = new char[nspaces]; Arrays.fill(sep, ' '); ArrayList<String> comment_lines = split_text(ed.getShort().replace("\n", " "), MAX_CHARS); StringBuilder comment = new StringBuilder("# "); char[] indent = new char[COMMENT_COL]; Arrays.fill(indent, ' '); for(int i = 0; i < comment_lines.size();) { comment.append(comment_lines.get(i++)); if(i < comment_lines.size()) comment.append("\n" + new String(indent) + "# "); } tmplt.add("comment", new String(sep) + comment.toString()); } else { tmplt.add("comment", " "); } }
if(completeModel || structures.get(0).getKind().equals(StructureDefinition.StructureDefinitionKind.RESOURCE)) start_cmd = completeModel? tmplt(ALL_START_TEMPLATE).render() : tmplt(START_TEMPLATE).add("id", structures.get(0).getId()).render(); else start_cmd = ""; shex_def.add("header", tmplt(HEADER_TEMPLATE). add("start", start_cmd). add("fhir", FHIR). add("fhirvs", FHIR_VS).render()); shapeDefinitions.append("\n").append(tmplt(TYPED_REFERENCE_TEMPLATE).add("refType", r).render()).append("\n"); if (!"Resource".equals(r) && !known_resources.contains(r)) shapeDefinitions.append("\n").append(tmplt(TARGET_REFERENCE_TEMPLATE).add("refType", r).render()).append("\n"); shex_def.add("shapeDefinitions", shapeDefinitions); .add("resources", StringUtils.join(known_resources, "> OR\n\t@<")).render()); List<String> all_entries = new ArrayList<String>(); for(String kr: known_resources) all_entries.add(tmplt(ALL_ENTRY_TEMPLATE).add("id", kr).render()); shapeDefinitions.append("\n").append(tmplt(ALL_TEMPLATE) .add("all_entries", StringUtils.join(all_entries, " OR\n\t")).render()); for(ValueSet vs: required_value_sets) shapeDefinitions.append("\n").append(genValueSet(vs)); return shex_def.render();
/** * Generate a definition for a referenced element * @param sd Containing structure definition * @param ed Inner element * @return ShEx representation of element reference */ private String genInnerTypeDef(StructureDefinition sd, ElementDefinition ed) { String path = ed.hasBase() ? ed.getBase().getPath() : ed.getPath();; ST element_reference = tmplt(SHAPE_DEFINITION_TEMPLATE); element_reference.add("resourceDecl", ""); // Not a resource element_reference.add("id", path); String comment = ed.getShort(); element_reference.add("comment", comment == null? " " : "# " + comment); List<String> elements = new ArrayList<String>(); for (ElementDefinition child: ProfileUtilities.getChildList(sd, path, null)) elements.add(genElementDefinition(sd, child)); element_reference.add("elements", StringUtils.join(elements, "\n")); return element_reference.render(); }
/** * Generate a type reference and optional value set definition * @param sd Containing StructureDefinition * @param ed Element being defined * @param typ Element type * @return Type definition */ private String simpleElement(StructureDefinition sd, ElementDefinition ed, String typ) { String addldef = ""; ElementDefinition.ElementDefinitionBindingComponent binding = ed.getBinding(); if(binding.hasStrength() && binding.getStrength() == Enumerations.BindingStrength.REQUIRED && "code".equals(typ)) { ValueSet vs = resolveBindingReference(sd, binding.getValueSet()); if (vs != null) { addldef = tmplt(VALUESET_DEFN_TEMPLATE).add("vsn", vsprefix(vs.getUrl())).render(); required_value_sets.add(vs); } } // TODO: check whether value sets and fixed are mutually exclusive if(ed.hasFixed()) { addldef = tmplt(FIXED_VALUE_TEMPLATE).add("val", ed.getFixed().primitiveValue()).render(); } return tmplt(SIMPLE_ELEMENT_DEFN_TEMPLATE).add("typ", typ).add("vsdef", addldef).render(); }
private String genValueSet(ValueSet vs) { ST vsd = tmplt(VALUE_SET_DEFINITION).add("vsuri", vsprefix(vs.getUrl())).add("comment", vs.getDescription()); ValueSetExpander.ValueSetExpansionOutcome vse = context.expandVS(vs, true, false); List<String> valid_codes = new ArrayList<String>(); if(vse != null && vse.getValueset() != null && vse.getValueset().hasExpansion() && vse.getValueset().getExpansion().hasContains()) { for(ValueSet.ValueSetExpansionContainsComponent vsec : vse.getValueset().getExpansion().getContains()) valid_codes.add("\"" + vsec.getCode() + "\""); } return vsd.add("val_list", valid_codes.size() > 0? " [" + StringUtils.join(valid_codes, " ") + ']' : " EXTERNAL").render(); }