package org.apache.samoa.tasks; /* * #%L * SAMOA * %% * Copyright (C) 2014 - 2015 Apache Software Foundation * %% * 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. * #L% */ import org.apache.samoa.topology.ComponentFactory; import org.apache.samoa.topology.Topology; /** * Task interface, the mother of all SAMOA tasks! */ public interface Task { /** * Initialize this SAMOA task, i.e. create and connect ProcessingItems and Streams and initialize the topology */ public void init(); /** * Return the final topology object to be executed in the cluster * * @return topology object to be submitted to be executed in the cluster */ public Topology getTopology(); // /** // * Return the entrance processor to start SAMOA topology // * The logic to start the topology should be implemented here // * @return entrance processor to start the topology // */ // public TopologyStarter getTopologyStarter(); /** * Sets the factory. TODO: propose to hide factory from task, i.e. Task will only see TopologyBuilder, and factory * creation will be handled by TopologyBuilder * * @param factory * the new factory */ public void setFactory(ComponentFactory factory); }