001/* 002 * Copyright (c) 2016-2017 Chris K Wensel <chris@wensel.net>. All Rights Reserved. 003 * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved. 004 * 005 * Project and contact information: http://www.cascading.org/ 006 * 007 * This file is part of the Cascading project. 008 * 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 */ 021 022package cascading.operation; 023 024import cascading.tuple.TupleEntry; 025 026/** 027 * Interface GroupAssertionCall provides access to the current {@link GroupAssertion} invocation arguments. 028 * <p> 029 * This interface is generic, allowing the user to set a custom 'context' object when {@link GroupAssertion#start(cascading.flow.FlowProcess, GroupAssertionCall)} 030 * is called. The {@link OperationCall#setContext(Object)} and {@link OperationCall#getContext()} methods are 031 * inherited from {@link OperationCall}. 032 * 033 * @see GroupAssertion 034 * @see OperationCall 035 */ 036public interface GroupAssertionCall<C> extends OperationCall<C> 037 { 038 /** 039 * Returns the current grouping {@link TupleEntry}. 040 * 041 * @return TupleEntry 042 */ 043 TupleEntry getGroup(); 044 045 /** 046 * Returns {@link TupleEntry} of argument values. 047 * <p> 048 * Note that the returned TupleEntry should not be cached (stored in a Collection), nor should the underlying Tuple 049 * instance. Where possible Cascading will re-use both TupleEntry and Tuple instances. 050 * <p> 051 * To get a safe copy that can be cached, use {@link TupleEntry#getTupleCopy()}. 052 * 053 * @return TupleEntry 054 */ 055 TupleEntry getArguments(); 056 }