Search in sources :

Example 11 with Value

use of org.apache.asterix.external.classad.Value in project asterixdb by apache.

the class FunctionalTester method handle_same.

/*********************************************************************
     * Function: handle_same
     * Purpose:
     *
     * @throws IOException
     *********************************************************************/
public static void handle_same(AMutableString line, State state, Parameters parameters, ClassAdObjectPool objectPool) throws IOException {
    ExprTreeHolder tree = new ExprTreeHolder(objectPool);
    ExprTreeHolder tree2 = new ExprTreeHolder(objectPool);
    Value value1 = new Value(objectPool);
    Value value2 = new Value(objectPool);
    try {
        get_two_exprs(line, tree, tree2, state, parameters, objectPool);
        if (tree.getInnerTree() != null || tree2.getInnerTree() != null) {
            if (parameters.debug) {
                System.out.println("Sameeval has two trees:");
                System.out.print(" ");
                print_expr(tree, state, parameters, objectPool);
                System.out.print(" ");
                print_expr(tree2, state, parameters, objectPool);
            }
            if (!evaluate_expr(tree, value1, parameters, objectPool)) {
                print_error_message("Couldn't evaluate first expression.\n", state);
            } else if (!evaluate_expr(tree2, value2, parameters, objectPool)) {
                print_error_message("Couldn't evaluate second expressions.\n", state);
            } else if (!value1.sameAs(value2)) {
                print_error_message("the expressions are different.", state);
                assert (false);
            }
            if (parameters.debug) {
                System.out.println("They evaluated to: ");
                System.out.println(" " + value1);
                System.out.println(" " + value2);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        assert (false);
    }
    return;
}
Also used : ExprTreeHolder(org.apache.asterix.external.classad.ExprTreeHolder) Value(org.apache.asterix.external.classad.Value) HyracksDataException(org.apache.hyracks.api.exceptions.HyracksDataException) IOException(java.io.IOException)

Example 12 with Value

use of org.apache.asterix.external.classad.Value in project asterixdb by apache.

the class ClassAdToADMTest method testSchemaless.

/**
     *
     */
public void testSchemaless() {
    try {
        ClassAdObjectPool objectPool = new ClassAdObjectPool();
        ClassAd pAd = new ClassAd(objectPool);
        String[] files = new String[] { "/classad/jobads.txt" };
        ClassAdParser parser = new ClassAdParser(objectPool);
        CharArrayLexerSource lexerSource = new CharArrayLexerSource();
        for (String path : files) {
            List<Path> paths = new ArrayList<>();
            Map<String, String> config = new HashMap<>();
            config.put(ExternalDataConstants.KEY_RECORD_START, "[");
            config.put(ExternalDataConstants.KEY_RECORD_END, "]");
            paths.add(Paths.get(getClass().getResource(path).toURI()));
            FileSystemWatcher watcher = new FileSystemWatcher(paths, null, false);
            LocalFSInputStream in = new LocalFSInputStream(watcher);
            SemiStructuredRecordReader recordReader = new SemiStructuredRecordReader();
            recordReader.configure(in, config);
            try {
                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;
                        }
                    }
                }
            } finally {
                recordReader.close();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        assertTrue(false);
    }
}
Also used : Path(java.nio.file.Path) ClassAdObjectPool(org.apache.asterix.external.classad.object.pool.ClassAdObjectPool) ClassAd(org.apache.asterix.external.classad.ClassAd) HashMap(java.util.HashMap) CharArrayLexerSource(org.apache.asterix.external.classad.CharArrayLexerSource) ArrayList(java.util.ArrayList) CaseInsensitiveString(org.apache.asterix.external.classad.CaseInsensitiveString) CaseInsensitiveString(org.apache.asterix.external.classad.CaseInsensitiveString) HyracksDataException(org.apache.hyracks.api.exceptions.HyracksDataException) ClassAdParser(org.apache.asterix.external.library.ClassAdParser) FileSystemWatcher(org.apache.asterix.external.util.FileSystemWatcher) SemiStructuredRecordReader(org.apache.asterix.external.input.record.reader.stream.SemiStructuredRecordReader) Value(org.apache.asterix.external.classad.Value) ExprTree(org.apache.asterix.external.classad.ExprTree) LocalFSInputStream(org.apache.asterix.external.input.stream.LocalFSInputStream)

Aggregations

Value (org.apache.asterix.external.classad.Value)12 ClassAd (org.apache.asterix.external.classad.ClassAd)6 HyracksDataException (org.apache.hyracks.api.exceptions.HyracksDataException)6 ExprTreeHolder (org.apache.asterix.external.classad.ExprTreeHolder)5 TokenValue (org.apache.asterix.external.classad.TokenValue)5 Literal (org.apache.asterix.external.classad.Literal)4 ArrayList (java.util.ArrayList)3 AMutableCharArrayString (org.apache.asterix.external.classad.AMutableCharArrayString)3 ExprList (org.apache.asterix.external.classad.ExprList)3 ExprTree (org.apache.asterix.external.classad.ExprTree)3 ClassAdParser (org.apache.asterix.external.library.ClassAdParser)3 MutableBoolean (org.apache.commons.lang3.mutable.MutableBoolean)3 Path (java.nio.file.Path)2 HashMap (java.util.HashMap)2 AMutableNumberFactor (org.apache.asterix.external.classad.AMutableNumberFactor)2 CaseInsensitiveString (org.apache.asterix.external.classad.CaseInsensitiveString)2 CharArrayLexerSource (org.apache.asterix.external.classad.CharArrayLexerSource)2 TokenType (org.apache.asterix.external.classad.Lexer.TokenType)2 ClassAdObjectPool (org.apache.asterix.external.classad.object.pool.ClassAdObjectPool)2 SemiStructuredRecordReader (org.apache.asterix.external.input.record.reader.stream.SemiStructuredRecordReader)2