com.trendmicro.grid.acl.ds.jpa
Class JpaFileRepository

java.lang.Object
  extended by com.trendmicro.grid.acl.ds.jpa.JpaFileRepository
All Implemented Interfaces:
com.trendmicro.grid.acl.ds.FileProvider, com.trendmicro.grid.acl.ds.Repository

@Repository
@Transactional(readOnly=true)
public class JpaFileRepository
extends Object
implements com.trendmicro.grid.acl.ds.FileProvider

Implements FileProvider using JPA.

Version:
1.0
Author:
juergen_kellerer, 2010-06-07

Constructor Summary
JpaFileRepository()
           
 
Method Summary
 JpaFileDetails createFileDetails(com.trendmicro.grid.acl.l0.datatypes.FileDetails fileDetails)
          Creates the specified FILE_CONTENTs entry.
 Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> getCanonicalIdentifiers(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
           
 FileQueryConfigurator<JpaFileDetails> getDetailsQueryConfigurator()
          Returns a query configurator that configures queries returning FileDetails by FileIdentifiers.
 JpaFileDetails getFileDetails(com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
          Returns the JpaFileDetails element for the given identifer.
 Collection<com.trendmicro.grid.acl.ds.datatypes.SharedFileDetails> getFileDetailsList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
           
 Collection<com.trendmicro.grid.acl.ds.datatypes.SharedFileInformation> getFileInformationList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
           
 Collection<JpaFileDetails> getJpaFileDetailsList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
          Returns the file details list for the given files.
 Collection<JpaFileInformation> getJpaFileInformationList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
          Returns the file information list for the given files.
 com.trendmicro.grid.acl.l0.datatypes.FileIdentiferListPage getMatchingFiles(com.trendmicro.grid.acl.ds.TagQueryExpression expression, com.trendmicro.grid.acl.l0.datatypes.Range range, int pageNumber)
           
static int getPageSize()
           
 JpaFileDetails getReference(com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
          Returns a lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.
 JpaFileDetails getReference(FileQueryConfigurator<Integer> primaryKeyQueryConfigurator, com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
          Returns a lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.
 FileQueryConfigurator<Integer> getReferenceQueryConfigurator()
          Returns a query configurator that configures queries returning primary keys by FileIdentifiers.
 Collection<JpaFileDetails> getReferences(Collection<? extends com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> identifiers)
          Returns lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.
 Collection<Boolean> isFilesKnown(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
           
 Collection<Boolean> isFilesTaggedWith(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files, String[] tags)
           
static void setPageSize(int pageSize)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JpaFileRepository

public JpaFileRepository()
Method Detail

getPageSize

public static int getPageSize()

setPageSize

public static void setPageSize(int pageSize)

isFilesKnown

public Collection<Boolean> isFilesKnown(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Specified by:
isFilesKnown in interface com.trendmicro.grid.acl.ds.FileProvider

isFilesTaggedWith

public Collection<Boolean> isFilesTaggedWith(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files,
                                             String[] tags)
Specified by:
isFilesTaggedWith in interface com.trendmicro.grid.acl.ds.FileProvider

getMatchingFiles

public com.trendmicro.grid.acl.l0.datatypes.FileIdentiferListPage getMatchingFiles(com.trendmicro.grid.acl.ds.TagQueryExpression expression,
                                                                                   com.trendmicro.grid.acl.l0.datatypes.Range range,
                                                                                   int pageNumber)
Specified by:
getMatchingFiles in interface com.trendmicro.grid.acl.ds.FileProvider

getCanonicalIdentifiers

public Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> getCanonicalIdentifiers(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Specified by:
getCanonicalIdentifiers in interface com.trendmicro.grid.acl.ds.FileProvider

getFileInformationList

public Collection<com.trendmicro.grid.acl.ds.datatypes.SharedFileInformation> getFileInformationList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Specified by:
getFileInformationList in interface com.trendmicro.grid.acl.ds.FileProvider

getJpaFileInformationList

public Collection<JpaFileInformation> getJpaFileInformationList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Returns the file information list for the given files.

Parameters:
files - The files to return the information list for.
Returns:
the file information list for the given file. The list may contain 'null' entries if the corresponding file was unknown.

getFileDetailsList

public Collection<com.trendmicro.grid.acl.ds.datatypes.SharedFileDetails> getFileDetailsList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Specified by:
getFileDetailsList in interface com.trendmicro.grid.acl.ds.FileProvider

getJpaFileDetailsList

public Collection<JpaFileDetails> getJpaFileDetailsList(Collection<com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> files)
Returns the file details list for the given files.

Parameters:
files - The files to return the details list for.
Returns:
the file details list for the given file. The list may contain 'null' entries if the corresponding file was unknown.

createFileDetails

public JpaFileDetails createFileDetails(com.trendmicro.grid.acl.l0.datatypes.FileDetails fileDetails)
                                 throws javax.persistence.PersistenceException
Creates the specified FILE_CONTENTs entry.

Parameters:
fileDetails - the source data to store.
Returns:
the stored entry.
Throws:
javax.persistence.EntityExistsException - in case of an entity exists under the
javax.persistence.PersistenceException

getFileDetails

public JpaFileDetails getFileDetails(com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
Returns the JpaFileDetails element for the given identifer.

Parameters:
identifier - the identifier for the file content.
Returns:
the JpaFileDetails element for the given identifer or 'null' if it does not exist.

getReferences

public Collection<JpaFileDetails> getReferences(Collection<? extends com.trendmicro.grid.acl.l0.datatypes.FileIdentifier> identifiers)
Returns lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.

Parameters:
identifiers - the identifiers to attach to the JpaFileDetails.
Returns:
lazy loaded JpaFileDetails used for references.

getReference

public JpaFileDetails getReference(com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
Returns a lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.

Parameters:
identifier - the identifier to attach to the JpaFileDetails.
Returns:
a lazy loaded JpaFileDetails used for references.

getDetailsQueryConfigurator

public FileQueryConfigurator<JpaFileDetails> getDetailsQueryConfigurator()
Returns a query configurator that configures queries returning FileDetails by FileIdentifiers.

Returns:
a query configurator that configures queries returning FileDetails by FileIdentifiers.

getReferenceQueryConfigurator

public FileQueryConfigurator<Integer> getReferenceQueryConfigurator()
Returns a query configurator that configures queries returning primary keys by FileIdentifiers.

Returns:
a query configurator that configures queries returning primary keys by FileIdentifiers.

getReference

public JpaFileDetails getReference(FileQueryConfigurator<Integer> primaryKeyQueryConfigurator,
                                   com.trendmicro.grid.acl.l0.datatypes.FileIdentifier identifier)
Returns a lazy loaded JpaFileDetails that may be used to satisfy foreign keys with minimum overhead.

Parameters:
primaryKeyQueryConfigurator - the configurator used for the query.
identifier - the identifier to attach to the JpaFileDetails.
Returns:
a lazy loaded JpaFileDetails used for references, or 'null' if the entry was missing and no MD5 hash was defined..