private List<Base> funcToDecimal(ExecutionContext context, List<Base> focus, ExpressionNode exp) { String s = convertToString(focus); List<Base> result = new ArrayList<Base>(); if (Utilities.isDecimal(s)) result.add(new DecimalType(s).noExtensions()); if ("true".equals(s)) result.add(new DecimalType(1).noExtensions()); if ("false".equals(s)) result.add(new DecimalType(0).noExtensions()); return result; }
private Base processConstant(FHIRLexer lexer) throws FHIRLexerException { if (lexer.isStringConstant()) { return new StringType(processConstantString(lexer.take(), lexer)).noExtensions(); } else if (Utilities.isInteger(lexer.getCurrent())) { return new IntegerType(lexer.take()).noExtensions(); } else if (Utilities.isDecimal(lexer.getCurrent())) { return new DecimalType(lexer.take()).noExtensions(); } else if (Utilities.existsInList(lexer.getCurrent(), "true", "false")) { return new BooleanType(lexer.take()).noExtensions(); } else if (lexer.getCurrent().equals("{}")) { lexer.take(); return null; } else if (lexer.getCurrent().startsWith("%") || lexer.getCurrent().startsWith("@")) { return new FHIRConstant(lexer.take()); } else throw lexer.error("Invalid Constant "+lexer.getCurrent()); }
private List<Base> funcToDecimal(ExecutionContext context, List<Base> focus, ExpressionNode exp) { String s = convertToString(focus); List<Base> result = new ArrayList<Base>(); if (Utilities.isDecimal(s)) result.add(new DecimalType(s).noExtensions()); if ("true".equals(s)) result.add(new DecimalType(1).noExtensions()); if ("false".equals(s)) result.add(new DecimalType(0).noExtensions()); return result; }
private Base processConstant(FHIRLexer lexer) throws FHIRLexerException { if (lexer.isStringConstant()) { return new StringType(processConstantString(lexer.take(), lexer)).noExtensions(); } else if (Utilities.isInteger(lexer.getCurrent())) { return new IntegerType(lexer.take()).noExtensions(); } else if (Utilities.isDecimal(lexer.getCurrent())) { return new DecimalType(lexer.take()).noExtensions(); } else if (Utilities.existsInList(lexer.getCurrent(), "true", "false")) { return new BooleanType(lexer.take()).noExtensions(); } else if (lexer.getCurrent().equals("{}")) { lexer.take(); return null; } else if (lexer.getCurrent().startsWith("%") || lexer.getCurrent().startsWith("@")) { return new FHIRConstant(lexer.take()); } else throw lexer.error("Invalid Constant "+lexer.getCurrent()); }