@Override public FileReference convert(String value) { if (value == null) { return null; } if (value.startsWith("@")) { String filePath = StringUtils.removeStart(value, "@"); return new FileReference(new File(filePath)); } return new FileReference(value); }
public static ObjectQuery createObjectQuery(FileReference ref, NinjaContext context, Class<? extends ObjectType> objectClass) throws IOException, SchemaException { if (ref == null) { return null; } String filterStr = ref.getValue(); if (ref.getReference() != null) { File file = ref.getReference(); filterStr = FileUtils.readFileToString(file, context.getCharset()); } PrismContext prismContext = context.getPrismContext(); PrismParserNoIO parser = prismContext.parserFor(filterStr); RootXNode root = parser.parseToXNode(); ObjectFilter filter = context.getQueryConverter().parseFilter(root.toMapXNode(), objectClass); return prismContext.queryFactory().createQuery(filter); }