All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.github.evenjn.yarn.TupleRingPurl Maven / Gradle / Ivy

The newest version!
/**
 *
 * Copyright 2017 Marco Trevisan
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package org.github.evenjn.yarn;

import org.github.evenjn.lang.Rook;
import org.github.evenjn.yarn.Tuple;

/**
 * 

TupleRingPurl

* *

* A {@code TupleRingPurl} is a {@link org.github.evenjn.yarn.YarnRingPurl * YarnRingPurl} that provides access to output objects via * {@link org.github.evenjn.yarn.Tuple Tuple} containers. *

* *

* This interface is part of package {@link org.github.evenjn.yarn Yarn}. *

* * @param * The type of input objects. * @param * The type of output objects. * @since 1.0 */ public interface TupleRingPurl extends YarnRingPurl> { /** *

* {@code next} returns a {@link org.github.evenjn.yarn.Tuple Tuple} with none of, * some of, or all the output objects associated to the sequence of elements * received in input so far (including the argument {@code input}), while * transferring the responsiblity of closing any associated resources to the * argument {@link org.github.evenjn.lang.Rook Rook}. *

* * @param rook * A {@link org.github.evenjn.lang.Rook Rook}. * @param input * An input object. * @return A {@link org.github.evenjn.yarn.Tuple Tuple} of output objects. * @throws IllegalStateException * when {@link #end(Rook)} has already been invoked. * @since 1.0 */ @Override Tuple next( Rook rook, I input ); /** *

* {@code end} returns a {@link org.github.evenjn.yarn.Tuple Tuple} with none of, * some of, or all the output objects associated to the sequence of elements * received in input so far, while transferring the responsiblity of closing * any associated resources to the argument {@link org.github.evenjn.lang.Rook * Rook}. *

* * @param rook * A {@link org.github.evenjn.lang.Rook Rook}. * @return A {@link org.github.evenjn.yarn.Tuple Tuple} of output objects. * @throws IllegalStateException * when {@link #end(Rook)} has already been invoked. * @since 1.0 */ @Override Tuple end( Rook rook ); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy