-
- All Known Implementing Classes:
OCRDatabaseManager
public interface DatabaseManagerThe manager that provides methods to connect and interact with the database.
-
-
Method Summary
Modifier and Type Method Description voidaddAveragedData(java.lang.String name, double[] values)Adds a piece of data in the database (Never overrides existing data) to be averaged and fetched later.voidaddAveragedData(java.lang.String name, it.unimi.dsi.fastutil.doubles.DoubleList values)Adds a piece of data in the database (Never overrides existing data) to be averaged and fetched later.voidaddCustomSpace(char letter, double ratio)Adds a custom between-character space amount for after a character, as some fonts have different padding after certain character.voidaddLetterSegments(char letter, double[] segments)Adds segments (Percentage data points) to the database for a certain character, with a modifier of 0.voidaddLetterSegments(char letter, int modifier, double[] segments)Adds segments (Percentage data points) to the database for a certain character.voidclearData()Clears all data in the database, primarily used for before training.voidclearLetterSegments(char letter)Clears all data revolving around a character from both the `letters` and `sectionData` table.voidcreateLetterEntry(char letter, double averageWidth, double averageHeight, double minCenter, double maxCenter, boolean isLetter)Inserts into the `letters` table with a modifier of 0.voidcreateLetterEntry(char letter, int modifier, double averageWidth, double averageHeight, double minCenter, double maxCenter, boolean isLetter)Inserts into the `letters` table.java.util.concurrent.Future<java.util.List<DatabaseCharacter>>getAllCharacterSegments()Gets all theDatabaseCharacters in the databasejava.util.concurrent.Future<java.lang.Double>getAveragedData(java.lang.String name)Gets the average value of the given data name, added fromaddAveragedData(String, double[]).java.util.concurrent.Future<java.lang.Double>getCustomSpace(char letter)Gets the custom between-character space associated with the character, to appear after the character.javax.sql.DataSourcegetDataSource()Gets theDataSourceused by the DatabaseManagerjava.util.concurrent.Future<java.lang.Double>getFontSize(char letter, int mod)Gets the font size ratio from the given character and modifier.java.lang.StringgetName()Gets the name of the database, which is by default it is either the file name or URL (Whichever one is given).java.util.concurrent.Future<java.util.Optional<java.lang.Boolean>>getProperty(java.lang.String name)Gets the boolean property by the given name.java.util.concurrent.Future<java.util.Optional<java.lang.Boolean>>isTrained()Gets if the database has been trained already.booleanisTrainedSync()Gets if the database has been trained already.voidsetFontSize(char letter, int mod, double ratio)Sets the font size ratio for the given character and modifier.voidsetName(java.lang.String name)Sets the name of the database.voidsetProperty(java.lang.String name, boolean value)Sets the boolean property to the database.voidsetTrained(boolean trained)Sets the database value as trained or not.voidshutdown()Shuts down all executor threads when the program is ready to be terminated.voidshutdown(java.util.concurrent.TimeUnit unit, long duration)Shuts down all executor threads when the program is ready to be terminated after the specified time.booleanusesInternal()Gets if the database manager is running off of the internal HSQLDB database or the external MySQL database.
-
-
-
Method Detail
-
setName
void setName(java.lang.String name)
Sets the name of the database. This has no effect on the actual function of the database.- Parameters:
name- The name of the database
-
getName
java.lang.String getName()
Gets the name of the database, which is by default it is either the file name or URL (Whichever one is given).- Returns:
- The name of the database
-
getDataSource
javax.sql.DataSource getDataSource()
Gets theDataSourceused by the DatabaseManager- Returns:
- The
DataSourceused by the DatabaseManager
-
createLetterEntry
void createLetterEntry(char letter, double averageWidth, double averageHeight, double minCenter, double maxCenter, boolean isLetter)Inserts into the `letters` table with a modifier of 0.- Parameters:
letter- The character to insertaverageWidth- The average width of the characteraverageHeight- The average height of the characterminCenter- The minimum relative center from the top found in the training ste for the font sizemaxCenter- The maximum relative center from the top found in the training ste for the font sizeisLetter- If the character is a letter (true) or if it is a space (false)
-
createLetterEntry
void createLetterEntry(char letter, int modifier, double averageWidth, double averageHeight, double minCenter, double maxCenter, boolean isLetter)Inserts into the `letters` table.- Parameters:
letter- The character to insertmodifier- The modifier of the data, for multi-part characters such as "averageWidth- The average width of the characteraverageHeight- The average height of the characterminCenter- The minimum relative center from the top found in the training ste for the font sizemaxCenter- The maximum relative center from the top found in the training ste for the font sizeisLetter- If the character is a letter (true) or if it is a space (false)
-
clearLetterSegments
void clearLetterSegments(char letter)
Clears all data revolving around a character from both the `letters` and `sectionData` table.- Parameters:
letter- The character to clear
-
addLetterSegments
void addLetterSegments(char letter, double[] segments)Adds segments (Percentage data points) to the database for a certain character, with a modifier of 0.- Parameters:
letter- The character to add segments tosegments- An array with a length of 17 all <= 1 as percentage data points
-
addLetterSegments
void addLetterSegments(char letter, int modifier, double[] segments)Adds segments (Percentage data points) to the database for a certain character.- Parameters:
letter- The character to add segments tomodifier- The modifier of the lettersegments- An array with a length of 17 all <= 1 as percentage data points
-
getAllCharacterSegments
java.util.concurrent.Future<java.util.List<DatabaseCharacter>> getAllCharacterSegments()
Gets all theDatabaseCharacters in the database- Returns:
- A Future of all the
DatabaseCharacters
-
addAveragedData
void addAveragedData(java.lang.String name, double[] values)Adds a piece of data in the database (Never overrides existing data) to be averaged and fetched later.- Parameters:
name- The name of the datavalues- The value to be added
-
addAveragedData
void addAveragedData(java.lang.String name, it.unimi.dsi.fastutil.doubles.DoubleList values)Adds a piece of data in the database (Never overrides existing data) to be averaged and fetched later.- Parameters:
name- The name of the datavalues- The value to be added
-
getAveragedData
java.util.concurrent.Future<java.lang.Double> getAveragedData(java.lang.String name)
Gets the average value of the given data name, added fromaddAveragedData(String, double[]). If no data is found, it will return -1.- Parameters:
name- The name of the data to fetch and average- Returns:
- The averaged data, being -1 if no data is found
-
addCustomSpace
void addCustomSpace(char letter, double ratio)Adds a custom between-character space amount for after a character, as some fonts have different padding after certain character. This calculated with of padding after a character is subtracted from the amount needed for a space.- Parameters:
letter- The letter before the space widthratio- The width/height ratio of the space
-
getCustomSpace
java.util.concurrent.Future<java.lang.Double> getCustomSpace(char letter)
Gets the custom between-character space associated with the character, to appear after the character.- Parameters:
letter- The letter this space associates with- Returns:
- The custom between-character space width/height ratio, or 0 if no custom space is found
-
setFontSize
void setFontSize(char letter, int mod, double ratio)Sets the font size ratio for the given character and modifier.- Parameters:
letter- The character to setmod- The modifier of the characterratio- The ratio
-
getFontSize
java.util.concurrent.Future<java.lang.Double> getFontSize(char letter, int mod)Gets the font size ratio from the given character and modifier.- Parameters:
letter- The letter to getmod- The modifier of the letter- Returns:
- The font size ratio
-
setProperty
void setProperty(java.lang.String name, boolean value)Sets the boolean property to the database.- Parameters:
name- The name of the propertyvalue- The property value
-
getProperty
java.util.concurrent.Future<java.util.Optional<java.lang.Boolean>> getProperty(java.lang.String name)
Gets the boolean property by the given name.- Parameters:
name- The name of the property to get- Returns:
- The property value
-
setTrained
void setTrained(boolean trained)
Sets the database value as trained or not. This only changes a boolean in the database.- Parameters:
trained- If the database is trained or not
-
isTrained
java.util.concurrent.Future<java.util.Optional<java.lang.Boolean>> isTrained()
Gets if the database has been trained already.- Returns:
- If the database has been trained
-
isTrainedSync
boolean isTrainedSync()
Gets if the database has been trained already. This differs fromisTrained()because this is done fully synchronous and defaults to false if not found.- Returns:
- If the database has been trained
-
clearData
void clearData()
Clears all data in the database, primarily used for before training.
-
shutdown
void shutdown()
Shuts down all executor threads when the program is ready to be terminated.
-
shutdown
void shutdown(java.util.concurrent.TimeUnit unit, long duration)Shuts down all executor threads when the program is ready to be terminated after the specified time.- Parameters:
unit- The Unit of timeduration- How long until it should shut down
-
usesInternal
boolean usesInternal()
Gets if the database manager is running off of the internal HSQLDB database or the external MySQL database.- Returns:
- If the database manager is using the internal HSQLDB database
-
-