Class PipelineOptionsFactory
PipelineOptions
or any derived interface that is composable to any other
derived interface of PipelineOptions
via the PipelineOptions.as(java.lang.Class<T>)
method. Being
able to compose one derived interface of PipelineOptions
to another has the following
restrictions:
- Any property with the same name must have the same return type for all derived interfaces
of
PipelineOptions
. - Every bean property of any interface derived from
PipelineOptions
must have a getter and setter method. - Every method must conform to being a getter or setter for a JavaBean.
- The derived interface of
PipelineOptions
must be composable with every interface registered with this factory.
See the JavaBeans specification for more details as to what constitutes a property.
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends PipelineOptions>
TCreates and returns an object that implements<T>
.static PipelineOptions
create()
Creates and returns an object that implementsPipelineOptions
.static List
<org.apache.beam.model.jobmanagement.v1.JobApi.PipelineOptionDescriptor> describe
(Set<Class<? extends PipelineOptions>> ifaces) Outputs the set of options available to be set for the passed inPipelineOptions
interfaces.Sets the command line arguments to parse when constructing thePipelineOptions
.static Set
<Class<? extends PipelineOptions>> static void
printHelp
(PrintStream out) Outputs the set of registered options with the PipelineOptionsFactory with a description for each one if available to the output stream.static void
printHelp
(PrintStream out, Class<? extends PipelineOptions> iface) Outputs the set of options available to be set for the passed inPipelineOptions
interface.static void
register
(Class<? extends PipelineOptions> iface) This registers the interface with this factory.static void
Resets the set of interfaces registered with this factory to the default state.After creation we will validate that<T>
conforms to all the validation criteria.
-
Constructor Details
-
PipelineOptionsFactory
public PipelineOptionsFactory()
-
-
Method Details
-
create
Creates and returns an object that implementsPipelineOptions
. This sets the"appName"
to the callingclasses simple name
.- Returns:
- An object that implements
PipelineOptions
.
-
as
Creates and returns an object that implements<T>
. This sets the"appName"
to the callingclasses simple name
.Note that
<T>
must be composable with every registered interface with this factory. SeePipelineOptionsFactory.Cache.validateWellFormed(Class, Set)
for more details.- Returns:
- An object that implements
<T>
.
-
fromArgs
Sets the command line arguments to parse when constructing thePipelineOptions
.Example GNU style command line arguments:
--project=MyProject (simple property, will set the "project" property to "MyProject") --readOnly=true (for boolean properties, will set the "readOnly" property to "true") --readOnly (shorthand for boolean properties, will set the "readOnly" property to "true") --x=1 --x=2 --x=3 (list style simple property, will set the "x" property to [1, 2, 3]) --x=1,2,3 (shorthand list style simple property, will set the "x" property to [1, 2, 3]) --complexObject='{"key1":"value1",...} (JSON format for all other complex types)
Simple properties are able to bound to
String
,Class
, enums and Java primitivesboolean
,byte
,short
,int
,long
,float
,double
and their primitive wrapper classes.Simple list style properties are able to be bound to
boolean[]
,char[]
,short[]
,int[]
,long[]
,float[]
,double[]
,Class[]
, enum arrays,String[]
, andList<String>
.JSON format is required for all other types.
By default, strict parsing is enabled and arguments must conform to be either
--booleanArgName
or--argName=argValue
. Strict parsing can be disabled withPipelineOptionsFactory.Builder.withoutStrictParsing()
. Empty or null arguments will be ignored whether or not strict parsing is enabled.Help information can be output to
System.out
by specifying--help
as an argument. After help is printed, the application will exit. Specifying only--help
will print out the list ofregistered options
by invokingprintHelp(PrintStream)
. Specifying--help=PipelineOptionsClassName
will print out detailed usage information about the specifically requested PipelineOptions by invokingprintHelp(PrintStream, Class)
. -
withValidation
After creation we will validate that<T>
conforms to all the validation criteria. SeePipelineOptionsValidator.validate(Class, PipelineOptions)
for more details about validation. -
register
This registers the interface with this factory. This interface must conform to the following restrictions:- Any property with the same name must have the same return type for all derived interfaces
of
PipelineOptions
. - Every bean property of any interface derived from
PipelineOptions
must have a getter and setter method. - Every method must conform to being a getter or setter for a JavaBean.
- The derived interface of
PipelineOptions
must be composable with every interface registered with this factory.
- Parameters:
iface
- The interface object to manually register.
- Any property with the same name must have the same return type for all derived interfaces
of
-
resetCache
public static void resetCache()Resets the set of interfaces registered with this factory to the default state.IMPORTANT: correct usage of this method requires appropriate synchronization beyond the scope of this method.
- See Also:
-
getRegisteredOptions
-
printHelp
Outputs the set of registered options with the PipelineOptionsFactory with a description for each one if available to the output stream. This output is pretty printed and meant to be human readable. This method will attempt to format its output to be compatible with a terminal window. -
printHelp
Outputs the set of options available to be set for the passed inPipelineOptions
interface. The output is in a human readable format. The format is:OptionGroup: ... option group description ... --option1=
This method will attempt to format its output to be compatible with a terminal window.<type>
or list of valid enum choices Default: value (if available, seeDefault
) ... option description ... (if available, seeDescription
) Required groups (if available, seeValidation.Required
) --option2=<type>
or list of valid enum choices Default: value (if available, seeDefault
) ... option description ... (if available, seeDescription
) Required groups (if available, seeValidation.Required
) -
describe
public static List<org.apache.beam.model.jobmanagement.v1.JobApi.PipelineOptionDescriptor> describe(Set<Class<? extends PipelineOptions>> ifaces) Outputs the set of options available to be set for the passed inPipelineOptions
interfaces. The output for consumption of the job service client.
-