Package com.jalios.jcms.fileprocessor
Class FPUtil
- java.lang.Object
-
- com.jalios.jcms.fileprocessor.FPUtil
-
public class FPUtil extends java.lang.Object
This class provides a set of static methods which perform various utility operations used specifically in FileProcessor.
-
-
Constructor Summary
Constructors Constructor Description FPUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
arrayContainsIgnoreCase(java.lang.String[] array, java.lang.String key)
Test if an array contains a given object.static boolean
checkIsGeneratedPDF(java.io.File file)
Check if the file in parameter is the generated PDF associated to another document.static boolean
checkIsGeneratedPlainText(java.io.File file)
Check if the file in parameter is the generated Plain text associated to another document.static void
createAssociatedTextFile(java.io.File file, java.lang.String content)
Create a file with name the name of file plus ".txt" and with content : content.static java.lang.String
extractTextPDF(java.io.File file, java.util.Map<java.lang.String,java.lang.Object> ctxt, FileParser parser)
This methods extracts the text of specified PDF File (MUST be a pdf) to a String (using PDFBox).static java.lang.String
fromInnerFileSeparatorToSystemFileSeparator(java.lang.String filename)
Returns filename using System separator caracterstatic java.lang.String
fromSystemFileSeparatorToInnerFileSeparator(java.lang.String filename)
Returns filename using inner separator caracterstatic java.util.Comparator<FileActionComponent>
getActionComponentComparator()
This comparator is to order FileActionComponent in regard with getOrder.static FileActionComponent
getActionComponentInstance(java.lang.Class<? extends FileActionComponent> clazz)
Returns a new instance of a FileActionComponent of the class specified in parameter.static java.io.File
getAssociatedTextFile(java.io.File file)
Retrieve the File instance of the associated text file for the specified Filestatic java.util.Comparator<java.lang.Class<?>>
getClassComparator()
Comparator for Classes, usefull to use TreeSet of Classes, then ObjectIntTreeMap with classes as keys.static java.lang.String
getFileShortName(java.io.File file, Repository repository)
static java.lang.String[]
getFilesVeryShortName(java.lang.String[] filesName)
This method give the ending name of a file.static java.lang.String
getFileVeryShortName(java.lang.String fileName)
This method give the ending name of a file.static java.lang.String
getFirstWord(java.lang.String phrase)
Return the substring of the phrase in parameter before the first dot, or itself if it contains no dot.static Repository
getJCMSMainRepository()
Gives the main repository for JCMS upload files.static java.lang.String
getTextFileName(java.io.File file)
Retrieve the absolute file name of the associated text file for the specified Filestatic org.xml.sax.ContentHandler
getXmlTextContentHandler(java.io.OutputStream outStream)
Convenient Method to get a ContentHandler to parse an UTF-8 XML stream and get only text inside element.static boolean
isPlainText(java.io.File file)
static java.lang.String
readAssociatedTextFileContent(java.io.File associatedTextFile)
Read the content of the specified text file and return it as a string.
-
-
-
Method Detail
-
getJCMSMainRepository
public static Repository getJCMSMainRepository()
Gives the main repository for JCMS upload files.- Returns:
- the classical JCMS upload repository
-
getFirstWord
public static java.lang.String getFirstWord(java.lang.String phrase)
Return the substring of the phrase in parameter before the first dot, or itself if it contains no dot.- Parameters:
phrase
- the phrase- Returns:
- the subtring before the first dot
-
getXmlTextContentHandler
public static org.xml.sax.ContentHandler getXmlTextContentHandler(java.io.OutputStream outStream)
Convenient Method to get a ContentHandler to parse an UTF-8 XML stream and get only text inside element.- Parameters:
outStream
- the stream in which to write extracted text content- Returns:
- return a SAX Handler taking all the string of the contents of an XML stream.
-
arrayContainsIgnoreCase
public static boolean arrayContainsIgnoreCase(java.lang.String[] array, java.lang.String key)
Test if an array contains a given object. Return true if the test with '==' operator or 'equals' or 'equalsIgnoreCase' method returns true.- Parameters:
array
- the array to be searched.key
- the value to be searched for.- Returns:
- true if the array contains the given object.
-
getActionComponentInstance
public static FileActionComponent getActionComponentInstance(java.lang.Class<? extends FileActionComponent> clazz)
Returns a new instance of a FileActionComponent of the class specified in parameter.- Parameters:
clazz
- the FileActionComponent class to instanciate- Returns:
- a new instance of the given class or null if could not be created
-
getActionComponentComparator
public static java.util.Comparator<FileActionComponent> getActionComponentComparator()
This comparator is to order FileActionComponent in regard with getOrder.- Returns:
- a comparator for SortedSet containing only FileActionComponent
-
fromInnerFileSeparatorToSystemFileSeparator
public static java.lang.String fromInnerFileSeparatorToSystemFileSeparator(java.lang.String filename)
Returns filename using System separator caracter- Parameters:
filename
- as stored (independant from OS)- Returns:
- filename close to OS
-
fromSystemFileSeparatorToInnerFileSeparator
public static java.lang.String fromSystemFileSeparatorToInnerFileSeparator(java.lang.String filename)
Returns filename using inner separator caracter- Parameters:
filename
- close to OS- Returns:
- filename as stored (independant from OS)
-
getFileVeryShortName
public static java.lang.String getFileVeryShortName(java.lang.String fileName)
This method give the ending name of a file. The separator used is the one stored ('/' == FPUtil.FILE_SEPARATOR_IN_PERSISTED_FILE)- Parameters:
fileName
- the filename- Returns:
- the simple name of the file
-
getFilesVeryShortName
public static java.lang.String[] getFilesVeryShortName(java.lang.String[] filesName)
This method give the ending name of a file. The separator used is the one stored ('/' == FPUtil.FILE_SEPARATOR_IN_PERSISTED_FILE)- Parameters:
filesName
- the filename- Returns:
- the simple name of the file
-
getFileShortName
public static java.lang.String getFileShortName(java.io.File file, Repository repository)
-
getClassComparator
public static java.util.Comparator<java.lang.Class<?>> getClassComparator()
Comparator for Classes, usefull to use TreeSet of Classes, then ObjectIntTreeMap with classes as keys.- Returns:
- Comparator based on classname first, then on class hashcode
-
checkIsGeneratedPDF
public static boolean checkIsGeneratedPDF(java.io.File file)
Check if the file in parameter is the generated PDF associated to another document. This PDF may have been generate by JUniversal or the PDFConverterPlugin. A file is supposed to be a PDF generated PDF if a file exists with the same name without ".pdf" extension outside associated directory. There is no test on files date : if the PDF is older than the other file, we suppose it has been generated from an old version of the original file.- Parameters:
file
- the file- Returns:
- true if it is a generated PDF from another file.
-
checkIsGeneratedPlainText
public static boolean checkIsGeneratedPlainText(java.io.File file)
Check if the file in parameter is the generated Plain text associated to another document. A file is supposed to be a Plain text generated file if a file exists with the same name without ".txt" extension outside the associated directory. There is no test on files date : if the plain text is older than the other file, we suppose it has been generated from an old version of the original file.- Parameters:
file
- the file- Returns:
- true if it is a generated plain text from another file.
-
isPlainText
public static boolean isPlainText(java.io.File file)
-
createAssociatedTextFile
public static void createAssociatedTextFile(java.io.File file, java.lang.String content)
Create a file with name the name of file plus ".txt" and with content : content.- Parameters:
file
- the filecontent
- the contenu
-
readAssociatedTextFileContent
public static java.lang.String readAssociatedTextFileContent(java.io.File associatedTextFile)
Read the content of the specified text file and return it as a string.- Parameters:
associatedTextFile
- the associated text File to read- Returns:
- null if the content could not be read
- Since:
- fpp-3.0
-
getTextFileName
public static java.lang.String getTextFileName(java.io.File file)
Retrieve the absolute file name of the associated text file for the specified File- Parameters:
file
- any file for which to retrieve the associated text file path.- Returns:
- an absolute path of a text file
-
getAssociatedTextFile
public static java.io.File getAssociatedTextFile(java.io.File file)
Retrieve the File instance of the associated text file for the specified File- Parameters:
file
- any file for which to retrieve the associated text File.- Returns:
- the File instance for the associated text file
-
extractTextPDF
public static java.lang.String extractTextPDF(java.io.File file, java.util.Map<java.lang.String,java.lang.Object> ctxt, FileParser parser) throws ProcessingException
This methods extracts the text of specified PDF File (MUST be a pdf) to a String (using PDFBox).This methods is meant to be used in a FileParser implementation and requires all parameters
- Parameters:
file
- the PDF file (must be a valid and existing PDF file)ctxt
- the FileParser extractText context mapparser
- the FileParser instance performing the parsing process- Returns:
- the textual content of the PDF file or null if the file was empty
- Throws:
ProcessingException
- if an error occurs
-
-