public FrameJob exec(List<IFrameEvent<?>> events) throws Exception { // get the frames to run FrameJob job = registry.createJob(events); job.exec(); // process the actions if (this.actionRunners != null && this.actionRunners.length > 0) { for (FrameAction action : job.getActions()) { for (FrameActionRunner runner : this.actionRunners) { runner.exec(job, action); } } } return job; }
@Override protected void init() { super.init(); // At most one of the following may be specified. int specified = 0; if (!isEmpty(cols)) { specified++; } if (!isEmpty(ignored_cols)) { specified++; } if (!isEmpty(ignored_cols_by_name)) { specified++; } if (specified > 1) throw new IllegalArgumentException("Arguments 'cols', 'ignored_cols_by_name', and 'ignored_cols' are exclusive"); // If the column are not specified, then select everything. if (isEmpty(cols)) { cols = new int[source.vecs().length]; for( int i = 0; i < cols.length; i++ ) cols[i] = i; } else { if (!checkIdx(source, cols)) throw new IllegalArgumentException("Argument 'cols' specified invalid column!"); } // Make a set difference between cols and (ignored_cols || ignored_cols_by_name) if (!isEmpty(ignored_cols) || !isEmpty(ignored_cols_by_name)) { int[] icols = ! isEmpty(ignored_cols) ? ignored_cols : ignored_cols_by_name; if (!checkIdx(source, icols)) throw new IllegalArgumentException("Argument '"+(!isEmpty(ignored_cols) ? "ignored_cols" : "ignored_cols_by_name")+"' specified invalid column!"); cols = difference(cols, icols); // Setup all variables in consistence way ignored_cols = icols; ignored_cols_by_name = icols; } if( cols.length == 0 ) throw new IllegalArgumentException("No column selected"); }
@Override protected void init() { super.init(); if (_cv) return; // At most one of the following may be specified. int specified = 0; if (!isEmpty(cols)) { specified++; } if (!isEmpty(ignored_cols)) { specified++; } if (!isEmpty(ignored_cols_by_name)) { specified++; } if (specified > 1) throw new IllegalArgumentException( "Arguments 'cols', 'ignored_cols_by_name', and 'ignored_cols' are exclusive"); // Unify all ignored cols specifiers to ignored_cols. { if (!isEmpty(ignored_cols_by_name)) { assert (isEmpty(ignored_cols)); ignored_cols = ignored_cols_by_name; ignored_cols_by_name = EMPTY; } if (ignored_cols == null) { ignored_cols = new int[0]; } } // At this point, ignored_cols_by_name is dead. assert (isEmpty(ignored_cols_by_name)); // Create map of ignored columns for speed. HashMap<Integer, Integer> ignoredColsMap = new HashMap<Integer, Integer>(); for (int i = 0; i < ignored_cols.length; i++) { int value = ignored_cols[i]; ignoredColsMap.put(new Integer(value), new Integer(1)); } // Add UUID cols to ignoredColsMap. Duplicates get folded into one entry. Vec[] vecs = source.vecs(); for (int i = 0; i < vecs.length; i++) { if (vecs[i].isUUID()) { ignoredColsMap.put(new Integer(i), new Integer(1)); } } // Rebuild ignored_cols from the map. Sort it. { ignored_cols = new int[ignoredColsMap.size()]; int j = 0; for (Integer key : ignoredColsMap.keySet()) { ignored_cols[j] = key.intValue(); j++; } Arrays.sort(ignored_cols); } // If the columns are not specified, then select everything. if (isEmpty(cols)) { cols = new int[source.vecs().length]; for (int i = 0; i < cols.length; i++) cols[i] = i; } else { if (!checkIdx(source, cols)) throw new IllegalArgumentException("Argument 'cols' specified invalid column!"); } // Make a set difference between cols and ignored_cols. if (!isEmpty(ignored_cols)) { int[] icols = !isEmpty(ignored_cols) ? ignored_cols : ignored_cols_by_name; if (!checkIdx(source, icols)) throw new IllegalArgumentException( "Argument 'ignored_cols' or 'ignored_cols_by_name' specified invalid column!"); cols = difference(cols, icols); // Setup all variables in consistent way ignored_cols = icols; ignored_cols_by_name = icols; } if (cols.length == 0) { throw new IllegalArgumentException("No column selected"); } }