/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * * 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.apache.streams.core; import java.io.Serializable; /** * Each step in a pipeline is a StreamsOperation. */ public interface StreamsOperation extends Serializable { /** * Each operation must publish an identifier. */ String getId(); /** * This method will be called after initialization/serialization. Initialize any non-serializable objects here. * @param configurationObject Any object to help intialize the operation. ie. Map, JobContext, Properties, etc. The type * will be based on where the operation is being run (ie. hadoop, storm, locally, etc.) */ void prepare(Object configurationObject); /** * No guarantee that this method will ever be called. But upon shutdown of the stream, an attempt to call this method * will be made. * Use this method to terminate connections, etc. */ void cleanUp(); }