Package com.isomorphic.datasource

# Class DSFileSpec

java.lang.Object
com.isomorphic.datasource.DSFileSpec

public class DSFileSpec extends Object
Specifies a file stored in a DataSource.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DSFileSpec(String url)`
  Construct a DSFileSpec from a URL-like string.
  `DSFileSpec(String url, DSRequest request)`
  Construct a DSFileSpec from a URL-like string.
  `DSFileSpec(String dsName, String dsFileName)`
  Specify a file with the given DataSource name and filename, without specifying a fileType or fileFormat.
  `DSFileSpec(String dsName, String dsFileName, String dsFileType)`
  Specify a file with the given DataSource name, filename, and fileType, without specifying a fileFormat.
  `DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat)`
  Specify a file with the given DataSource name, filename, fileType, and fileFormat.
  `DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, DSRequest request)`
  Specify a file with the given DataSource name, filename, fileType, fileFormat and requestContext.
  `DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, String tenantId)`
  Specify a file with the given DataSource name, filename, fileType, fileFormat, and tenant ID.
  `DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, String tenantId, DSRequest request)`
  Specify a file with the given DataSource name, filename, fileType, fileFormat, tenant ID, and requestContext.
  `DSFileSpec(String dsName, Map record)`
  Specify a file from a dsName and a Map specifying one or more of fileName, fileType and fileFormat.
  `DSFileSpec(String dsName, Map record, DSRequest request)`
  Specify a file from a dsName and a Map specifying one or more of fileName, fileType and fileFormat.
  `DSFileSpec(Map record)`
  Specify a file from a Map specifying one or more of fileName, fileType and fileFormat.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDataSourceName()`
  `String`
  `getFileFormat()`
  `String`
  `getFileName()`
  `String`
  `getFileTenantId()`
  `String`
  `getFileType()`
  `boolean`
  `getMatchNullTenantId()`
  Whether or not when a tenant ID has been specified for this fileSpec, the criteria also allows the tenant ID to be null.
  `String`
  `getOwnerId()`
  `DSRequest`
  `getRequestContext()`
  `boolean`
  `hasFileTenantId()`
  `boolean`
  `hasFileTenantIdField()`
  Does the DataSource associated with this DSFileSpec have a Tenant ID field?
  `void`
  `setDataSourceName(String name)`
  `void`
  `setFileFormat(String format)`
  `void`
  `setFileName(String name)`
  `void`
  `setFileTenantId(DSRequest request)`
  Sets the tenant ID based on the supplied DSRequest.
  `void`
  `setFileTenantId(String tenantId)`
  `void`
  `setFileType(String type)`
  `void`
  `setMatchNullTenantId(boolean matchNullTenantId)`
  Setter for null tenant ID matching mode.
  `void`
  `setOwnerId(String ownerId)`
  `void`
  `setRequestContext(DSRequest context)`

- ## Constructor Details

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName)
    Specify a file with the given DataSource name and filename, without specifying a fileType or fileFormat.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName, String dsFileType)
    Specify a file with the given DataSource name, filename, and fileType, without specifying a fileFormat.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format
      `dsFileType` - The fileType (e.g. "ds" for datasource)

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat)
    Specify a file with the given DataSource name, filename, fileType, and fileFormat.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format
      `dsFileType` - The fileType (e.g. "ds" for datasource)
      `dsFileFormat` - The fileFormat (e.g. "xml" or "js")

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, String tenantId)
    Specify a file with the given DataSource name, filename, fileType, fileFormat, and tenant ID. The tenant ID is available as part of Multi-Tenant DataSource support.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format
      `dsFileType` - The fileType (e.g. "ds" for datasource)
      `dsFileFormat` - The fileFormat (e.g. "xml" or "js")
      `tenantId` - The tenant to specify for the file accses

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, DSRequest request)
    Specify a file with the given DataSource name, filename, fileType, fileFormat and requestContext.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format
      `dsFileType` - The fileType (e.g. "ds" for datasource)
      `dsFileFormat` - The fileFormat (e.g. "xml" or "js")
      `request` - The DSRequest which provides security context for this DSFileSpec.

  - ### DSFileSpec

    public DSFileSpec(String dsName, String dsFileName, String dsFileType, String dsFileFormat, String tenantId, DSRequest request)
    Specify a file with the given DataSource name, filename, fileType, fileFormat, tenant ID, and requestContext. The tenant ID is available as part of Multi-Tenant DataSource support.
    Parameters:
      `dsName` - The name of the DataSource
      `dsFileName` - The name of the file, without any extension for type or format
      `dsFileType` - The fileType (e.g. "ds" for datasource)
      `dsFileFormat` - The fileFormat (e.g. "xml" or "js")
      `tenantId` - The tenant to specify for the file accses
      `request` - The DSRequest which provides security context for this DSFileSpec.

  - ### DSFileSpec

    public DSFileSpec(Map record)
    Specify a file from a Map specifying one or more of fileName, fileType and fileFormat.
    Parameters:
      `record` - A Map specifying one or more of fileName, fileType and fileFormat.

  - ### DSFileSpec

    public DSFileSpec(String dsName, Map record)
    Specify a file from a dsName and a Map specifying one or more of fileName, fileType and fileFormat.
    Parameters:
      `dsName` - The name of the DataSource
      `record` - A Map specifying one or more of fileName, fileType and fileFormat.

  - ### DSFileSpec

    public DSFileSpec(String dsName, Map record, DSRequest request)
    Specify a file from a dsName and a Map specifying one or more of fileName, fileType and fileFormat.
    Parameters:
      `dsName` - The name of the DataSource
      `record` - A Map specifying one or more of fileName, fileType and fileFormat.
      `request` - The DSRequest which provides security context for this DSFileSpec.

  - ### DSFileSpec

    public DSFileSpec(String url)
    Construct a DSFileSpec from a URL-like string.
    Parameters:
      `url` - URL-like specification for the file.

      To specify both the dsName and the filename, use a URL that looks like ds://datasourceName/fileName.type.format -- e.g. "ds://projects/bigProject.proj.xml"). Note that the fileType and fileFormat should not have any spaces.

      If you want a DSFileSpec that only parses the filename, then just specify the filename, like this "fileName.type.format".

  - ### DSFileSpec

    public DSFileSpec(String url, DSRequest request)
    Construct a DSFileSpec from a URL-like string.
    Parameters:
      `url` - URL-like specification for the file.
      `request` - The DSRequest which provides security context for this DSFileSpec.

      To specify both the dsName and the filename, use a URL that looks like ds://datasourceName/fileName.type.format -- e.g. "ds://projects/bigProject.proj.xml"). Note that the fileType and fileFormat should not have any spaces.

      If you want a DSFileSpec that only parses the filename, then just specify the filename, like this "fileName.type.format".

- ## Method Details

  - ### getDataSourceName

    public String getDataSourceName()
    Returns:
      The name of the `DataSource` in which to find the file

  - ### setDataSourceName

    public void setDataSourceName(String name)
    Parameters:
      `name` - The name of the `DataSource` in which to find the file

  - ### getRequestContext

    public DSRequest getRequestContext()
    Returns:
      The request which should be consulted for security context when using this DSFileSpec.

  - ### setRequestContext

    public void setRequestContext(DSRequest context)
    Parameters:
      `context` - The DSRequest which provides security context for this DSFileSpec.

  - ### getFileName

    public String getFileName()
    Returns:
      The fileName, without any extension for type or format.

  - ### setFileName

    public void setFileName(String name)
    Parameters:
      `name` - The fileName, without any extension for type or format.

  - ### getFileType

    public String getFileType()
    Returns:
      The fileType, e.g. "ds"

  - ### setFileType

    public void setFileType(String type)
    Parameters:
      `type` - The fileType, e.g. "ds"

  - ### getFileFormat

    public String getFileFormat()
    Returns:
      The fileFormat, e.g. "xml" or "js"

  - ### setFileFormat

    public void setFileFormat(String format)
    Parameters:
      `format` - The fileFormat, e.g. "xml" or "js"

  - ### getFileTenantId

    public String getFileTenantId()
    Returns:
      The tenant ID

  - ### hasFileTenantId

    public boolean hasFileTenantId()
    Returns:
      Whether fileSpec specifies a tenant ID

  - ### setFileTenantId

    public void setFileTenantId(DSRequest request)
    Sets the tenant ID based on the supplied DSRequest. This is different than `setting the request on the fileSpec`, since binding the request to the fileSpec may change the transaction associated with the operation, etc.
    Parameters:
      `request` - request checked for an authenticated tenant ID

  - ### setFileTenantId

    public void setFileTenantId(String tenantId)
    Parameters:
      `tenantId` - The tenant ID to use for the file lookup

  - ### hasFileTenantIdField

    public boolean hasFileTenantIdField()
    Does the DataSource associated with this DSFileSpec have a Tenant ID field?
    Returns:
      has a Tenant ID field

  - ### getMatchNullTenantId

    public boolean getMatchNullTenantId()
    Whether or not when a tenant ID has been specified for this fileSpec, the criteria also allows the tenant ID to be null. This lets a common fallback definition to be provided.
    Returns:
      Whether to match null too

  - ### setMatchNullTenantId

    public void setMatchNullTenantId(boolean matchNullTenantId)
    Setter for null tenant ID matching mode. See `getMatchNullTenantId()`.
    Parameters:
      `matchNullTenantId` - Whether to match null too

  - ### getOwnerId

    public String getOwnerId()
    Returns:
      The ownerId

  - ### setOwnerId

    public void setOwnerId(String ownerId)
    Parameters:
      `ownerId` - The ownerId