@ConstructorProperties({"argumentSelectors", "filters"}) protected Logic( Fields[] argumentSelectors, Filter[] filters ) { this.argumentSelectors = argumentSelectors; this.filters = filters; verify(); this.numArgs = getFieldsSize(); }
@ConstructorProperties({"lhsArgumentsSelector", "lhsFilter", "rhsArgumentSelector", "rhsFilter"}) protected Logic( Fields lhsArgumentSelector, Filter lhsFilter, Fields rhsArgumentSelector, Filter rhsFilter ) { this( Fields.fields( lhsArgumentSelector, rhsArgumentSelector ), filters( lhsFilter, rhsFilter ) ); }
@Override public void prepare( FlowProcess flowProcess, OperationCall operationCall ) { Context context = new Context(); context.argumentEntries = getArgumentEntries(); context.calls = new ConcreteCall[ filters.length ]; for( int i = 0; i < filters.length; i++ ) { Filter filter = filters[ i ]; context.calls[ i ] = new ConcreteCall( (ConcreteCall) operationCall ); context.calls[ i ].setArguments( context.argumentEntries[ i ] ); context.calls[ i ].setArgumentFields( context.argumentEntries[ i ].getFields() ); filter.prepare( flowProcess, context.calls[ i ] ); } operationCall.setContext( context ); }
@ConstructorProperties({"filters"}) protected Logic( Filter... filters ) { this.filters = filters; if( filters == null ) throw new IllegalArgumentException( "given filters array must not be null" ); this.argumentSelectors = new Fields[ filters.length ]; Arrays.fill( this.argumentSelectors, Fields.ALL ); verify(); this.numArgs = getFieldsSize(); }