public final class GenericSystemDescriptor extends SystemDescriptor<GenericSystemDescriptor> implements SimpleInputDescriptorProvider, OutputDescriptorProvider
GenericSystemDescriptor can be used for specifying Samza and system-specific properties of an
 input/output system. It can also be used for obtaining GenericInputDescriptors and
 GenericOutputDescriptors, which can be used for specifying any Samza and system-specific properties
 of input/output streams.
 
 If the system provides its own system and stream descriptor implementations, use them instead.
 Otherwise, use this GenericSystemDescriptor to specify Samza-specific properties of the system,
 and SystemDescriptor.withSystemConfigs(java.util.Map<java.lang.String, java.lang.String>) to specify additional system specific properties.
 
System properties provided in configuration override corresponding properties specified using a descriptor.
| Constructor and Description | 
|---|
| GenericSystemDescriptor(java.lang.String systemName,
                       java.lang.String factoryClassName)Constructs a  GenericSystemDescriptorinstance with no system level serde. | 
| Modifier and Type | Method and Description | 
|---|---|
| <StreamMessageType> | getInputDescriptor(java.lang.String streamId,
                  Serde<StreamMessageType> serde)Gets an  InputDescriptorfor an input stream on this system. | 
| <StreamMessageType> | getOutputDescriptor(java.lang.String streamId,
                   Serde<StreamMessageType> serde)Gets an  OutputDescriptorrepresenting an output stream on this system that uses the provided
 stream specific serde instead of the default system serde. | 
getExpander, getSystemName, getTransformer, toConfig, withDefaultStreamConfigs, withDefaultStreamOffsetDefault, withSystemConfigspublic GenericSystemDescriptor(java.lang.String systemName,
                               java.lang.String factoryClassName)
GenericSystemDescriptor instance with no system level serde.
 Serdes must be provided explicitly at stream level when getting input or output descriptors.systemName - name of this systemfactoryClassName - name of the SystemFactory class for this systempublic <StreamMessageType> GenericInputDescriptor<StreamMessageType> getInputDescriptor(java.lang.String streamId, Serde<StreamMessageType> serde)
SimpleInputDescriptorProviderInputDescriptor for an input stream on this system. The stream has the provided
 stream level serde.
 The type of messages in the stream is the type of the provided stream level serde.
getInputDescriptor in interface SimpleInputDescriptorProviderStreamMessageType - type of messages in this streamstreamId - id of the input streamserde - stream level serde for the input streamInputDescriptor for the input streampublic <StreamMessageType> GenericOutputDescriptor<StreamMessageType> getOutputDescriptor(java.lang.String streamId, Serde<StreamMessageType> serde)
OutputDescriptorProviderOutputDescriptor representing an output stream on this system that uses the provided
 stream specific serde instead of the default system serde.
 
 An OutputStream<KV<K, V>>, obtained using a descriptor with a KVSerde<K, V>, can send messages
 of type KV<K, V>. An OutputStream<M> with any other Serde<M> can send messages of
 type M without a key.
 
 A KVSerde<NoOpSerde, NoOpSerde> or NoOpSerde may be used if the SystemProducer
 serializes the outgoing messages itself, and no prior serialization is required from the framework.
getOutputDescriptor in interface OutputDescriptorProviderStreamMessageType - type of messages in the output streamstreamId - id of the output streamserde - serde for this output stream that overrides the default system serde, if any.OutputDescriptor for the output stream