Package org.apache.storm.topology

## Interface IComponent

- All Superinterfaces:
    `Serializable`
  All Known Subinterfaces:
    `IBasicBolt`, `IBatchBolt<T>`, `IRichBolt`, `IRichSpout`, `IRichStateSpout`, `IStatefulBolt<T>`, `IStatefulComponent<T>`, `IStatefulWindowedBolt<T>`, `ITridentBatchBolt`, `IWindowedBolt`
  All Known Implementing Classes:
    `AbstractHdfsBolt`, `AbstractJdbcBolt`, `AbstractRankerBolt`, `AbstractRedisBolt`, `AnchoredWordCount.RandomSentenceSpout`, `AnchoredWordCount.SplitSentence`, `AnchoredWordCount.WordCount`, `AvroGenericRecordBolt`, `BaseBasicBolt`, `BaseBatchBolt`, `BaseComponent`, `BaseRichBolt`, `BaseRichSpout`, `BaseStatefulBolt`, `BaseStatefulBoltExecutor`, `BaseStatefulWindowedBolt`, `BaseTickTupleAwareRichBolt`, `BaseWindowedBolt`, `BasicBoltExecutor`, `BasicDRPCTopology.ExclaimBolt`, `BatchBoltExecutor`, `BlobStoreAPIWordCountTopology.FilterWords`, `BlobStoreAPIWordCountTopology.RandomSentenceSpout`, `BlobStoreAPIWordCountTopology.SplitSentence`, `BoltTracker`, `BucketTestHiveTopology.UserDataSpout`, `CheckpointSpout`, `CheckpointTupleForwarder`, `ClojureBolt`, `ClojureSpout`, `ConstSpout`, `CoordinatedBolt`, `CountBolt`, `DevNullBolt`, `DRPCSpout`, `ExclamationTopology.ExclamationBolt`, `ExclamationTopology.ExclamationBolt`, `ExclamationTopology.FixedOrderWordSpout`, `FastWordCountTopology.FastRandomSentenceSpout`, `FastWordCountTopology.SplitSentence`, `FastWordCountTopology.WordCount`, `FeederSpout`, `FileReadSpout`, `FixedTupleSpout`, `FluxShellBolt`, `FluxShellSpout`, `GenericBolt`, `HdfsBolt`, `HdfsFileTopology.MyBolt`, `HdfsFileTopology.SentenceSpout`, `HdfsSpout`, `HdfsSpoutTopology.ConstBolt`, `HiveBolt`, `HiveTopology.UserDataSpout`, `HiveTopologyPartitioned.UserDataSpout`, `IdBolt`, `IdentityBolt`, `IdentityBolt`, `IncrementingSpout`, `InOrderDeliveryTest.Check`, `InOrderDeliveryTest.InOrderSpout`, `IntermediateRankingsBolt`, `JdbcInsertBolt`, `JdbcLookupBolt`, `JmsBolt`, `JmsSpout`, `JoinBolt`, `JoinResult`, `KafkaBolt`, `KafkaSpout`, `KafkaSpoutTestBolt`, `KeyedFairBolt`, `LambdaBiConsumerBolt`, `LambdaConsumerBolt`, `LambdaSpout`, `LoadBolt`, `LoadSpout`, `LogInfoBolt`, `LookupWordCount.PrintWordTotalCountBolt`, `ManualDRPC.ExclamationBolt`, `MasterBatchCoordinator`, `MultipleLoggerTopology.ExclamationLoggingBolt`, `MultiThreadWordCountTopology.MultiThreadedSplitSentence`, `PersistentWindowedBoltExecutor`, `PrepareBatchBolt`, `PrepareRequest`, `PrinterBolt`, `PythonShellMetricsBolt`, `PythonShellMetricsSpout`, `RandomIntegerSpout`, `RandomSentenceSpout`, `RandomSentenceSpout.TimeStamped`, `ReachTopology.CountAggregator`, `ReachTopology.GetFollowers`, `ReachTopology.GetTweeters`, `ReachTopology.PartialUniquer`, `RedisFilterBolt`, `RedisLookupBolt`, `RedisStoreBolt`, `ResourceAwareExampleTopology.ExclamationBolt`, `ReturnResults`, `RichShellBolt`, `RichShellSpout`, `RichSpoutBatchTriggerer`, `RollingCountAggBolt`, `RollingCountBolt`, `SequenceFileBolt`, `SequenceFileTopology.MyBolt`, `SequenceFileTopology.SentenceSpout`, `SingleJoinBolt`, `SlidingWindowSumBolt`, `SocketBolt`, `SocketSpout`, `SplitSentenceBolt`, `SpoutTracker`, `StatefulBoltExecutor`, `StatefulTopology.PrinterBolt`, `StatefulWindowedBoltExecutor`, `StatefulWordCounter`, `StringGenSpout`, `SubtopologyBolt`, `TestAggregatesCounter`, `TestConfBolt`, `TestEventLogSpout`, `TestEventOrderCheckBolt`, `TestGlobalCount`, `TestPlannerBolt`, `TestPlannerSpout`, `TestPrintBolt`, `TestWindowBolt`, `TestWordBytesCounter`, `TestWordCounter`, `TestWordSpout`, `ThroughputVsLatency.FastRandomSentenceSpout`, `ThroughputVsLatency.SplitSentence`, `ThroughputVsLatency.WordCount`, `TimeDataIncrementingSpout`, `TimeDataVerificationBolt`, `TotalRankingsBolt`, `TridentBoltExecutor`, `TridentSpoutCoordinator`, `TridentSpoutExecutor`, `TupleCaptureBolt`, `UserSpout`, `VerificationBolt`, `WhitelistWordCount.PrintWordTotalCountBolt`, `WindowedBoltExecutor`, `WordCountBolt`, `WordCounter`, `WordCounter`, `WordCountTopology.SplitSentence`, `WordCountTopologyNode.RandomSentence`, `WordCountTopologyNode.SplitSentence`, `WordCountTopologyNode.WordCount`, `WordGenSpout`, `WordSpout`

      public interface IComponent
      extends Serializable

  Common methods for all possible components in a topology. This interface is used when defining topologies using the Java API.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `declareOutputFields​(OutputFieldsDeclarer declarer)` | Declare the output schema for all the streams of this topology.
    `Map<String,​Object>` | `getComponentConfiguration()` | Declare configuration specific to this component.

- - ### Method Detail

    - #### declareOutputFields

          void declareOutputFields​(OutputFieldsDeclarer declarer)

      Declare the output schema for all the streams of this topology.
      Parameters:
        `declarer` - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream

    - #### getComponentConfiguration

          Map<String,​Object> getComponentConfiguration()

      Declare configuration specific to this component. Only a subset of the "topology.*" configs can be overridden. The component configuration can be further overridden when constructing the topology using `TopologyBuilder`