Package uk.ac.starlink.array
Interface ArrayBuilder
-
public interface ArrayBuilder
Interface for objects which can construct an NDArray from a URL.makeNDArray(java.net.URL, uk.ac.starlink.array.AccessMode)
constructs an NDArray from an existing resource andmakeNewNDArray(java.net.URL, uk.ac.starlink.array.NDShape, uk.ac.starlink.array.Type, uk.ac.starlink.array.BadHandler)
constructs an NDArray backed by a newly created resource. If the URL fed to makeNewNDArray is subsequently fed to makeNDArray the factory should understand it to reference the resource which was created by the earlier call (given that it still exists).- Author:
- Mark Taylor (Starlink)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description NDArray
makeNDArray(java.net.URL url, AccessMode mode)
Constructs an NDArray based on the existing resource at a given URL.NDArray
makeNewNDArray(java.net.URL url, NDShape shape, Type type, BadHandler bh)
Constructs a new NDArray with the given characteristics in a location determined by a given URL.
-
-
-
Method Detail
-
makeNDArray
NDArray makeNDArray(java.net.URL url, AccessMode mode) throws java.io.IOException
Constructs an NDArray based on the existing resource at a given URL. If the resource is not recognised or it is not known how to construct such an NDArray, then null should be returned. If the resource exists but some error occurs in processing it, or if this factory knows that it understands the URL but is unable to locate such a resource then an IOException should be thrown; however, if it is possible that a different factory could correctly construct an NDArray from this URL then a null return is preferred.If the resource storing the NDArray is incapable of storing bad values, an NDArray using the
default bad value handling policy
should be returned.- Parameters:
url
- the URL of the resource from which an NDArray is to be constructedmode
- the read/update/write mode with which to create the array- Returns:
- the NDArray at url, or null if this handler does not recognise the URL
- Throws:
java.io.IOException
- if the URL is understood but an NDArray cannot be made
-
makeNewNDArray
NDArray makeNewNDArray(java.net.URL url, NDShape shape, Type type, BadHandler bh) throws java.io.IOException
Constructs a new NDArray with the given characteristics in a location determined by a given URL. If the URL is not recognised or this factory does not feel qualified to construct an NDArray with the given URL then null should be returned. If some error occurs during construction then an IOException should in general be thrown; however if this factory thinks that another factory might have more luck then a null return is preferred.The bh parameter indicates a requested bad value handling policy. If it is not null, this handler should attempt to create a new NDArray resource with the same policy. However, if it is not possible because of limitations in the storage format it may use a different bad value policy, bearing in mind the behaviour documented in
makeNDArray(java.net.URL, uk.ac.starlink.array.AccessMode)
.- Parameters:
url
- the URL at which the resource backing the NDArray is to be writtenshape
- the shape of the new NDArray to construct. If this object is anOrderedNDShape
, itsOrder
may be used as a hint about the pixel ordering scheme of the NDArray to be created, but no guarantee is made that the orderings will matchtype
- the primitive data type of the new NDArray to constructbh
- requested bad value handling policy - see above- Returns:
- the new NDArray, or null if this handler does not recognise the URL
- Throws:
java.io.IOException
- if the URL is understood but the requested NDArray cannot be constructed there
-
-