public void testSchemaless() { try { ClassAdObjectPool objectPool = new ClassAdObjectPool(); ClassAd pAd = new ClassAd(objectPool); String[] files = new String[] {"/jobads.txt"}; ClassAdParser parser = new ClassAdParser(objectPool); CharArrayLexerSource lexerSource = new CharArrayLexerSource(); for (String path : files) { List<Path> paths = new ArrayList<>(); paths.add(Paths.get(getClass().getResource(path).toURI())); FileSystemWatcher watcher = new FileSystemWatcher(paths, null, false); LocalFSInputStream in = new LocalFSInputStream(watcher); SemiStructuredRecordReader recordReader = new SemiStructuredRecordReader(in, "[", "]"); Value val = new Value(objectPool); while (recordReader.hasNext()) { val.reset(); IRawRecord<char[]> record = recordReader.next(); lexerSource.setNewSource(record.get()); parser.setLexerSource(lexerSource); parser.parseNext(pAd); Map<CaseInsensitiveString, ExprTree> attrs = pAd.getAttrList(); for (Entry<CaseInsensitiveString, ExprTree> entry : attrs.entrySet()) { ExprTree tree = entry.getValue(); switch (tree.getKind()) { case ATTRREF_NODE: case CLASSAD_NODE: case EXPR_ENVELOPE: case EXPR_LIST_NODE: case FN_CALL_NODE: case OP_NODE: break; case LITERAL_NODE: break; default: System.out.println("Something is wrong"); break; } } } recordReader.close(); } } catch (Exception e) { e.printStackTrace(); assertTrue(false); } }