| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| Class and Description |
|---|
| OpDef
Defines an operation.
|
| Class and Description |
|---|
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| Class and Description |
|---|
| OpDef
Defines an operation.
|
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| TensorProto
Protocol buffer representing a tensor.
|
| Class and Description |
|---|
| TensorProto
Protocol buffer representing a tensor.
|
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| Class and Description |
|---|
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| Class and Description |
|---|
| ConfigProto
Session configuration parameters.
|
| Class and Description |
|---|
| CallableOptions
Defines a subgraph in another `GraphDef` as a set of feed points and nodes
to be fetched or executed.
|
| CallableOptions.Builder
Defines a subgraph in another `GraphDef` as a set of feed points and nodes
to be fetched or executed.
|
| CallableOptionsOrBuilder |
| Code
The canonical error codes for TensorFlow APIs.
|
| ConfigProto
Session configuration parameters.
|
| ConfigProto.Builder
Session configuration parameters.
|
| ConfigProtoOrBuilder |
| CostGraphDef
Protobuf type
tensorflow.CostGraphDef |
| CostGraphDef.Builder
Protobuf type
tensorflow.CostGraphDef |
| CostGraphDefOrBuilder |
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| DebugOptions
EXPERIMENTAL.
|
| DebugOptions.Builder
EXPERIMENTAL.
|
| DebugOptionsOrBuilder |
| DeviceAttributes
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributes.Builder
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributesOrBuilder |
| DeviceLocality
Protobuf type
tensorflow.DeviceLocality |
| DeviceLocality.Builder
Protobuf type
tensorflow.DeviceLocality |
| DeviceLocalityOrBuilder |
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| GraphDef.Builder
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| GraphDefOrBuilder |
| GraphOptions
Protobuf type
tensorflow.GraphOptions |
| GraphOptions.Builder
Protobuf type
tensorflow.GraphOptions |
| GraphOptionsOrBuilder |
| NamedTensorProto
A pair of tensor name and tensor values.
|
| NamedTensorProto.Builder
A pair of tensor name and tensor values.
|
| NamedTensorProtoOrBuilder |
| RunMetadata
Metadata output (i.e., non-Tensor) for a single Run() call.
|
| RunMetadata.Builder
Metadata output (i.e., non-Tensor) for a single Run() call.
|
| RunMetadataOrBuilder |
| RunOptions
Options for a single Run() call.
|
| RunOptions.Builder
Options for a single Run() call.
|
| RunOptionsOrBuilder |
| StepStats
Protobuf type
tensorflow.StepStats |
| StepStats.Builder
Protobuf type
tensorflow.StepStats |
| StepStatsOrBuilder |
| TensorProto
Protocol buffer representing a tensor.
|
| TensorProto.Builder
Protocol buffer representing a tensor.
|
| TensorProtoOrBuilder |
| TensorShapeProto
Dimensions of a tensor.
|
| TensorShapeProto.Builder
Dimensions of a tensor.
|
| TensorShapeProtoOrBuilder |
| Class and Description |
|---|
| AllocationDescription
Protobuf type
tensorflow.AllocationDescription |
| AllocationDescription.Builder
Protobuf type
tensorflow.AllocationDescription |
| AllocationDescriptionOrBuilder |
| AllocationRecord
An allocation/de-allocation operation performed by the allocator.
|
| AllocationRecord.Builder
An allocation/de-allocation operation performed by the allocator.
|
| AllocationRecordOrBuilder |
| AllocatorMemoryUsed
Protobuf type
tensorflow.AllocatorMemoryUsed |
| AllocatorMemoryUsed.Builder
Protobuf type
tensorflow.AllocatorMemoryUsed |
| AllocatorMemoryUsedOrBuilder |
| ApiDef
Used to specify and override the default API & behavior in the
generated code for client languages, from what you would get from
the OpDef alone.
|
| ApiDef.Arg
Protobuf type
tensorflow.ApiDef.Arg |
| ApiDef.Arg.Builder
Protobuf type
tensorflow.ApiDef.Arg |
| ApiDef.ArgOrBuilder |
| ApiDef.Attr
Description of the graph-construction-time configuration of this
Op.
|
| ApiDef.Attr.Builder
Description of the graph-construction-time configuration of this
Op.
|
| ApiDef.AttrOrBuilder |
| ApiDef.Builder
Used to specify and override the default API & behavior in the
generated code for client languages, from what you would get from
the OpDef alone.
|
| ApiDef.Endpoint
If you specify any endpoint, this will replace all of the
inherited endpoints.
|
| ApiDef.Endpoint.Builder
If you specify any endpoint, this will replace all of the
inherited endpoints.
|
| ApiDef.EndpointOrBuilder |
| ApiDef.Visibility
Protobuf enum
tensorflow.ApiDef.Visibility |
| ApiDefOrBuilder |
| ApiDefs
Protobuf type
tensorflow.ApiDefs |
| ApiDefs.Builder
Protobuf type
tensorflow.ApiDefs |
| ApiDefsOrBuilder |
| AssetFileDef
An asset file def for a single file or a set of sharded files with the same
name.
|
| AssetFileDef.Builder
An asset file def for a single file or a set of sharded files with the same
name.
|
| AssetFileDefOrBuilder |
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| AttrValue.Builder
Protocol buffer representing the value for an attr used to configure an Op.
|
| AttrValue.ListValue
LINT.IfChange
Protobuf type
tensorflow.AttrValue.ListValue |
| AttrValue.ListValue.Builder
LINT.IfChange
Protobuf type
tensorflow.AttrValue.ListValue |
| AttrValue.ListValueOrBuilder |
| AttrValue.ValueCase |
| AttrValueOrBuilder |
| AutoParallelOptions
Protobuf type
tensorflow.AutoParallelOptions |
| AutoParallelOptions.Builder
Protobuf type
tensorflow.AutoParallelOptions |
| AutoParallelOptionsOrBuilder |
| CallableOptions
Defines a subgraph in another `GraphDef` as a set of feed points and nodes
to be fetched or executed.
|
| CallableOptions.Builder
Defines a subgraph in another `GraphDef` as a set of feed points and nodes
to be fetched or executed.
|
| CallableOptionsOrBuilder |
| Code
The canonical error codes for TensorFlow APIs.
|
| CollectionDef
CollectionDef should cover most collections.
|
| CollectionDef.AnyList
AnyList is used for collecting Any protos.
|
| CollectionDef.AnyList.Builder
AnyList is used for collecting Any protos.
|
| CollectionDef.AnyListOrBuilder |
| CollectionDef.Builder
CollectionDef should cover most collections.
|
| CollectionDef.BytesList
BytesList is used for collecting strings and serialized protobufs.
|
| CollectionDef.BytesList.Builder
BytesList is used for collecting strings and serialized protobufs.
|
| CollectionDef.BytesListOrBuilder |
| CollectionDef.FloatList
FloatList is used for collecting float values.
|
| CollectionDef.FloatList.Builder
FloatList is used for collecting float values.
|
| CollectionDef.FloatListOrBuilder |
| CollectionDef.Int64List
Int64List is used for collecting int, int64 and long values.
|
| CollectionDef.Int64List.Builder
Int64List is used for collecting int, int64 and long values.
|
| CollectionDef.Int64ListOrBuilder |
| CollectionDef.KindCase |
| CollectionDef.NodeList
NodeList is used for collecting nodes in graph.
|
| CollectionDef.NodeList.Builder
NodeList is used for collecting nodes in graph.
|
| CollectionDef.NodeListOrBuilder |
| CollectionDefOrBuilder |
| CondContextDef
Protocol buffer representing a CondContext object.
|
| CondContextDef.Builder
Protocol buffer representing a CondContext object.
|
| CondContextDefOrBuilder |
| ConfigProto
Session configuration parameters.
|
| ConfigProto.Builder
Session configuration parameters.
|
| ConfigProto.Experimental
Everything inside Experimental is subject to change and is not subject
to API stability guarantees in
https://www.tensorflow.org/guide/version_compat.
|
| ConfigProto.Experimental.Builder
Everything inside Experimental is subject to change and is not subject
to API stability guarantees in
https://www.tensorflow.org/guide/version_compat.
|
| ConfigProto.ExperimentalOrBuilder |
| ConfigProtoOrBuilder |
| ControlFlowContextDef
Container for any kind of control flow context.
|
| ControlFlowContextDef.Builder
Container for any kind of control flow context.
|
| ControlFlowContextDef.CtxtCase |
| ControlFlowContextDefOrBuilder |
| CostGraphDef
Protobuf type
tensorflow.CostGraphDef |
| CostGraphDef.Builder
Protobuf type
tensorflow.CostGraphDef |
| CostGraphDef.Node
Protobuf type
tensorflow.CostGraphDef.Node |
| CostGraphDef.Node.Builder
Protobuf type
tensorflow.CostGraphDef.Node |
| CostGraphDef.Node.InputInfo
Inputs of this node.
|
| CostGraphDef.Node.InputInfo.Builder
Inputs of this node.
|
| CostGraphDef.Node.InputInfoOrBuilder |
| CostGraphDef.Node.OutputInfo
Outputs of this node.
|
| CostGraphDef.Node.OutputInfo.Builder
Outputs of this node.
|
| CostGraphDef.Node.OutputInfoOrBuilder |
| CostGraphDef.NodeOrBuilder |
| CostGraphDefOrBuilder |
| CriticalSectionDef
Protocol buffer representing a CriticalSection.
|
| CriticalSectionDef.Builder
Protocol buffer representing a CriticalSection.
|
| CriticalSectionDefOrBuilder |
| CriticalSectionExecutionDef
Protocol buffer representing a CriticalSection execution.
|
| CriticalSectionExecutionDef.Builder
Protocol buffer representing a CriticalSection execution.
|
| CriticalSectionExecutionDefOrBuilder |
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| DebuggedSourceFile
Protobuf type
tensorflow.DebuggedSourceFile |
| DebuggedSourceFile.Builder
Protobuf type
tensorflow.DebuggedSourceFile |
| DebuggedSourceFileOrBuilder |
| DebuggedSourceFiles
Protobuf type
tensorflow.DebuggedSourceFiles |
| DebuggedSourceFiles.Builder
Protobuf type
tensorflow.DebuggedSourceFiles |
| DebuggedSourceFilesOrBuilder |
| DebugOptions
EXPERIMENTAL.
|
| DebugOptions.Builder
EXPERIMENTAL.
|
| DebugOptionsOrBuilder |
| DebugTensorWatch
EXPERIMENTAL.
|
| DebugTensorWatch.Builder
EXPERIMENTAL.
|
| DebugTensorWatchOrBuilder |
| DeviceAttributes
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributes.Builder
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributesOrBuilder |
| DeviceLocality
Protobuf type
tensorflow.DeviceLocality |
| DeviceLocality.Builder
Protobuf type
tensorflow.DeviceLocality |
| DeviceLocalityOrBuilder |
| DeviceStepStats
Protobuf type
tensorflow.DeviceStepStats |
| DeviceStepStats.Builder
Protobuf type
tensorflow.DeviceStepStats |
| DeviceStepStatsOrBuilder |
| FunctionDef
A function can be instantiated when the runtime can bind every attr
with a value.
|
| FunctionDef.Builder
A function can be instantiated when the runtime can bind every attr
with a value.
|
| FunctionDefLibrary
A library is a set of named functions.
|
| FunctionDefLibrary.Builder
A library is a set of named functions.
|
| FunctionDefLibraryOrBuilder |
| FunctionDefOrBuilder |
| GPUOptions
Protobuf type
tensorflow.GPUOptions |
| GPUOptions.Builder
Protobuf type
tensorflow.GPUOptions |
| GPUOptions.Experimental
Protobuf type
tensorflow.GPUOptions.Experimental |
| GPUOptions.Experimental.Builder
Protobuf type
tensorflow.GPUOptions.Experimental |
| GPUOptions.Experimental.VirtualDevices
Configuration for breaking down a visible GPU into multiple "virtual"
devices.
|
| GPUOptions.Experimental.VirtualDevices.Builder
Configuration for breaking down a visible GPU into multiple "virtual"
devices.
|
| GPUOptions.Experimental.VirtualDevicesOrBuilder |
| GPUOptions.ExperimentalOrBuilder |
| GPUOptionsOrBuilder |
| GradientDef
GradientDef defines the gradient function of a function defined in
a function library.
|
| GradientDef.Builder
GradientDef defines the gradient function of a function defined in
a function library.
|
| GradientDefOrBuilder |
| GraphDef
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| GraphDef.Builder
Represents the graph of operations
Protobuf type
tensorflow.GraphDef |
| GraphDefOrBuilder |
| GraphOptions
Protobuf type
tensorflow.GraphOptions |
| GraphOptions.Builder
Protobuf type
tensorflow.GraphOptions |
| GraphOptionsOrBuilder |
| GraphTransferConstNodeInfo
Protobuf type
tensorflow.GraphTransferConstNodeInfo |
| GraphTransferConstNodeInfo.Builder
Protobuf type
tensorflow.GraphTransferConstNodeInfo |
| GraphTransferConstNodeInfoOrBuilder |
| GraphTransferGraphInputNodeInfo
Protobuf type
tensorflow.GraphTransferGraphInputNodeInfo |
| GraphTransferGraphInputNodeInfo.Builder
Protobuf type
tensorflow.GraphTransferGraphInputNodeInfo |
| GraphTransferGraphInputNodeInfoOrBuilder |
| GraphTransferGraphOutputNodeInfo
Protobuf type
tensorflow.GraphTransferGraphOutputNodeInfo |
| GraphTransferGraphOutputNodeInfo.Builder
Protobuf type
tensorflow.GraphTransferGraphOutputNodeInfo |
| GraphTransferGraphOutputNodeInfoOrBuilder |
| GraphTransferInfo
Protocol buffer representing a handle to a tensorflow resource.
|
| GraphTransferInfo.Builder
Protocol buffer representing a handle to a tensorflow resource.
|
| GraphTransferInfo.Destination
Protobuf enum
tensorflow.GraphTransferInfo.Destination |
| GraphTransferInfoOrBuilder |
| GraphTransferNodeInfo
Protobuf type
tensorflow.GraphTransferNodeInfo |
| GraphTransferNodeInfo.Builder
Protobuf type
tensorflow.GraphTransferNodeInfo |
| GraphTransferNodeInfoOrBuilder |
| GraphTransferNodeInput
Protobuf type
tensorflow.GraphTransferNodeInput |
| GraphTransferNodeInput.Builder
Protobuf type
tensorflow.GraphTransferNodeInput |
| GraphTransferNodeInputInfo
Protobuf type
tensorflow.GraphTransferNodeInputInfo |
| GraphTransferNodeInputInfo.Builder
Protobuf type
tensorflow.GraphTransferNodeInputInfo |
| GraphTransferNodeInputInfoOrBuilder |
| GraphTransferNodeInputOrBuilder |
| GraphTransferNodeOutputInfo
Protobuf type
tensorflow.GraphTransferNodeOutputInfo |
| GraphTransferNodeOutputInfo.Builder
Protobuf type
tensorflow.GraphTransferNodeOutputInfo |
| GraphTransferNodeOutputInfoOrBuilder |
| HistogramProto
Serialization format for histogram module in
core/lib/histogram/histogram.h
Protobuf type
tensorflow.HistogramProto |
| HistogramProto.Builder
Serialization format for histogram module in
core/lib/histogram/histogram.h
Protobuf type
tensorflow.HistogramProto |
| HistogramProtoOrBuilder |
| InterconnectLink
Protobuf type
tensorflow.InterconnectLink |
| InterconnectLink.Builder
Protobuf type
tensorflow.InterconnectLink |
| InterconnectLinkOrBuilder |
| KernelDef
Protobuf type
tensorflow.KernelDef |
| KernelDef.AttrConstraint
Protobuf type
tensorflow.KernelDef.AttrConstraint |
| KernelDef.AttrConstraint.Builder
Protobuf type
tensorflow.KernelDef.AttrConstraint |
| KernelDef.AttrConstraintOrBuilder |
| KernelDef.Builder
Protobuf type
tensorflow.KernelDef |
| KernelDefOrBuilder |
| LocalLinks
Protobuf type
tensorflow.LocalLinks |
| LocalLinks.Builder
Protobuf type
tensorflow.LocalLinks |
| LocalLinksOrBuilder |
| MemoryLogRawAllocation
Protobuf type
tensorflow.MemoryLogRawAllocation |
| MemoryLogRawAllocation.Builder
Protobuf type
tensorflow.MemoryLogRawAllocation |
| MemoryLogRawAllocationOrBuilder |
| MemoryLogRawDeallocation
Protobuf type
tensorflow.MemoryLogRawDeallocation |
| MemoryLogRawDeallocation.Builder
Protobuf type
tensorflow.MemoryLogRawDeallocation |
| MemoryLogRawDeallocationOrBuilder |
| MemoryLogStep
Protobuf type
tensorflow.MemoryLogStep |
| MemoryLogStep.Builder
Protobuf type
tensorflow.MemoryLogStep |
| MemoryLogStepOrBuilder |
| MemoryLogTensorAllocation
Protobuf type
tensorflow.MemoryLogTensorAllocation |
| MemoryLogTensorAllocation.Builder
Protobuf type
tensorflow.MemoryLogTensorAllocation |
| MemoryLogTensorAllocationOrBuilder |
| MemoryLogTensorDeallocation
Protobuf type
tensorflow.MemoryLogTensorDeallocation |
| MemoryLogTensorDeallocation.Builder
Protobuf type
tensorflow.MemoryLogTensorDeallocation |
| MemoryLogTensorDeallocationOrBuilder |
| MemoryLogTensorOutput
Protobuf type
tensorflow.MemoryLogTensorOutput |
| MemoryLogTensorOutput.Builder
Protobuf type
tensorflow.MemoryLogTensorOutput |
| MemoryLogTensorOutputOrBuilder |
| MemoryStats
For memory tracking.
|
| MemoryStats.Builder
For memory tracking.
|
| MemoryStatsOrBuilder |
| MetaGraphDef
NOTE: This protocol buffer is evolving, and will go through revisions in the
coming months.
|
| MetaGraphDef.Builder
NOTE: This protocol buffer is evolving, and will go through revisions in the
coming months.
|
| MetaGraphDef.MetaInfoDef
Meta information regarding the graph to be exported.
|
| MetaGraphDef.MetaInfoDef.Builder
Meta information regarding the graph to be exported.
|
| MetaGraphDef.MetaInfoDefOrBuilder |
| MetaGraphDefOrBuilder |
| NameAttrList
A list of attr names and their values.
|
| NameAttrList.Builder
A list of attr names and their values.
|
| NameAttrListOrBuilder |
| NamedTensorProto
A pair of tensor name and tensor values.
|
| NamedTensorProto.Builder
A pair of tensor name and tensor values.
|
| NamedTensorProtoOrBuilder |
| NodeDef
Protobuf type
tensorflow.NodeDef |
| NodeDef.Builder
Protobuf type
tensorflow.NodeDef |
| NodeDefOrBuilder |
| NodeExecStats
Time/size stats recorded for a single execution of a graph node.
|
| NodeExecStats.Builder
Time/size stats recorded for a single execution of a graph node.
|
| NodeExecStatsOrBuilder |
| NodeOutput
Output sizes recorded for a single execution of a graph node.
|
| NodeOutput.Builder
Output sizes recorded for a single execution of a graph node.
|
| NodeOutputOrBuilder |
| OpDef
Defines an operation.
|
| OpDef.ArgDef
For describing inputs and outputs.
|
| OpDef.ArgDef.Builder
For describing inputs and outputs.
|
| OpDef.ArgDefOrBuilder |
| OpDef.AttrDef
Description of the graph-construction-time configuration of this
Op.
|
| OpDef.AttrDef.Builder
Description of the graph-construction-time configuration of this
Op.
|
| OpDef.AttrDefOrBuilder |
| OpDef.Builder
Defines an operation.
|
| OpDefOrBuilder |
| OpDeprecation
Information about version-dependent deprecation of an op
Protobuf type
tensorflow.OpDeprecation |
| OpDeprecation.Builder
Information about version-dependent deprecation of an op
Protobuf type
tensorflow.OpDeprecation |
| OpDeprecationOrBuilder |
| OpList
A collection of OpDefs
Protobuf type
tensorflow.OpList |
| OpList.Builder
A collection of OpDefs
Protobuf type
tensorflow.OpList |
| OpListOrBuilder |
| OptimizerOptions
Options passed to the graph optimizer
Protobuf type
tensorflow.OptimizerOptions |
| OptimizerOptions.Builder
Options passed to the graph optimizer
Protobuf type
tensorflow.OptimizerOptions |
| OptimizerOptions.GlobalJitLevel
Control the use of the compiler/jit.
|
| OptimizerOptions.Level
Optimization level
Protobuf enum
tensorflow.OptimizerOptions.Level |
| OptimizerOptionsOrBuilder |
| QueueRunnerDef
Protocol buffer representing a QueueRunner.
|
| QueueRunnerDef.Builder
Protocol buffer representing a QueueRunner.
|
| QueueRunnerDefOrBuilder |
| ReaderBaseState
For serializing and restoring the state of ReaderBase, see
reader_base.h for details.
|
| ReaderBaseState.Builder
For serializing and restoring the state of ReaderBase, see
reader_base.h for details.
|
| ReaderBaseStateOrBuilder |
| RemoteFusedGraphExecuteInfo
Protocol buffer representing a handle to a tensorflow resource.
|
| RemoteFusedGraphExecuteInfo.Builder
Protocol buffer representing a handle to a tensorflow resource.
|
| RemoteFusedGraphExecuteInfo.TensorShapeTypeProto
Protobuf type
tensorflow.RemoteFusedGraphExecuteInfo.TensorShapeTypeProto |
| RemoteFusedGraphExecuteInfo.TensorShapeTypeProto.Builder
Protobuf type
tensorflow.RemoteFusedGraphExecuteInfo.TensorShapeTypeProto |
| RemoteFusedGraphExecuteInfo.TensorShapeTypeProtoOrBuilder |
| RemoteFusedGraphExecuteInfoOrBuilder |
| ResourceHandleProto
Protocol buffer representing a handle to a tensorflow resource.
|
| ResourceHandleProto.Builder
Protocol buffer representing a handle to a tensorflow resource.
|
| ResourceHandleProtoOrBuilder |
| RewriterConfig
Graph rewriting is experimental and subject to change, not covered by any
API stability guarantees.
|
| RewriterConfig.Builder
Graph rewriting is experimental and subject to change, not covered by any
API stability guarantees.
|
| RewriterConfig.CustomGraphOptimizer
Message to describe custom graph optimizer and its parameters
Protobuf type
tensorflow.RewriterConfig.CustomGraphOptimizer |
| RewriterConfig.CustomGraphOptimizer.Builder
Message to describe custom graph optimizer and its parameters
Protobuf type
tensorflow.RewriterConfig.CustomGraphOptimizer |
| RewriterConfig.CustomGraphOptimizerOrBuilder |
| RewriterConfig.MemOptType
Protobuf enum
tensorflow.RewriterConfig.MemOptType |
| RewriterConfig.NumIterationsType
Enum controlling the number of times to run optimizers.
|
| RewriterConfig.Toggle
Protobuf enum
tensorflow.RewriterConfig.Toggle |
| RewriterConfigOrBuilder |
| RPCOptions
Protobuf type
tensorflow.RPCOptions |
| RPCOptions.Builder
Protobuf type
tensorflow.RPCOptions |
| RPCOptionsOrBuilder |
| RunMetadata
Metadata output (i.e., non-Tensor) for a single Run() call.
|
| RunMetadata.Builder
Metadata output (i.e., non-Tensor) for a single Run() call.
|
| RunMetadataOrBuilder |
| RunOptions
Options for a single Run() call.
|
| RunOptions.Builder
Options for a single Run() call.
|
| RunOptions.Experimental
Everything inside Experimental is subject to change and is not subject
to API stability guarantees in
https://www.tensorflow.org/guide/version_compat.
|
| RunOptions.Experimental.Builder
Everything inside Experimental is subject to change and is not subject
to API stability guarantees in
https://www.tensorflow.org/guide/version_compat.
|
| RunOptions.ExperimentalOrBuilder |
| RunOptions.TraceLevel
TODO(pbar) Turn this into a TraceOptions proto which allows
tracing to be controlled in a more orthogonal manner?
|
| RunOptionsOrBuilder |
| SavedModel
SavedModel is the high level serialization format for TensorFlow Models.
|
| SavedModel.Builder
SavedModel is the high level serialization format for TensorFlow Models.
|
| SavedModelOrBuilder |
| SaveSliceInfoDef
Protobuf type
tensorflow.SaveSliceInfoDef |
| SaveSliceInfoDef.Builder
Protobuf type
tensorflow.SaveSliceInfoDef |
| SaveSliceInfoDefOrBuilder |
| ScopedAllocatorOptions
Protobuf type
tensorflow.ScopedAllocatorOptions |
| ScopedAllocatorOptions.Builder
Protobuf type
tensorflow.ScopedAllocatorOptions |
| ScopedAllocatorOptionsOrBuilder |
| SignatureDef
SignatureDef defines the signature of a computation supported by a TensorFlow
graph.
|
| SignatureDef.Builder
SignatureDef defines the signature of a computation supported by a TensorFlow
graph.
|
| SignatureDefOrBuilder |
| StepStats
Protobuf type
tensorflow.StepStats |
| StepStats.Builder
Protobuf type
tensorflow.StepStats |
| StepStatsOrBuilder |
| Summary
A Summary is a set of named values to be displayed by the
visualizer.
|
| Summary.Audio
Protobuf type
tensorflow.Summary.Audio |
| Summary.Audio.Builder
Protobuf type
tensorflow.Summary.Audio |
| Summary.AudioOrBuilder |
| Summary.Builder
A Summary is a set of named values to be displayed by the
visualizer.
|
| Summary.Image
Protobuf type
tensorflow.Summary.Image |
| Summary.Image.Builder
Protobuf type
tensorflow.Summary.Image |
| Summary.ImageOrBuilder |
| Summary.Value
Protobuf type
tensorflow.Summary.Value |
| Summary.Value.Builder
Protobuf type
tensorflow.Summary.Value |
| Summary.Value.ValueCase |
| Summary.ValueOrBuilder |
| SummaryDescription
Metadata associated with a series of Summary data
Protobuf type
tensorflow.SummaryDescription |
| SummaryDescription.Builder
Metadata associated with a series of Summary data
Protobuf type
tensorflow.SummaryDescription |
| SummaryDescriptionOrBuilder |
| SummaryMetadata
A SummaryMetadata encapsulates information on which plugins are able to make
use of a certain summary value.
|
| SummaryMetadata.Builder
A SummaryMetadata encapsulates information on which plugins are able to make
use of a certain summary value.
|
| SummaryMetadata.PluginData
Protobuf type
tensorflow.SummaryMetadata.PluginData |
| SummaryMetadata.PluginData.Builder
Protobuf type
tensorflow.SummaryMetadata.PluginData |
| SummaryMetadata.PluginDataOrBuilder |
| SummaryMetadataOrBuilder |
| SummaryOrBuilder |
| TensorConnection
Defines a connection between two tensors in a `GraphDef`.
|
| TensorConnection.Builder
Defines a connection between two tensors in a `GraphDef`.
|
| TensorConnectionOrBuilder |
| TensorDescription
Protobuf type
tensorflow.TensorDescription |
| TensorDescription.Builder
Protobuf type
tensorflow.TensorDescription |
| TensorDescriptionOrBuilder |
| TensorInfo
Information about a Tensor necessary for feeding or retrieval.
|
| TensorInfo.Builder
Information about a Tensor necessary for feeding or retrieval.
|
| TensorInfo.CooSparse
For sparse tensors, The COO encoding stores a triple of values, indices,
and shape.
|
| TensorInfo.CooSparse.Builder
For sparse tensors, The COO encoding stores a triple of values, indices,
and shape.
|
| TensorInfo.CooSparseOrBuilder |
| TensorInfo.EncodingCase |
| TensorInfoOrBuilder |
| TensorProto
Protocol buffer representing a tensor.
|
| TensorProto.Builder
Protocol buffer representing a tensor.
|
| TensorProtoOrBuilder |
| TensorShapeProto
Dimensions of a tensor.
|
| TensorShapeProto.Builder
Dimensions of a tensor.
|
| TensorShapeProto.Dim
One dimension of the tensor.
|
| TensorShapeProto.Dim.Builder
One dimension of the tensor.
|
| TensorShapeProto.DimOrBuilder |
| TensorShapeProtoOrBuilder |
| TensorSliceProto
Can only be interpreted if you know the corresponding TensorShape.
|
| TensorSliceProto.Builder
Can only be interpreted if you know the corresponding TensorShape.
|
| TensorSliceProto.Extent
Extent of the slice in one dimension.
|
| TensorSliceProto.Extent.Builder
Extent of the slice in one dimension.
|
| TensorSliceProto.Extent.HasLengthCase |
| TensorSliceProto.ExtentOrBuilder |
| TensorSliceProtoOrBuilder |
| ThreadPoolOptionProto
Protobuf type
tensorflow.ThreadPoolOptionProto |
| ThreadPoolOptionProto.Builder
Protobuf type
tensorflow.ThreadPoolOptionProto |
| ThreadPoolOptionProtoOrBuilder |
| ValuesDef
Protocol buffer representing the values in ControlFlowContext.
|
| ValuesDef.Builder
Protocol buffer representing the values in ControlFlowContext.
|
| ValuesDefOrBuilder |
| VariableDef
Protocol buffer representing a Variable.
|
| VariableDef.Builder
Protocol buffer representing a Variable.
|
| VariableDefOrBuilder |
| VariantTensorDataProto
Protocol buffer representing the serialization format of DT_VARIANT tensors.
|
| VariantTensorDataProto.Builder
Protocol buffer representing the serialization format of DT_VARIANT tensors.
|
| VariantTensorDataProtoOrBuilder |
| VersionDef
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDef.Builder
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDefOrBuilder |
| WhileContextDef
Protocol buffer representing a WhileContext object.
|
| WhileContextDef.Builder
Protocol buffer representing a WhileContext object.
|
| WhileContextDefOrBuilder |
| Class and Description |
|---|
| DataType
LINT.IfChange
Protobuf enum
tensorflow.DataType |
| TensorShapeProto
Dimensions of a tensor.
|
| TensorShapeProto.Builder
Dimensions of a tensor.
|
| TensorShapeProtoOrBuilder |
| TensorSliceProto
Can only be interpreted if you know the corresponding TensorShape.
|
| TensorSliceProto.Builder
Can only be interpreted if you know the corresponding TensorShape.
|
| TensorSliceProtoOrBuilder |
| VersionDef
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDef.Builder
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDefOrBuilder |
| Class and Description |
|---|
| AttrValue
Protocol buffer representing the value for an attr used to configure an Op.
|
| DeviceAttributes
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributes.Builder
Protobuf type
tensorflow.DeviceAttributes |
| DeviceAttributesOrBuilder |
| FunctionDef
A function can be instantiated when the runtime can bind every attr
with a value.
|
| FunctionDef.Builder
A function can be instantiated when the runtime can bind every attr
with a value.
|
| FunctionDefOrBuilder |
| VersionDef
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDef.Builder
Version information for a piece of serialized data
There are different types of versions for each type of data
(GraphDef, etc.), but they all have the same common shape
described here.
|
| VersionDefOrBuilder |
Copyright © 2020. All rights reserved.


In Botswana's Chobe National Park, an elephant with an especially large trunk is minding its own business when a plesiosaur with five heads, two tails, and the legs of a lion falls out of the sky and lands on the elephant's back.
"Hah hah! That's hilarious!", says the plesiosaur, "Your trunk is huge!"
A stunned tourist in a nearby Jeep drops his camera, stares in amazement, and excitedly taps his wife on the shoulder.
"Look, honey! That's amazing! The talking prehistoric marine reptile with five heads, two tails, and the legs of a lion that fell out of the sky is right! That elephant's trunk is ginormous!"


Your Privacy
Screwfix Direct Limited is a company registered in England under company number 03006378. Our registered office is Trade House Mead Avenue Houndstone Business Park Yeovil BA22 8RT. We are committed to ensuring that your privacy is protected. This policy, together with our Terms and Condition sets out the basis on which any personal data we collect from you, or that you provide to us will be processed by us. We strictly adhere to the Data Protection Act 1998 and the Privacy and Electronic Communications (EC Directive) Regulations 2003. We shall be the data controller for your personal data, and we are registered on the public register of data controllers which is looked after by the Information Commissioner (our registration number is Z6167477).
We explain below:
Protecting Your Security
Information We Collect & How We Use It
Our Use of Cookies, Internet Protocol (IP) addresses and Other Information Gathering Technologies
How We Protect Your Information
Sale of Business
Links from this Site to Other Sites
Updating Your Details
Changes
How to Contact Screwfix Direct Ltd
Making a Complaint to the ICO
Protecting Your Security
To ensure that your credit, debit or charge card is not being used without your consent, we will validate name, address and other personal information supplied by you during the order process against appropriate third party databases. By continuing to use the website you accept these terms and conditions and accordingly consent to such checks being made. In performing these checks personal information provided by you may be disclosed to a registered Credit Reference Agency which may keep a record of that information for payment clearance, credit reference, order fulfilment, delivery, data analysis or customer support. You can rest assured that this is done only to confirm your identity, that a credit check is not performed and that your credit rating will be unaffected.
We may need to disclose your personal data where we are under a legal duty to comply with any legal obligation or in order to enforce or apply our Terms and Conditions and other agreements. We may also need to disclose it to protect our rights, property or safety of our customers or others which includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction.
Information We Collect & How We Use It
When you place an order whether in store, online or through our contact centre, register on our website, register on our Screwfix Community Forum, ask a question or provide an answer to a question on a product, provide a review of a product, use any online form on our website, respond to a survey, or enter a competition or promotion, we need to know your name and other information such as your postal address, email address,telephone number and (if placing an order)your credit card number and expiry date or other details etc (which are your personal data). By submitting this information you consent to our use of the information in accordance with this Privacy Policy as amended from time to time. We gather this information to allow us to process your request. The relevant information is then used by us, our agents,sub-contractors and members of the Kingfisher PLC group of companies (which includes B&Q and Kingfisher Future Homes Limited) to provide you with the service you have requested and to communicate with you on any matter relating to the provision of the service in general.
We may also use aggregate information and statistics for the purposes of monitoring website usage in order to help us develop the website and our service and may provide such aggregate information to third parties. These statistics will not include information that can be used to identify any individual.
We and our group companies may also wish to provide you with information about special features of our website or any special service or products which we think may be of interest to you. If you would rather not receive this information, please send an email with "NO MAIL" in the heading to<EMAIL_ADDRESS>We may also want to provide you with related information from third parties, which we think may be of interest to you. If you would rather not receive this information, please send an email with "NO RELATED INFORMATION" in the heading to<EMAIL_ADDRESS>We may also provide your information to carefully selected third parties whose products or services we believe may be of interest to you. If you do not wish us to disclose your information in this way, please send an email with "NO INFORMATION DISCLOSURE" in the heading to<EMAIL_ADDRESS>If, at any time, you wish to have your information removed from our active databases, please send an email entitled "REMOVE FROM DATABASE" to<EMAIL_ADDRESS>you do any of these actions, we will take steps to ensure that your preferences are updated or the information is deleted as soon as reasonably practicable. There may be a small delay in updating our database and so you may still receive communications which we have already processed in our system before you updated your preferences.Screwfix may also send you text alerts. You can opt out of receiving those text alerts at any time by texting STOP to 60505. Data may be supplied to third party data processors to enable this service to be provided. Your standard network charges will apply.
Our Use of Cookies, Internet Protocol (IP) addresses and Other Information Gathering Technologies
View our full Cookies policy.
Please note that the information we gather from the following technologies does not specify any specific individual and is used by us as statistical data only about our users browsing actions and patterns.
We may collect information about your general internet usage by using a cookie file. This is a small text file implanted by our site on your hard disk or device when you visit our site which collects personal data about you. The cookie is then retrieved each time you visit our site, making it unnecessary to re-enter the registration details on each visit and enabling you to benefit from certain features. For example, a more personalised service, improvements to our site and the ability to store the contents of an electronic shopping basket between visits. Please note, our advertisers may also use cookies over which we have no control.
We may also collect information about your computer, including your domain name, IP address, operating system, browser version, how long you stay on a page, the route you took to navigate through the pages and the website you visited prior to accessing our site.
#You can choose to refuse to accept our and or third party cookies by activating the setting on your browser which allows you to refuse the setting of cookies. However, if you select this setting you will be unable to access certain parts of our site or place an order with us. Unless you have adjusted your browser setting so that it will refuse cookies, our system will issue cookies when you log on to our site. Modern browsers provide the ability to navigate the web privately by using "private browsing mode" or you can use a proxy server, which allows web users to see pages via a third party web server. More information can be found in our Cookies policy.
Texts Relating to Delivery
If you provide us with your mobile number, we may text you to advise you that your item is ready for collection in store, or to update you on the progress of your delivery.
This service is provided through our carrier Parcelforce. You therefore agree, when providing your mobile number, that we can provide Parcelforce with your number solely for the purpose of these updates. We will not charge you for these texts, although your network may charge you to recieve these texts. You can opt out of these texts at any time by texting STOP to 60505. Your standard network changes will apply.
How We Protect Your Information
We endeavour to protect the information you provide and have various security procedures in place. We store the information provided to us on our secure servers where it can only be read by authorised personnel. Any payment transactions are encrypted using Secure Socket Layer (SSL) technology. This protects your data while being sent over the internet from being intercepted and misused by third parties.
We have installed a mechanism that uses digital server identities so that you can be sure that the website you access is screwfix.com. This is done using one of the internet Trusted Certification Authorities. When you access the secure pages of our site your browser will be provided with an electronic certificate confirming that you have accessed our site and all communications will be encrypted. When you create an online order, request or feedback that is then passed on to the relevant destination using the same level of encryption, this includes credit card verification. Firewalls are used to block unauthorised traffic to the servers and the actual servers are located in a secure location which can only be accessed by authorised personnel.
Where we have given you (or where you have chosen) a password which enables you to access certain parts of our site, you are responsible for keeping this password confidential. We ask you not to share a password with anyone. We also recommend that you avoid using the same password for different online accounts.
Sale of Business
In the event that this business is sold or integrated with another business your details may be disclosed to our advisers and any prospective purchasers advisers and will be passed on to the new owners of the business so that they can continue to provide the service that we currently provide. We will require the purchaser to follow the practices disclosed in this Privacy Policy as varied from time to time.
Links from this Site to Other Sites
Our site may, from time to time, contain links to and from the websites of our partner networks, advertisers and affiliates. If you follow a link to any of these websites, please note that these websites have their own privacy policies and that we do not accept any responsibility or liability for these policies. Please check these policies before you submit any personal data to these websites.
Updating Your Details
If any of the information that you have provided to us changes, (e.g. your email address, home address, name, contact number or payment details) please update your details in My Account. Alternatively, send us an email entitled "CHANGE OF DETAILS" to<EMAIL_ADDRESS>send a letter to The Website Editor, Screwfix Direct, Trade House, Houndstone Business Park, Yeovil, Somerset, BA22 8RT or you can telephone us on 03330 112 112.
Should you wish to access the personal information that we hold about you please write to "THE CORRESPONDENCE TEAM" at the above postal address. You will need to include a brief description about the information you require to enable it to be located, proof of identification and payment of our ?10 administration fee (cheque to "Screwfix Direct"). We will then respond to you within 40 days of the date of your request.
Changes
If we change our Privacy Policy we will update the changes on this page and we may also place notices on other pages of the website so that you can at any time check our current policy. If we make any changes that may significantly affect the way we deal with your information, we will also email you to notify you of the proposed changes, so that you may have your details removed from our records if you do not agree with the changes.
How to Contact Screwfix Direct Ltd
We welcome your views about our website and our Privacy Policy. If you would like to contact us with any queries or comments please send an email to<EMAIL_ADDRESS>or telephone 03330 112 112 or write to the Correspondence Team at Screwfix Direct Limited, Trade House, Mead Avenue, Houndstone Business Park, Yeovil BA22 8RT.
Making a Complaint
If you wish to make a complaint about the way that we handle your personal data, you may contact the Information Commissioner's Office through their website www.ico.org.uk.
This Privacy Policy was last updated on 25/02/2016


Demo
This renderable scale demo shows the use of multi-resolution
images and renerable ops. Use the slider to scale the image
over a 30 to 1 range.
JAI
The "Scale" operation translates and resizes an image. For each
pixel (x, y) of the destination, the source value at the fractional
subpixel position ((x - xTrans)/xScale, (y - yTrans)/yScale) is
constructed by means of an Interpolation object and written to the
destination.
When applying scale factors of scale_x, scale_y to a source image with width of src_width and height of src_height, the resulting image is defined to have the following dimensions:
dst_width = src_width * scale_x
dst_height = src_height * scale_y
When interpolations which require padding the source such as Bilinear
or Bicubic interpolation are specified, the source needs to be extended
such that it has the extra pixels needed to compute all the destination
pixels. This extension is performed via the BorderExtender
class. The type of Border Extension can be specified as a
RenderingHint
to the JAI.create
method.
If no Border Extension is specified, the source will not be extended. The scaled image size is still calculated according to the formula specified above. However since there isn't enough source to compute all the destination pixels, only that subset of the destination image's pixels, which can be computed, will be written in the destination. The rest of the destination will not be written.
Specifying a scale factor of greater than 1 increases the size of the image, specifying a scale factor between 0 and 1 (non-inclusive) decreases the size of an image. An IllegalArgumentException will be thrown if the specified scale factors are negative or equal to zero.
"Scale" defines a PropertyGenerator that performs an identical
transformation on the "ROI" property of the source image, which can
be retrieved by calling the getProperty
method with
"ROI" as the property name.
Theory
The renderable scale operation looks at multi-resolution images
to find the image with the next largest scale factor. This image
is used to scale to the desired output size.


Dorde and I teamed up to combine a cup holder with a pen/pencil holder. The original files pulled from Thingiverse were listed as a "Coffee Cup Holder" and the other as a "hexagonal drinking glasss"


Haul of Anglo Saxon coins found in Suffolk to go under the hammer
by Michael StewardA hoard of Anglo Saxon coins unearthed in Suffolk two years ago are set to go under the hammer next month - and could fetch £50,000.
The haul of 99 silver pennies - believed to be more than 1,000 years old - were found by 50-year-old builder Don Crawley at the site of a forgotten Saxon church in 2017.
Mr Crawley, from Bucklesham, discovered the coins on his first visit to the site, and the Suffolk farmer who owns the land did not wish to reveal further details of its location.
The hoard was taken to the British Museum who, following examination, stated the coins were from the reign of Aethelred II - who reigned in England from AD 978-1016.
The haul remained at the British Museum until they decided to disclaim them in August.
The hoard will be sold by Dix Noonan Webb (DNW) in Mayfair between December 4 and 5, with the proceeds split between finder Mr Crawley and the farmer on a 50/50 basis.
The haul has a pre-auction estimate of £30,000 to £50,000.
MORE: Sutton Hoo at 80: 'Gentleman's daughter' who unlocked the treasures
Mr Crawley said: "It was my first visit to this farmer's land in Suffolk. After walking up an incline in the field, my Deus detector gave off a strong signal and within a short space of time I had recovered 93 coins.
"The finds liaison officer was called in and they investigated the site which turned out to be a long forgotten Saxon church which had been dismantled by the Normans in the 11th century.
"Excavating around they uncovered the remains of human bones and I found another 6 coins."
The hoard includes two rare mints - Melton Mowbray and a previously unrecorded mint in Louth, Lincolnshire.
Louth had been a "Burh" or fortified settlement in the 10th century with a church containing the remains of St Herefrith.
The auctioneers said the hoard appears to have been buried by a pilgrim who was making penitence worried about the impending apocalypse of the Millennium.


PMD Results
The following document contains the results of PMD 6.53.0.
Violations By Priority
Priority 2
Apache Shiro :: Core - org/apache/shiro/util/AntPathMatcher.java
Priority 3
Apache Shiro :: Cache - org/apache/shiro/cache/Cache.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'get': the method is declared in an interface type |
44 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'put': the method is declared in an interface type |
54 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'remove': the method is declared in an interface type |
63 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'clear': the method is declared in an interface type |
70 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'size': the method is declared in an interface type |
77 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'keys': the method is declared in an interface type |
84 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'values': the method is declared in an interface type |
91 |
Apache Shiro :: Cache - org/apache/shiro/cache/CacheManager.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getCache': the method is declared in an interface type |
41 |
Apache Shiro :: Configuration :: Core - org/apache/shiro/config/Ini.java
Apache Shiro :: Configuration :: OGDL - org/apache/shiro/config/ReflectionBuilder.java
Apache Shiro :: Core - org/apache/shiro/authc/Authenticator.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'authenticate': the method is declared in an interface type |
65–66 |
Apache Shiro :: Core - org/apache/shiro/authc/LogoutAware.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'onLogout': the method is declared in an interface type |
40 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/PermissionResolverAware.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'setPermissionResolver': the method is declared in an interface type |
39 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/RolePermissionResolverAware.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'setRolePermissionResolver': the method is declared in an interface type |
39 |
Apache Shiro :: Core - org/apache/shiro/realm/jdbc/JdbcRealm.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/DefaultLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/JndiLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/realm/text/PropertiesRealm.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/eis/MemorySessionDAO.java
Apache Shiro :: Core - org/apache/shiro/subject/Subject.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
607–847 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
607–847 |
Apache Shiro :: Core - org/apache/shiro/util/AntPathMatcher.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/PaddingScheme.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'PaddingScheme(String)': enum constructors are implicitly private |
150–152 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/AbstractHash.java
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/HashRequest.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
85–224 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
85–224 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory.java
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/ModularCryptFormat.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'TOKEN_DELIMITER': the field is declared in an interface type |
31 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/ProvidedHashFormat.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'ProvidedHashFormat(Class)': enum constructors are implicitly private |
47–49 |
Apache Shiro :: Lang - org/apache/shiro/codec/Base64.java
Apache Shiro :: Lang - org/apache/shiro/util/ByteSource.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Util': types nested within an interface type are implicitly static |
73–190 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Util': members of interface types are implicitly public |
73–190 |
Apache Shiro :: Lang - org/apache/shiro/util/ClassUtils.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on interface 'ClassLoaderAccessor': member interfaces are implicitly static |
265–268 |
Apache Shiro :: Samples :: AspectJ - org/apache/shiro/samples/aspectj/bank/BankService.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'searchAccountIdsByOwner': the method is declared in an interface type |
25 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'createNewAccount': the method is declared in an interface type |
27 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getBalanceOf': the method is declared in an interface type |
29 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getOwnerOf': the method is declared in an interface type |
31 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'depositInto': the method is declared in an interface type |
33 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'withdrawFrom': the method is declared in an interface type |
35 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getTxHistoryFor': the method is declared in an interface type |
37 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'closeAccount': the method is declared in an interface type |
39 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'isAccountActive': the method is declared in an interface type |
41 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'TxLog': members of interface types are implicitly public |
43–81 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'TxLog': types nested within an interface type are implicitly static |
43–81 |
Apache Shiro :: Samples :: Quick Start Guice - QuickstartGuice.java
Apache Shiro :: Samples :: Quick Start - Quickstart.java
Apache Shiro :: Samples :: Spring Boot - org/apache/shiro/samples/QuickStart.java
| Rule |
Violation |
Line |
| UnusedPrivateMethod |
Avoid unused private methods such as 'initStaticSecurityManager()'. |
90 |
Apache Shiro :: Samples :: Spring Quickstart - org/apache/shiro/samples/spring/QuickStart.java
| Rule |
Violation |
Line |
| UnusedPrivateMethod |
Avoid unused private methods such as 'initStaticSecurityManager()'. |
90 |
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/BeanTypeListener.java
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/DestroyableInjectionListener.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on interface 'DestroyableRegistry': member interfaces are implicitly static |
45–47 |
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/LogoutFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authz/HostFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on enum 'HttpMethodAction': nested enums are implicitly static |
100–120 |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'HttpMethodAction(String)': enum constructors are implicitly private |
113–115 |
Apache Shiro :: Web - org/apache/shiro/web/filter/mgt/DefaultFilter.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'DefaultFilter(Class)': enum constructors are implicitly private |
57–59 |
Apache Shiro :: Web - org/apache/shiro/web/mgt/DefaultWebSecurityManager.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/Cookie.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'DELETED_COOKIE_VALUE': the field is declared in an interface type |
37 |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'ONE_YEAR': the field is declared in an interface type |
43 |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'ROOT_PATH': the field is declared in an interface type |
48 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on enum 'SameSiteOptions': the enum is declared in an interface type |
53–73 |
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpSession.java
Apache Shiro :: Web - org/apache/shiro/web/subject/WebSubject.java
| Rule |
Violation |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
58–157 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
58–157 |
Apache Shiro :: Web - org/apache/shiro/web/tags/SecureTag.java
Priority 4
Apache Shiro :: Core - org/apache/shiro/SecurityUtils.java
Apache Shiro :: Core - org/apache/shiro/authc/SimpleAccount.java
Apache Shiro :: Core - org/apache/shiro/authc/SimpleAuthenticationInfo.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Md2CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Md5CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha1CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha256CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha384CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha512CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/pam/AllSuccessfulStrategy.java
Apache Shiro :: Core - org/apache/shiro/authz/SimpleRole.java
Apache Shiro :: Core - org/apache/shiro/authz/annotation/package-info.java
Apache Shiro :: Core - org/apache/shiro/authz/aop/PermissionAnnotationHandler.java
| Rule |
Violation |
Line |
| UnnecessaryImport |
Unused import 'org.apache.shiro.authz.annotation.RequiresRoles' |
24 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/WildcardPermission.java
Apache Shiro :: Core - org/apache/shiro/config/IniFactorySupport.java
Apache Shiro :: Core - org/apache/shiro/env/BasicIniEnvironment.java
Apache Shiro :: Core - org/apache/shiro/jndi/JndiLocator.java
Apache Shiro :: Core - org/apache/shiro/mgt/AbstractRememberMeManager.java
Apache Shiro :: Core - org/apache/shiro/mgt/DefaultSessionStorageEvaluator.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/DefaultLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/JndiLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/SimpleSession.java
Apache Shiro :: Core - org/apache/shiro/subject/SimplePrincipalMap.java
Apache Shiro :: Core - org/apache/shiro/util/AntPathMatcher.java
Apache Shiro :: Core - org/apache/shiro/util/ThreadContext.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/AesCipherService.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/JcaCipherService.java
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory.java
Apache Shiro :: Lang - org/apache/shiro/codec/Base64.java
Apache Shiro :: Lang - org/apache/shiro/util/StringUtils.java
Apache Shiro :: Samples :: Guice Web - org/apache/shiro/samples/guice/SampleShiroServletModule.java
Apache Shiro :: Samples :: JAX-RS - org/apache/shiro/samples/jaxrs/resources/SecureResource.java
Apache Shiro :: Samples :: Spring MVC - org/apache/shiro/samples/spring/config/ApplicationConfig.java
Apache Shiro :: Samples :: Spring MVC - org/apache/shiro/samples/spring/web/JnlpController.java
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/web/ShiroWebModule.java
Apache Shiro :: Support :: JAX-RS - org/apache/shiro/web/jaxrs/AnnotationAuthorizationFilter.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/LifecycleBeanPostProcessor.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/config/AbstractShiroBeanConfiguration.java
| Rule |
Violation |
Line |
| UnnecessaryImport |
Unused import 'org.springframework.beans.factory.annotation.Autowired' |
25 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/config/ShiroConfiguration.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/remoting/SecureRemoteInvocationExecutor.java
| Rule |
Violation |
Line |
| UnnecessaryFullyQualifiedName |
Unnecessary use of fully qualified name 'org.apache.shiro.mgt.SecurityManager' due to existing import 'org.apache.shiro.mgt.SecurityManager' |
70 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
| Rule |
Violation |
Line |
| UnnecessaryFullyQualifiedName |
Unnecessary use of fully qualified name 'org.apache.shiro.mgt.SecurityManager' due to existing import 'org.apache.shiro.mgt.SecurityManager' |
61 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/web/ShiroFilterFactoryBean.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/web/config/ShiroWebConfiguration.java
| Rule |
Violation |
Line |
| UnnecessaryImport |
Unused import 'org.springframework.context.annotation.DependsOn' |
33 |
Apache Shiro :: Tools :: Hasher - org/apache/shiro/tools/hasher/Hasher.java
Apache Shiro :: Web - org/apache/shiro/web/env/EnvironmentLoader.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/AuthenticatingFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/LogoutFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolver.java
Apache Shiro :: Web - org/apache/shiro/web/mgt/DefaultWebSessionStorageEvaluator.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/AbstractShiroFilter.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/IniShiroFilter.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpServletResponse.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpSession.java
Apache Shiro :: Web - org/apache/shiro/web/util/RedirectView.java
Apache Shiro :: Web - org/apache/shiro/web/util/WebUtils.java
Files
Apache Shiro :: Cache - org/apache/shiro/cache/Cache.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'get': the method is declared in an interface type |
3 |
44 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'put': the method is declared in an interface type |
3 |
54 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'remove': the method is declared in an interface type |
3 |
63 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'clear': the method is declared in an interface type |
3 |
70 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'size': the method is declared in an interface type |
3 |
77 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'keys': the method is declared in an interface type |
3 |
84 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'values': the method is declared in an interface type |
3 |
91 |
Apache Shiro :: Cache - org/apache/shiro/cache/CacheManager.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getCache': the method is declared in an interface type |
3 |
41 |
Apache Shiro :: Configuration :: Core - org/apache/shiro/config/Ini.java
Apache Shiro :: Configuration :: OGDL - org/apache/shiro/config/ReflectionBuilder.java
Apache Shiro :: Core - org/apache/shiro/SecurityUtils.java
Apache Shiro :: Core - org/apache/shiro/authc/Authenticator.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'authenticate': the method is declared in an interface type |
3 |
65–66 |
Apache Shiro :: Core - org/apache/shiro/authc/LogoutAware.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'onLogout': the method is declared in an interface type |
3 |
40 |
Apache Shiro :: Core - org/apache/shiro/authc/SimpleAccount.java
Apache Shiro :: Core - org/apache/shiro/authc/SimpleAuthenticationInfo.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Md2CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Md5CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha1CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha256CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha384CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/credential/Sha512CredentialsMatcher.java
Apache Shiro :: Core - org/apache/shiro/authc/pam/AllSuccessfulStrategy.java
Apache Shiro :: Core - org/apache/shiro/authz/SimpleRole.java
Apache Shiro :: Core - org/apache/shiro/authz/annotation/package-info.java
Apache Shiro :: Core - org/apache/shiro/authz/aop/PermissionAnnotationHandler.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.apache.shiro.authz.annotation.RequiresRoles' |
4 |
24 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/PermissionResolverAware.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'setPermissionResolver': the method is declared in an interface type |
3 |
39 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/RolePermissionResolverAware.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'setRolePermissionResolver': the method is declared in an interface type |
3 |
39 |
Apache Shiro :: Core - org/apache/shiro/authz/permission/WildcardPermission.java
Apache Shiro :: Core - org/apache/shiro/config/IniFactorySupport.java
Apache Shiro :: Core - org/apache/shiro/env/BasicIniEnvironment.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.apache.shiro.mgt.SecurityManager' |
4 |
23 |
Apache Shiro :: Core - org/apache/shiro/jndi/JndiLocator.java
Apache Shiro :: Core - org/apache/shiro/mgt/AbstractRememberMeManager.java
Apache Shiro :: Core - org/apache/shiro/mgt/DefaultSessionStorageEvaluator.java
Apache Shiro :: Core - org/apache/shiro/realm/jdbc/JdbcRealm.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/DefaultLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/realm/ldap/JndiLdapContextFactory.java
Apache Shiro :: Core - org/apache/shiro/realm/text/PropertiesRealm.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/SimpleSession.java
Apache Shiro :: Core - org/apache/shiro/session/mgt/eis/MemorySessionDAO.java
Apache Shiro :: Core - org/apache/shiro/subject/SimplePrincipalMap.java
Apache Shiro :: Core - org/apache/shiro/subject/Subject.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
3 |
607–847 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
3 |
607–847 |
Apache Shiro :: Core - org/apache/shiro/util/AntPathMatcher.java
Apache Shiro :: Core - org/apache/shiro/util/ThreadContext.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/AesCipherService.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/JcaCipherService.java
Apache Shiro :: Cryptography :: Ciphers - org/apache/shiro/crypto/PaddingScheme.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'PaddingScheme(String)': enum constructors are implicitly private |
3 |
150–152 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/AbstractHash.java
| Rule |
Violation |
Priority |
Line |
| UnusedPrivateMethod |
Avoid unused private methods such as 'isReserved(String)'. |
3 |
306 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/HashRequest.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
3 |
85–224 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
3 |
85–224 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory.java
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/ModularCryptFormat.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'TOKEN_DELIMITER': the field is declared in an interface type |
3 |
31 |
Apache Shiro :: Cryptography :: Hashing - org/apache/shiro/crypto/hash/format/ProvidedHashFormat.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'ProvidedHashFormat(Class)': enum constructors are implicitly private |
3 |
47–49 |
Apache Shiro :: Lang - org/apache/shiro/codec/Base64.java
Apache Shiro :: Lang - org/apache/shiro/util/ByteSource.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Util': types nested within an interface type are implicitly static |
3 |
73–190 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Util': members of interface types are implicitly public |
3 |
73–190 |
Apache Shiro :: Lang - org/apache/shiro/util/ClassUtils.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on interface 'ClassLoaderAccessor': member interfaces are implicitly static |
3 |
265–268 |
Apache Shiro :: Lang - org/apache/shiro/util/StringUtils.java
Apache Shiro :: Samples :: AspectJ - org/apache/shiro/samples/aspectj/bank/BankService.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'searchAccountIdsByOwner': the method is declared in an interface type |
3 |
25 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'createNewAccount': the method is declared in an interface type |
3 |
27 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getBalanceOf': the method is declared in an interface type |
3 |
29 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getOwnerOf': the method is declared in an interface type |
3 |
31 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'depositInto': the method is declared in an interface type |
3 |
33 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'withdrawFrom': the method is declared in an interface type |
3 |
35 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'getTxHistoryFor': the method is declared in an interface type |
3 |
37 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'closeAccount': the method is declared in an interface type |
3 |
39 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on method 'isAccountActive': the method is declared in an interface type |
3 |
41 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'TxLog': members of interface types are implicitly public |
3 |
43–81 |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'TxLog': types nested within an interface type are implicitly static |
3 |
43–81 |
Apache Shiro :: Samples :: Guice Web - org/apache/shiro/samples/guice/SampleShiroServletModule.java
Apache Shiro :: Samples :: JAX-RS - org/apache/shiro/samples/jaxrs/resources/SecureResource.java
Apache Shiro :: Samples :: Quick Start Guice - QuickstartGuice.java
Apache Shiro :: Samples :: Quick Start - Quickstart.java
Apache Shiro :: Samples :: Spring Boot - org/apache/shiro/samples/QuickStart.java
| Rule |
Violation |
Priority |
Line |
| UnusedPrivateMethod |
Avoid unused private methods such as 'initStaticSecurityManager()'. |
3 |
90 |
Apache Shiro :: Samples :: Spring MVC - org/apache/shiro/samples/spring/config/ApplicationConfig.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.apache.shiro.cache.CacheManager' |
4 |
22 |
| UnnecessaryImport |
Unused import 'org.apache.shiro.web.filter.mgt.DefaultFilter.anon' |
4 |
45 |
Apache Shiro :: Samples :: Spring MVC - org/apache/shiro/samples/spring/web/JnlpController.java
Apache Shiro :: Samples :: Spring Quickstart - org/apache/shiro/samples/spring/QuickStart.java
| Rule |
Violation |
Priority |
Line |
| UnusedPrivateMethod |
Avoid unused private methods such as 'initStaticSecurityManager()'. |
3 |
90 |
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/BeanTypeListener.java
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/DestroyableInjectionListener.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on interface 'DestroyableRegistry': member interfaces are implicitly static |
3 |
45–47 |
Apache Shiro :: Support :: Guice - org/apache/shiro/guice/web/ShiroWebModule.java
Apache Shiro :: Support :: JAX-RS - org/apache/shiro/web/jaxrs/AnnotationAuthorizationFilter.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/LifecycleBeanPostProcessor.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/config/AbstractShiroBeanConfiguration.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.springframework.beans.factory.annotation.Autowired' |
4 |
25 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/config/ShiroConfiguration.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.apache.shiro.event.EventBus' |
4 |
24 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/remoting/SecureRemoteInvocationExecutor.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryFullyQualifiedName |
Unnecessary use of fully qualified name 'org.apache.shiro.mgt.SecurityManager' due to existing import 'org.apache.shiro.mgt.SecurityManager' |
4 |
70 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/security/interceptor/AuthorizationAttributeSourceAdvisor.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryFullyQualifiedName |
Unnecessary use of fully qualified name 'org.apache.shiro.mgt.SecurityManager' due to existing import 'org.apache.shiro.mgt.SecurityManager' |
4 |
61 |
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/web/ShiroFilterFactoryBean.java
Apache Shiro :: Support :: Spring - org/apache/shiro/spring/web/config/ShiroWebConfiguration.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryImport |
Unused import 'org.springframework.context.annotation.DependsOn' |
4 |
33 |
Apache Shiro :: Tools :: Hasher - org/apache/shiro/tools/hasher/Hasher.java
Apache Shiro :: Web - org/apache/shiro/web/env/EnvironmentLoader.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/AuthenticatingFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authc/LogoutFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authz/HostFilter.java
Apache Shiro :: Web - org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on enum 'HttpMethodAction': nested enums are implicitly static |
3 |
100–120 |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'HttpMethodAction(String)': enum constructors are implicitly private |
3 |
113–115 |
Apache Shiro :: Web - org/apache/shiro/web/filter/mgt/DefaultFilter.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'private' on constructor 'DefaultFilter(Class)': enum constructors are implicitly private |
3 |
57–59 |
Apache Shiro :: Web - org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolver.java
Apache Shiro :: Web - org/apache/shiro/web/mgt/DefaultWebSecurityManager.java
Apache Shiro :: Web - org/apache/shiro/web/mgt/DefaultWebSessionStorageEvaluator.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/AbstractShiroFilter.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/Cookie.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'DELETED_COOKIE_VALUE': the field is declared in an interface type |
3 |
37 |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'ONE_YEAR': the field is declared in an interface type |
3 |
43 |
| UnnecessaryModifier |
Unnecessary modifiers 'public static final' on field 'ROOT_PATH': the field is declared in an interface type |
3 |
48 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on enum 'SameSiteOptions': the enum is declared in an interface type |
3 |
53–73 |
Apache Shiro :: Web - org/apache/shiro/web/servlet/IniShiroFilter.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpServletResponse.java
Apache Shiro :: Web - org/apache/shiro/web/servlet/ShiroHttpSession.java
Apache Shiro :: Web - org/apache/shiro/web/subject/WebSubject.java
| Rule |
Violation |
Priority |
Line |
| UnnecessaryModifier |
Unnecessary modifier 'static' on class 'Builder': types nested within an interface type are implicitly static |
3 |
58–157 |
| UnnecessaryModifier |
Unnecessary modifier 'public' on class 'Builder': members of interface types are implicitly public |
3 |
58–157 |
Apache Shiro :: Web - org/apache/shiro/web/tags/SecureTag.java
Apache Shiro :: Web - org/apache/shiro/web/util/RedirectView.java
Apache Shiro :: Web - org/apache/shiro/web/util/WebUtils.java


Contents:
Java annotations are meta-data about Java program elements, as in
“@Deprecated class Date
{ ... }
” or “List<@NonNull String>
”.
Ordinarily, Java annotations are
written in the
source code of a .java
Java source file. When
javac
compiles the source code, it inserts the annotations in
the resulting .class
file (as
“attributes”).
Sometimes, it is convenient to specify
the annotations outside the source code or the .class
file.
The document
“Annotation File Format Specification” (PDF, HTML)
defines a textual format for annotations,
and it also motivates reasons why such a file format is necessary in
addition to the .java
and .class
formats. The
file format supports both the declaration annotations and type annotations.
An annotation file
conventionally has the extension .jaif
(for Java Annotation Index
File).
The scene-lib
sub-project provides
API methods for building and manipulating annotation files.
Programmers need to be able to transfer annotations between the three possible locations for annotations — source code, class files, and annotation files. Programmers will want to extract annotations from source and class files to an annotation file in order to easily read annotations, while various tools will only read annotations from source and class files. The Annotation File Utilities provide three tools to read and write annotation files.
insert-annotations
reads annotations from an annotation file
and inserts them into an existing class fileextract-annotations
reads annotations from a class file
and writes them out to a new annotation fileinsert-annotations-to-source
reads annotations from an
annotation file and inserts them into an existing Java source fileThe diagram below shows how each tool moves annotations from one file format to another.
There is no
extract-annotations-from-source
tool: one can
compile the source code and then use
extract-annotations
to read the annotations from the class
file.
The following instructions assume either a Linux or Windows system using a command-line environment.
The current release is Annotation File Utilities version 3.38.0, 01 Sep 2023.
annotation-tools
by
unpacking the distribution zipfile.
(You will typically make annotation-tools/
a sibling of
checker-framework/
.)
unzip annotation-tools-3.23.0.zip
annotation-file-utilities
directory to your path.
~/.bashrc
or ~/.bash_profile
file:
export PATH=${PATH}:/path/to/annotation-tools/annotation-file-utilities/scripts
PATH
system
variable by going to
Control Panel -> System -> Advanced -> Environment Variables
From there, find the PATH
variable under “System variables”
and append to it the directory path\to\annotatation-tools\annotation-file-utilities\scripts
.
The annotation file utilities are pre-compiled (a jar file is included in the distribution), so most users do not need to compile it themselves.
There are two ways to obtain the source code. Source code is provided in the distribution. Alternately, see the source code repository at https://github.com/typetools/annotation-tools.
To compile and run tests, do
./gradlew build
from the annotation-file-utilities
subdirectory.
To use the tools, simply run them from the command-line with the
appropriate arguments. The following instructions are for running the
tools on a Linux/Unix/MacOS machine.
The tools work identically on Windows, except
the extension .bat
needs to be appended to the tool name (for
example, Windows users would execute insert-annotations.bat
instead of insert-annotations
).
For all the tools, arguments starting with a single
‘@
’ are recognized as argument files
(argfiles
), the contents of which get expanded into the
command line. (Initial @@
represents a literal
@
in the argument text.) For additional details of argfile
processing, refer to Oracle's
javac
documentation.
To insert annotations specified by an annotation file into a class file, use the insert-annotations tool. Running:
insert-annotations mypackage.MyClass indexFile.jaif
will read in all the annotations from the annotation file
indexFile.jaif
and insert those annotations pertaining to
mypackage.myClass
into the class file for
mypackage.MyClass
, outputting the final class file to
mypackage.MyClass.class
in the present working directory.
Note that the class file for mypackage.MyClass
must be located
on your classpath.
Multiple pairs of class and index files (in that order) can be specified on a single command line; if the program exits normally, the results are the same as if the program were run once for each pair of arguments in sequence. Run:
insert-annotations --help
for usage information.
In addition to the command-line arguments mentioned there, you can also set
the classpath via the -cp
or --classpath
command-line option.
To extract annotations from a class file and write them to an annotation file, use the extract-annotations tool. Running:
extract-annotations mypackage.MyClass
will locate the class file for mypackage.MyClass
, read all
annotations from it, and write the results in annotation file format to
mypackage.MyClass.jaif
in the present working directory. Note
that mypackage.MyClass
must be located on your classpath.
Alternately, you can specify a classfile directly:
extract-annotations /path/to/MyClass.class
Multiple classes or classfiles can be specified on a single command line; if the program exits normally, the results are the same as if the program was run once for each class in sequence.
Run:
extract-annotations --help
for usage information.
In addition to the command-line arguments mentioned there,
the -cp
and -classpath
command-line options set
the classpath to use to look up annotations.
To insert annotations specified by an annotation file into a Java source file, use the insert-annotations-to-source tool. Running:
insert-annotations-to-source index1.jaif index2.jaif mypackage/MyClass.java yourpackage/YourClass.java
will read all the annotations from index1.jaif
and
index2.jaif
, insert them (when applicable) into their
appropriate locations in mypackage/MyClass.java
and
yourpackage/YourClass.java
, and write the results to
annotated/mypackage/MyClass.java
and
annotated/mypackage/MyClass.java
, respectively.
Index and source files can be specified in any order, mixing the two file types freely; if the source files have no overlapping definitions and the program exits normally, the results are the same as if the program were run once for each source file, with all JAIFs given for each run.
The command-line arguments appear below.
Your classpath must include classes that are arguments to annotations.
For example, to insert @A(element = B.class)
, your classpath
must contain B.class
.
If you wish to insert annotations into method bodies, you must have the
associated class mypackage.MyClass.class
on your classpath.
You can insert annotations on class/field/method declarations and
signatures without the class on your classpath.
If the
.jaif
file contains annotations for a type parameter, but the
source code uses a raw type, then you will get an error such as
Found class Edge, but unable to insert @checkers.nullness.quals.Nullable: @checkers.nullness.quals.Nullable (nl=true) @ [GenericArrayLocationCriterion at ( [TYPE_ARGUMENT(0)] ), ...
In this case, you should add type arguments, such as changing
public void pushNonezeroRing(Stack stack, Hashtable seen) {
to
public void pushNonezeroRing(Stack<Edge> stack, Hashtable<Edge, ?> seen) {
In the following cases, insert-annotations-to-source will generate code to provide a location for an annotation:
extends Object
);{"a", "b"}
becomes new String[] {"a", "b"}
).
The -cp
and -classpath
command-line options set
the classpath to use to look up classes and annotations.
The other command-line options appear below and are also available by
running insert-annotations-to-source --help
.
.jaif
file and re-run the annotator.
Note that if the user runs the annotator with --in-place, makes edits, and then re-runs the annotator with this --in-place option, those edits are lost. Similarly, if the user runs the annotator twice in a row with --in-place, only the last set of annotations will appear in the codebase at the end.
To preserve changes when using the --in-place option, first remove the backup files. Or, use
the -d .
option, which makes (and reads) no backup, instead of --in-place. [default: false]
import
statements as necessary. [default: true]
This section describes some high level-design and implementation details of the Annotation File Utilities, including the different components of the Annotation File Utilities and how they fit together. It is intended for someone who is beginning work on the Annotation File Utilities or is curious about how the Annotation File Utilities work.
The Annotation File Utilities is composed of two sub-projects:
scene-lib
and
annotation-file-utilities
. The
scene-lib
sub-project represents a .jaif
file
and inserts and extracts annotations to/from bytecode. The
annotation-file-utilities
sub-project inserts annotations
into source code.
scene-lib
is an interface to a .jaif
file.
It reads in and writes out .jaif
files and provides an
internal representation of a .jaif
file to access and
manipulate.
Internally, a .jaif
file is represented by the
scene-lib/src/annotations/el/AScene.java
class. The
AScene
class (or “annotated scene”) roughly
parallels the root of an abstract syntax tree. An AScene
has a number of classes (AClass
) as children. Each class
has a number of methods (AMethod
), fields
(AElement
), etc. as children. All of these classes are
related in the type hierarchy shown below.
Each class in the type hierarchy has one or more fields to hold
annotations for the different components of the class. For example, the
AMethod
class has the following fields: bounds, return
type, receiver parameters, and throws clause. Each of these fields
holds the annotations stored on that part of the method. For details on
the remainder of the classes in the type hierarchy, and their
respective fields, see the documentation for each file in
scene-lib/src/annotations/el/
.
An AScene
instance can be created in two ways. An empty
AScene
can be created by calling the AScene
constructor, or an AScene
can be created by parsing an
existing .jaif
file. Once an AScene
is
created, annotations can be added to it by adding them to the correct
fields of the children. An AScene
can also be output to
create a new .jaif
file.
Annotations can be inserted into bytecode by executing the
annotation-file-utilities/scripts/insert-annotations
script. This script takes one or more ⟨class name,
.jaif
file⟩ pairs as arguments. The annotations
specified in the .jaif
file are inserted into the
classfile directly before the .jaif
file in the argument
list.
First, each .jaif
file is parsed into an
AScene
(as described in
Scene-lib). Then, ASM's
ClassReader.java
parses the
classfile. As it is parsing the classfile, it passes the parsed
bytecode off to the
scene-lib/src/annotations/io/classfile/ClassAnnotationSceneWriter.java
class. This class has a reference to the AScene
parsed
from the .jaif
file. As this class receives the parsed
bytecode it inserts the relevant annotations from the
AScene
in the bytecode and then writes the bytecode back
out.
Annotations can be extracted from bytecode by executing the
annotation-file-utilities/scripts/extract-annotations
script. This script takes one or more class names as arguments and
outputs the annotations found in those classes to .jaif
files.
First, an empty AScene
is constructed to store
the annotations.
ASM's ClassReader.java
parses the
classfile and passes the parsed bytecode off to the
scene-lib/src/annotations/io/classfile/ClassAnnotationSceneReader.java
class. This class filters out the annotations in the bytecode and adds
them to the correct part of the AScene
. After this, the
AScene
is output to a .jaif
file.
The annotation-file-utilities
sub-project inserts annotations into source
code. It can be run by executing the
annotation-file-utilities/scripts/insert-annotations-to-source
script. The script takes one or more .jaif
files, followed by one or more .java
source files as arguments. The annotations in the .jaif
files are inserted into the .java
source files.
First, an instance of
annotation-file-utilities/src/org/checkerframework/afu/annotator/specification/IndexFileSpecification.java
is created. Its parse
method parses the .jaif
file into an AScene
(as described in
Scene-lib). The parse
method
calls the parseScene
method, which traverses through the
AScene
and creates an
annotation-file-utilities/src/org/checkerframework/afu/annotator/specification/CriterionList.java.
A CriterionList
identifies a unique AST node that is the
location of an insertion. It contains objects that implement the
annotation-file-utilities/src/org/checkerframework/afu/annotator/find/Criterion.java
interface.
Each Criterion
has an isSatisifiedBy
method —
a predicate that takes an AST node and returns true
if the
AST node satisfies the Criterion
and false
otherwise. To determine if a given node matches a
CriterionList
, the node is passed to all of the
Criterion
s in the CriteriaList
. If every
Criterion
returns true
then it is match. If
one or more Criterion
s return false
then it is
not a match. The various Criterion
classes are in the
annotation-file-utilities/src/org/checkerframework/afu/annotator/find/
directory.
For example, take the following source code:
package afu.example; public class Test { public void m(boolean b, int i) { // ... } }
The CriterionList
to specify the location of the
i
parameter contains the following
Criterion
s:
InPackageCriterion("afu.example")
InClassCriterion("Test")
InMethodCriterion("m(ZI)V")
ParamCriterion(1)
After this CriterionList
is built up an
annotation-file-utilities/org/checkerframework/afu/src/annotator/find/Insertion.java
is created. An Insertion
stores an
annotation-file-utilities/org/checkerframework/afu/src/annotator/find/Criteria.java
(which is created from a CriterionList
) and the text to be
inserted. All of these Insertion
s are then added to a
list. The Java compiler then is called to parse the Java source into an
abstract syntax tree. This is followed by a call to the
getPositions
method of
annotation-file-utilities/src/org/checkerframework/afu/annotator/find/TreeFinder.java
,
which scans through each node of the abstract syntax trees. For each node,
it runs through the Criteria
for each un-matched
Insertion
. If at least one of the Criteria
does not match, then this is not the correct place for the
Insertion
and the Insertion
will be checked
at the remaining nodes of the tree. If all of the Criteria
match, then this node is the correct place for the
Insertion
. It is removed from the list of un-matched
Insertion
s and the position where to insert the
Insertion
is determined. This position is the integer
index in the file where the Insertion
should be inserted.
After the positions are found for all of the Insertion
s,
the Insertion
text is inserted into the file. This happens
backwards, with Insertion
s at the end of the file (i.e.
with higher positions) being inserted first. If Insertion
s
were instead inserted from the beginning of the file then a single
Insertion
would invalidate all of the positions for the
following Insertion
s.
If there are remaining Insertion
s that were not matched
to a node in the abstract syntax tree then an error message is
displayed.
To submit a bug report or request a new feature, use the issue tracker. When reporting a bug, please include exact instructions in how to reproduce it, and please also attach relevant input files. This will let us resolve the issue quickly.
You can also reach the developers at<EMAIL_ADDRESS>But please use the issue tracker for bug reports and feature requests.
The changelog describes what is new in each release.