diff --git a/docs/Javadoc/apidocs/allclasses-index.html b/docs/Javadoc/apidocs/allclasses-index.html
new file mode 100644
index 0000000..69f3e16
--- /dev/null
+++ b/docs/Javadoc/apidocs/allclasses-index.html
@@ -0,0 +1,218 @@
+
+
+
+
+All Classes and Interfaces (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes Enum Classes
+
+
+
+
+
+
+
Represents data parsed from the IK API JSON response.
+
+
+
+
Fetches JSON information from the IK API and parses the JSON into a list of
APICharityData objects.
+
+
+
+
+
+
Service class responsible for handling user authentication operations, including login,
+registration, and logout functionality.
+
+
+
+
This controller represents the available organization page, where the user can search for a
+charity and choose to donate to it.
+
+
+
+
+
+
Data access class responsible for getting all the distinct categories from the database.
+
+
+
+
+
+
This controller represents the charity page, where the user can read about the charity and choose
+to donate to it.
+
+
+
+
+
+
Data access class responsible for reading charity-related data from the database.
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
Manages the Database with MySQL tables and test connection.
+
+
+
+
+
+
This class is responsible for sending concurrent information about the donation to the Donation
+Database.
+
+
+
+
This controller represents the donation page, where the user can enter a donation amount and
+confirm their donation to the charity.
+
+
+
+
+
+
Data access class responsible for reading donation data from the database.
+
+
+
+
+
+
+
+
+
+
Landing page's controller.
+
+
+
+
Orchestrates a full charity data scrape by combining two data sources:
+
+
+ The external charity API (via
APICharityScraper), which provides structured data
+ such as organisation numbers, approval status, and charity URLs.
+
+
+
+
+
+
Represents a user's inbox that contains messages.
+
+
+
+
Supported application languages.
+
+
+
+
This class is a utility class that is used to load different scenes in the application.
+
+
+
+
Facilitates downloading of .png images from the individual charity's page on IK, converting them
+to bytecode (blob), and then back to a .png.
+
+
+
+
+
+
+
+
+
+
This controller represents the organization card that is displayed on the front page and is
+looped upon in FronpageController.
+
+
+
+
A utility for hashing and verifying passwords using PBKDF2.
+
+
+
+
+
+
Represents the settings for a user.
+
+
+
+
Class for scraping the description, URL of the logo, string of categories, and key values of the
+charities registered in IK.
+
+
+
+
Represents a user in the system.
+
+
+
+
This class is responsible for sending concurrent information about the user to the User database,
+and user settings to the settings database.
+
+
+
+
+
+
Data access class responsible for reading user-related data from the database.
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/allpackages-index.html b/docs/Javadoc/apidocs/allpackages-index.html
new file mode 100644
index 0000000..32d366d
--- /dev/null
+++ b/docs/Javadoc/apidocs/allpackages-index.html
@@ -0,0 +1,91 @@
+
+
+
+
+All Packages (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Summary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/element-list b/docs/Javadoc/apidocs/element-list
new file mode 100644
index 0000000..2113c6a
--- /dev/null
+++ b/docs/Javadoc/apidocs/element-list
@@ -0,0 +1,13 @@
+ntnu.systemutvikling.team6
+ntnu.systemutvikling.team6.controller
+ntnu.systemutvikling.team6.controller.components
+ntnu.systemutvikling.team6.database
+ntnu.systemutvikling.team6.database.DAO
+ntnu.systemutvikling.team6.database.Readers
+ntnu.systemutvikling.team6.models
+ntnu.systemutvikling.team6.models.registry
+ntnu.systemutvikling.team6.models.user
+ntnu.systemutvikling.team6.scraper
+ntnu.systemutvikling.team6.scraper.scraperComponents
+ntnu.systemutvikling.team6.security
+ntnu.systemutvikling.team6.service
diff --git a/docs/Javadoc/apidocs/help-doc.html b/docs/Javadoc/apidocs/help-doc.html
new file mode 100644
index 0000000..7bd33e3
--- /dev/null
+++ b/docs/Javadoc/apidocs/help-doc.html
@@ -0,0 +1,224 @@
+
+
+
+
+API Help (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+JavaDoc Help
+
+Navigation
+
+Search
+Keyboard Navigation
+
+
+Kinds of Pages
+
+Overview
+Package
+Class or Interface
+Other Files
+Use
+Tree (Class Hierarchy)
+Serialized Form
+All Packages
+All Classes and Interfaces
+Index
+
+
+Release Details
+
+
+
+
+
+JavaDoc Help
+
+
+
Navigation
+Starting from the
Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The
Index and Search box allow you to navigate to specific declarations and summary pages, including:
All Packages ,
All Classes and Interfaces
+
+Search
+You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:
+
+"j.l.obj" matches "java.lang.Object"
+"InpStr" matches "java.io.InputStream"
+"math exact long" matches "java.lang.Math.absExact(long)"
+
+Refer to the Javadoc Search Specification for a full description of search features.
+
+
+Keyboard Navigation
+Documentation pages provide keyboard shortcuts to facilitate access to common navigation tasks.
+
+Type
+/
+ to access the search input field in any page.
+Type
+.
+ to access the filter input field in the sidebar of class pages.
+Type
+Esc
+ to clear the input and release keyboard focus in any input field.
+Type
+Tab
+/
+↓
+/
+↑
+ to select list items after entering a search term in a search or filter input field.
+Type
+←
+/
+→
+ to switch between tabs in tabbed summary tables.
+
+
+
+
+
+
Kinds of Pages
+The following sections describe the different kinds of pages in this collection.
+
+Overview
+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+Package
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+Interfaces
+Classes
+Enum Classes
+Exception Classes
+Annotation Interfaces
+
+
+
+Class or Interface
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+Class Inheritance Diagram
+Direct Subclasses
+All Known Subinterfaces
+All Known Implementing Classes
+Class or Interface Declaration
+Class or Interface Description
+
+
+
+Nested Class Summary
+Enum Constant Summary
+Field Summary
+Property Summary
+Constructor Summary
+Method Summary
+Required Element Summary
+Optional Element Summary
+
+
+
+Enum Constant Details
+Field Details
+Property Details
+Constructor Details
+Method Details
+Element Details
+
+Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+Other Files
+Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+Use
+Each documented package, class or interface has its own Use page, which lists packages, classes, interfaces, methods, constructors and fields that use any part of that package, class or interface. Given a class or interface A, its Use page includes subclasses or subinterfaces of A, fields declared as A, methods that return A, methods and constructors with parameters of type A, and subclasses or subinterfaces with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+Tree (Class Hierarchy)
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
+
+
+
+
+All Packages
+The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+All Classes and Interfaces
+The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
+
+
+
Release Details
+
The details for each module, package, class or interface normally include the release in which the declaration was introduced.
+
When a member is added after the initial introduction of the enclosing class or interface, the details of the member include the release in which it was introduced.
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/index-all.html b/docs/Javadoc/apidocs/index-all.html
new file mode 100644
index 0000000..256bbe7
--- /dev/null
+++ b/docs/Javadoc/apidocs/index-all.html
@@ -0,0 +1,977 @@
+
+
+
+
+Index (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A B C D E F G H I L M N O P R S T U V All Classes and Interfaces | All Packages
+A
+
+addAPIDataToTable(List) - Method in class ntnu.systemutvikling.team6.service.APIToDatabaseService
+
+This method is used to verify the integrity of the data in the charities table and to
+update it based on the data retrieved from the IK API and the charity's URL.
+
+addCharity(Charity) - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+addDonation(Charity, User, double) - Method in class ntnu.systemutvikling.team6.database.DAO.DonationDAO
+
+Gets the total ammount of donations for a given charity, and sends it to the database throught
+MySQL.
+
+addDonation(Donation) - Method in class ntnu.systemutvikling.team6.models.registry.DonationRegistry
+
+addMessage(Message) - Method in class ntnu.systemutvikling.team6.models.user.Inbox
+
+Add´s message to the messages list.
+
+addUser(User) - Method in class ntnu.systemutvikling.team6.models.registry.UserRegistry
+
+APICharityData - Class in ntnu.systemutvikling.team6.scraper.scraperComponents
+
+Represents data parsed from the IK API JSON response.
+
+APICharityData(String, String, String, String, boolean) - Constructor for class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Constructs a new APICharityData object.
+
+APICharityScraper - Class in ntnu.systemutvikling.team6.scraper.scraperComponents
+
+Fetches JSON information from the IK API and parses the JSON into a list of
APICharityData objects.
+
+APICharityScraper(HttpClient) - Constructor for class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper
+
+Constructs a new APICharityScraper object.
+
+APIToDatabaseService - Class in ntnu.systemutvikling.team6.service
+
+APIToDatabaseService(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.service.APIToDatabaseService
+
+Contractor for APIToDatabaseService.
+
+AuthenticationService - Class in ntnu.systemutvikling.team6.service
+
+Service class responsible for handling user authentication operations, including login,
+registration, and logout functionality.
+
+AuthenticationService(UserSelect, UserDAO) - Constructor for class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Constructs an AuthenticationService with the specified data access objects.
+
+authToken - Variable in class ntnu.systemutvikling.team6.controller.components.BaseController
+
+authTokenisSet() - Method in class ntnu.systemutvikling.team6.controller.components.BaseController
+
+authTokenisSet() - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+AvailableOrganizationController - Class in ntnu.systemutvikling.team6.controller
+
+This controller represents the available organization page, where the user can search for a
+charity and choose to donate to it.
+
+AvailableOrganizationController() - Constructor for class ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+
+B
+
+BaseController - Class in ntnu.systemutvikling.team6.controller.components
+
+BaseController() - Constructor for class ntnu.systemutvikling.team6.controller.components.BaseController
+
+
+C
+
+CategorySelect - Class in ntnu.systemutvikling.team6.database.Readers
+
+Data access class responsible for getting all the distinct categories from the database.
+
+CategorySelect(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.Readers.CategorySelect
+
+Constructs a new CharitySelect with the given database connection.
+
+changeLanguage(Language) - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+Change language to the chosen language.
+
+Charity - Class in ntnu.systemutvikling.team6.models
+
+Charity(String, String, Boolean, String) - Constructor for class ntnu.systemutvikling.team6.models.Charity
+
+Minimal contructor JUST FOR DONATIONSSELECT.
+
+Charity(String, String, String, boolean, String) - Constructor for class ntnu.systemutvikling.team6.models.Charity
+
+Contructor for creating a new charity.
+
+Charity(String, String, String, String, String, boolean, String, String, String, byte[]) - Constructor for class ntnu.systemutvikling.team6.models.Charity
+
+Contructor for creating a new charity.
+
+CHARITY_USER - Enum constant in enum class ntnu.systemutvikling.team6.models.user.Role
+
+CharityPageController - Class in ntnu.systemutvikling.team6.controller
+
+This controller represents the charity page, where the user can read about the charity and choose
+to donate to it.
+
+CharityPageController() - Constructor for class ntnu.systemutvikling.team6.controller.CharityPageController
+
+CharityRegistry - Class in ntnu.systemutvikling.team6.models.registry
+
+CharityRegistry() - Constructor for class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+CharitySelect - Class in ntnu.systemutvikling.team6.database.Readers
+
+Data access class responsible for reading charity-related data from the database.
+
+CharitySelect(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.Readers.CharitySelect
+
+Constructs a new CharitySelect with the given database connection.
+
+CharityService - Class in ntnu.systemutvikling.team6.service
+
+CharityService() - Constructor for class ntnu.systemutvikling.team6.service.CharityService
+
+checkConnection() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper
+
+Checks if the http request returns an 'OK' response.
+
+checkPassword(String) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+Checks if the provided password matches the stored password.
+
+closeDriver() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Quits the driver instance, making it unusable.
+
+convertBlobToPNG(byte[], String) - Static method in class ntnu.systemutvikling.team6.scraper.LogoDownloader
+
+Converts a blob of image data back to a .png image file.
+
+createTables() - Method in class ntnu.systemutvikling.team6.database.DatabaseSetup
+
+Creates the Charities and Donations tables if they do not already exist.
+
+createWait() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Creates a WebDriverWait object for halting scraping until the correct pre-conditions
+are met.
+
+
+D
+
+DatabaseConnection - Class in ntnu.systemutvikling.team6.database
+
+Represents a reusable database connection through enviroment variables.
+
+DatabaseConnection() - Constructor for class ntnu.systemutvikling.team6.database.DatabaseConnection
+
+Constructs a new DatabaseConnection using database credentials retrieved from system
+environment variables.
+
+DatabaseConnection(String, String, String) - Constructor for class ntnu.systemutvikling.team6.database.DatabaseConnection
+
+Constructs a new DatabaseConnection using database credentials
+
+DatabaseSetup - Class in ntnu.systemutvikling.team6.database
+
+Manages the Database with MySQL tables and test connection.
+
+DatabaseSetup(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.DatabaseSetup
+
+Contractor for DatabaseManager.
+
+Donate(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+This method is used to process the donation when the user clicks the donate button.
+
+Donation - Class in ntnu.systemutvikling.team6.models
+
+Donation(double, LocalDate, Charity, User) - Constructor for class ntnu.systemutvikling.team6.models.Donation
+
+Constructor for creating a new donation.
+
+Donation(String, double, LocalDate, Charity, User, boolean) - Constructor for class ntnu.systemutvikling.team6.models.Donation
+
+Constructor for creating a donation reed from the database.
+
+DonationDAO - Class in ntnu.systemutvikling.team6.database.DAO
+
+This class is responsible for sending concurrent information about the donation to the Donation
+Database.
+
+DonationDAO(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.DAO.DonationDAO
+
+DonationPageController - Class in ntnu.systemutvikling.team6.controller
+
+This controller represents the donation page, where the user can enter a donation amount and
+confirm their donation to the charity.
+
+DonationPageController() - Constructor for class ntnu.systemutvikling.team6.controller.DonationPageController
+
+DonationRegistry - Class in ntnu.systemutvikling.team6.models.registry
+
+DonationRegistry() - Constructor for class ntnu.systemutvikling.team6.models.registry.DonationRegistry
+
+DonationSelect - Class in ntnu.systemutvikling.team6.database.Readers
+
+Data access class responsible for reading donation data from the database.
+
+DonationSelect(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.Readers.DonationSelect
+
+Constructs a new DonationSelect with the given database connection.
+
+DonationService - Class in ntnu.systemutvikling.team6.service
+
+DonationService() - Constructor for class ntnu.systemutvikling.team6.service.DonationService
+
+downloadImageAsBlob(String) - Static method in class ntnu.systemutvikling.team6.scraper.LogoDownloader
+
+Downloads a image from the given URL and converts it to a blob.
+
+
+E
+
+ENGLISH - Enum constant in enum class ntnu.systemutvikling.team6.models.user.Language
+
+
+F
+
+Feedback - Class in ntnu.systemutvikling.team6.models
+
+Feedback(String, User, String, LocalDate) - Constructor for class ntnu.systemutvikling.team6.models.Feedback
+
+Constructor for creating a new feedback, based on making a feedback previously made.
+
+Feedback(User, String) - Constructor for class ntnu.systemutvikling.team6.models.Feedback
+
+Constructor for creating a new feedback now.
+
+FeedbackService - Class in ntnu.systemutvikling.team6.service
+
+FeedbackService() - Constructor for class ntnu.systemutvikling.team6.service.FeedbackService
+
+findCharityByOrgnumber(String) - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+findCharityByUUID(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+findDonationById(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.DonationRegistry
+
+findElement(By) - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Calls the findElement method from the WebDriver object and returns a list of
+the returned WebElement objects.
+
+findElements(By) - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Calls the findElements method from the WebDriver object and returns a list of
+the returned WebElement objects.
+
+findMessageById(UUID) - Method in class ntnu.systemutvikling.team6.models.user.Inbox
+
+Finds a specific message by id.
+
+findUserById(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.UserRegistry
+
+FrontpageController - Class in ntnu.systemutvikling.team6.controller
+
+Landing page's controller.
+
+FrontpageController() - Constructor for class ntnu.systemutvikling.team6.controller.FrontpageController
+
+FullCharityScrape - Class in ntnu.systemutvikling.team6.scraper
+
+Orchestrates a full charity data scrape by combining two data sources:
+
+
+ The external charity API (via
APICharityScraper), which provides structured data
+ such as organisation numbers, approval status, and charity URLs.
+
+FullCharityScrape() - Constructor for class ntnu.systemutvikling.team6.scraper.FullCharityScrape
+
+
+
+
+G
+
+getAllCharities() - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+getAllDonations() - Method in class ntnu.systemutvikling.team6.models.registry.DonationRegistry
+
+getAllUsers() - Method in class ntnu.systemutvikling.team6.models.registry.UserRegistry
+
+getAmount() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getAPIAndURLCharityData() - Method in class ntnu.systemutvikling.team6.scraper.FullCharityScrape
+
+Performs a full two-phase scrape and returns a
CharityRegistry populated with all
+available charity data.
+
+getAPIScraper() - Method in class ntnu.systemutvikling.team6.scraper.FullCharityScrape
+
+getCategories() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Returns a String of the categories for the charity with ',' as a delimiter.
+
+getCategoriesFromDB() - Method in class ntnu.systemutvikling.team6.database.Readers.CategorySelect
+
+Retrieves all the categories listed in the Category table of the database.
+
+getCategory() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getCharitiesFromDB() - Method in class ntnu.systemutvikling.team6.database.Readers.CharitySelect
+
+Retrieves all charities from the database, including their associated feedback and the users
+who submitted each piece of feedback.
+
+getCharity() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getCharityId() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getComment() - Method in class ntnu.systemutvikling.team6.models.Feedback
+
+getContent() - Method in class ntnu.systemutvikling.team6.models.user.Message
+
+getCurrentUser() - Method in class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Returns the currently authenticated user.
+
+getDate() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getDate() - Method in class ntnu.systemutvikling.team6.models.Feedback
+
+getDescription() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getDescription() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Returns the description of the charity.
+
+getDisplayName() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getDonationFromDB() - Method in class ntnu.systemutvikling.team6.database.Readers.DonationSelect
+
+Retrieves all donations from the database, each populated with its associated
Charity.
+
+getDonationID() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getDonor() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+getEmail() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getFeedbackforCharityUUID(String) - Method in class ntnu.systemutvikling.team6.database.Readers.CharitySelect
+
+A helper function that retrieves all feedback entries associated with a specific charity,
+identified by its UUID.
+
+getFeedbackId() - Method in class ntnu.systemutvikling.team6.models.Feedback
+
+Getters for the feedback's attributes.
+
+getFeedbacks() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getFrom() - Method in class ntnu.systemutvikling.team6.models.user.Message
+
+getHashPassword(String) - Method in class ntnu.systemutvikling.team6.security.PasswordHasher
+
+Hashes a password using PBKDF2 and a random salt.
+
+getId() - Method in class ntnu.systemutvikling.team6.models.user.Message
+
+getId() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getInbox() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getInboxForUser(String) - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Retrieves the
Inbox for a specific user by their UUID, populated with all of their
+
Message objects.
+
+getIs_pre_approved() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Returns whether the organization was pre-approved.
+
+getJSONData() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper
+
+Fetches the JSON data from the IK API and stores it in a String.
+
+getKeyValues() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getKeyValues() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Returns a String of the key value percentages for the charity with ':' as a delimiter, verified
+by IK.
+
+getLanguage() - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+getLogoBlob() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getLogoURL() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getLogoURL() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Returns the URL of the logo for the charity.
+
+getMessages() - Method in class ntnu.systemutvikling.team6.models.user.Inbox
+
+Returns an unmodifiable view of the messages in this inbox.
+
+getMySqlConnection() - Method in class ntnu.systemutvikling.team6.database.DatabaseConnection
+
+Creates and returns a new MySQL database connection.
+
+getName() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getName() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Returns the name of the organization.
+
+getOrg_number() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getOrg_number() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Returns the organization number.
+
+getPasswordHash() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getPreApproved() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getRole() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getSettings() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getSettingsForUser(String) - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Retrieves the
Settings for a specific user by their UUID.
+
+getStatus() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getStatus() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Returns whether the organization is approved or not
+
+getTimeAndDate() - Method in class ntnu.systemutvikling.team6.models.user.Message
+
+getTitle() - Method in class ntnu.systemutvikling.team6.models.user.Message
+
+getUrl() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+Returns the URL of the organizations information page on IK
+
+getURL() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+getUser() - Method in class ntnu.systemutvikling.team6.models.Feedback
+
+getUserFromDBUsernameAndPassword(String, String) - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Retrieves a single
User from the database matching the given username and password.
+
+getUserFromDBUuid(String) - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Retrieves a single
User from the database by their UUID.
+
+getUsername() - Method in class ntnu.systemutvikling.team6.models.user.User
+
+getUsersFromDB() - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Retrieves all users from the database, each fully populated with their
Settings and
+
Inbox.
+
+getUUID() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Getters for the charity's attributes.
+
+
+H
+
+handleCategoryFilterChange(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+This method is used to filter the charities based on the selected filters.
+
+handleFrontSearch(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+This method is used to search for charities based on the input in the search field.
+
+handleHomepageClick(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+Opens OS default webbrowser and loads the url of the charity on click.
+
+handleSearch(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+This method is used to search for charities based on the input in the search field.
+
+handleSearch(ActionEvent) - Method in interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController
+
+handleSearch(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+This method is used to handle the search action when the user clicks the search button.
+
+HmHApplication - Class in ntnu.systemutvikling.team6
+
+HmHApplication() - Constructor for class ntnu.systemutvikling.team6.HmHApplication
+
+
+I
+
+Inbox - Class in ntnu.systemutvikling.team6.models.user
+
+Represents a user's inbox that contains messages.
+
+Inbox() - Constructor for class ntnu.systemutvikling.team6.models.user.Inbox
+
+Creates an empty inbox with no messages.
+
+init() - Method in class ntnu.systemutvikling.team6.HmHApplication
+
+initialize() - Method in class ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+This method is used to initialize the available organization page.
+
+initialize() - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+initialize() - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+Initialize method for the front page.
+
+isAnonymous() - Method in class ntnu.systemutvikling.team6.models.Donation
+
+isAnonymous() - Method in class ntnu.systemutvikling.team6.models.Feedback
+
+isAnonymous() - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+isLightMode() - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+isLoggedin() - Method in class ntnu.systemutvikling.team6.controller.components.BaseController
+
+isLoggedin() - Method in class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Checks whether a user is currently logged in.
+
+isUsernameTaken(String) - Method in class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+isValidPassword(String, String) - Method in class ntnu.systemutvikling.team6.security.PasswordHasher
+
+Checks if the password matches a perviously stored hash.
+
+
+L
+
+Language - Enum Class in ntnu.systemutvikling.team6.models.user
+
+Supported application languages.
+
+LoaderScene - Class in ntnu.systemutvikling.team6.controller.components
+
+This class is a utility class that is used to load different scenes in the application.
+
+LoaderScene() - Constructor for class ntnu.systemutvikling.team6.controller.components.LoaderScene
+
+LoadScene(String, ActionEvent, Charity, String) - Static method in class ntnu.systemutvikling.team6.controller.components.LoaderScene
+
+When going to a new scene, this method is called to load the new scene.
+
+login(String, String) - Method in class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Attempts to authenticate a user with the given credentials.
+
+LogoDownloader - Class in ntnu.systemutvikling.team6.scraper
+
+Facilitates downloading of .png images from the individual charity's page on IK, converting them
+to bytecode (blob), and then back to a .png.
+
+LogoDownloader() - Constructor for class ntnu.systemutvikling.team6.scraper.LogoDownloader
+
+logout() - Method in class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Logs out the currently authenticated user by clearing the current user state.
+
+
+M
+
+main(String[]) - Static method in class ntnu.systemutvikling.team6.HmHApplication
+
+main(String[]) - Static method in class ntnu.systemutvikling.team6.Main
+
+Main - Class in ntnu.systemutvikling.team6
+
+Main() - Constructor for class ntnu.systemutvikling.team6.Main
+
+Message - Class in ntnu.systemutvikling.team6.models.user
+
+Represents a message.
+
+Message(String, UUID, String) - Constructor for class ntnu.systemutvikling.team6.models.user.Message
+
+Creates a message with a unique identifier.
+
+Message(String, UUID, String, LocalDate) - Constructor for class ntnu.systemutvikling.team6.models.user.Message
+
+Creates a message with a unique identifier.
+
+
+N
+
+NavbarFooterController - Interface in ntnu.systemutvikling.team6.controller.components
+
+NORMAL_USER - Enum constant in enum class ntnu.systemutvikling.team6.models.user.Role
+
+NORWEGIAN - Enum constant in enum class ntnu.systemutvikling.team6.models.user.Language
+
+ntnu.systemutvikling.team6 - package ntnu.systemutvikling.team6
+
+ntnu.systemutvikling.team6.controller - package ntnu.systemutvikling.team6.controller
+
+ntnu.systemutvikling.team6.controller.components - package ntnu.systemutvikling.team6.controller.components
+
+ntnu.systemutvikling.team6.database - package ntnu.systemutvikling.team6.database
+
+ntnu.systemutvikling.team6.database.DAO - package ntnu.systemutvikling.team6.database.DAO
+
+ntnu.systemutvikling.team6.database.Readers - package ntnu.systemutvikling.team6.database.Readers
+
+ntnu.systemutvikling.team6.models - package ntnu.systemutvikling.team6.models
+
+ntnu.systemutvikling.team6.models.registry - package ntnu.systemutvikling.team6.models.registry
+
+ntnu.systemutvikling.team6.models.user - package ntnu.systemutvikling.team6.models.user
+
+ntnu.systemutvikling.team6.scraper - package ntnu.systemutvikling.team6.scraper
+
+ntnu.systemutvikling.team6.scraper.scraperComponents - package ntnu.systemutvikling.team6.scraper.scraperComponents
+
+ntnu.systemutvikling.team6.security - package ntnu.systemutvikling.team6.security
+
+ntnu.systemutvikling.team6.service - package ntnu.systemutvikling.team6.service
+
+
+O
+
+OrganizationCardController - Class in ntnu.systemutvikling.team6.controller.components
+
+This controller represents the organization card that is displayed on the front page and is
+looped upon in FronpageController.
+
+OrganizationCardController() - Constructor for class ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+
+P
+
+parseJSON(String) - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper
+
+Parses the JSON data using gson and translates the APICharityData into our predefined
+charity classes and puts it in a CharityRegistry object.
+
+PasswordHasher - Class in ntnu.systemutvikling.team6.security
+
+A utility for hashing and verifying passwords using PBKDF2.
+
+PasswordHasher() - Constructor for class ntnu.systemutvikling.team6.security.PasswordHasher
+
+processDonation(Charity, User, double) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+Invoke DAO object to add the donation to the database.
+
+
+R
+
+register(String, String, String, String) - Method in class ntnu.systemutvikling.team6.service.AuthenticationService
+
+Registers a new user account with the provided details.
+
+registerUser(User) - Method in class ntnu.systemutvikling.team6.database.DAO.UserDAO
+
+Gets the user and settings information and sends it to the database through MySQL.
+
+removeCharity(String) - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+removeCharityUUID(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.CharityRegistry
+
+removeDonation(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.DonationRegistry
+
+removeMessage(UUID) - Method in class ntnu.systemutvikling.team6.models.user.Inbox
+
+Removes a message from the inbox list.
+
+removeUserByUUID(UUID) - Method in class ntnu.systemutvikling.team6.models.registry.UserRegistry
+
+Role - Enum Class in ntnu.systemutvikling.team6.models.user
+
+Available users
+
+
+S
+
+scrapeCharityPage() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Runs all the scraper methods at once, updating the object parameters.
+
+setAuthToken(AuthenticationService) - Method in class ntnu.systemutvikling.team6.controller.components.BaseController
+
+setCategories(List) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+Takes a list of categories for the charities and populates a scroll pane with labels containing
+the charities.
+
+setCategory(List) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for categories.
+
+setCharity(Charity) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+This method is used to set the charity that is being displayed on the page.
+
+setCharity(Charity) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+Initialize method for the donation page.
+
+setDescription(String) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for description.
+
+setEmail(String) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+Updates the users email.
+
+setFeedbacks(ArrayList) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for setting feedbacks
+
+setInbox(Inbox) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+setInitialSearch(String) - Method in class ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+This method is used to set the initial search query in the search field.
+
+setKeyValues(String) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for the charity's key values.
+
+setLogoBlob(byte[]) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for the charity's logo Blob.
+
+setLogoURL(String) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for the URL of the charity's logo.
+
+setOrganization(Charity) - Method in class ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+setPassword(String) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+Updates the users password.
+
+setSettings(Settings) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+Settings - Class in ntnu.systemutvikling.team6.models.user
+
+Represents the settings for a user.
+
+Settings() - Constructor for class ntnu.systemutvikling.team6.models.user.Settings
+
+Sets standard settings.
+
+Settings(boolean, Language, boolean) - Constructor for class ntnu.systemutvikling.team6.models.user.Settings
+
+Creates settings for a user.
+
+setUnverified() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for verification status.
+
+setUsername(String) - Method in class ntnu.systemutvikling.team6.models.user.User
+
+Updates the users name.
+
+setUUIDFromString(String) - Method in class ntnu.systemutvikling.team6.models.Charity
+
+setVerified() - Method in class ntnu.systemutvikling.team6.models.Charity
+
+Setter for verification status.
+
+start(Stage) - Method in class ntnu.systemutvikling.team6.HmHApplication
+
+switchToAboutPage(ActionEvent) - Method in interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController
+
+switchToCharityPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+This method is used to switch to the charity page for the selected charity.
+
+switchToCharityPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+switchToCharityPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+This method is used to switch back to the Donation page when the user clicks the back button.
+
+switchToCharityPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+This method is used to switch to the charity page for the selected charity
+
+switchToDonationPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+This method is used to switch to the donation page.
+
+switchToDonationPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+This method is used to switch to the donation page.
+
+switchToDonationPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+switchToDonationPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.FrontpageController
+
+This method is used to switch to the donation page for the selected charity.
+
+switchToFrontPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.CharityPageController
+
+switchToFrontPage(ActionEvent) - Method in interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController
+
+switchToFrontPage(ActionEvent) - Method in class ntnu.systemutvikling.team6.controller.DonationPageController
+
+This method is used to switch back to the front page when the user clicks the back button.
+
+switchToLoginPage(ActionEvent) - Method in interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController
+
+switchToProfilePage(ActionEvent) - Method in interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController
+
+
+T
+
+testConnection() - Method in class ntnu.systemutvikling.team6.database.DatabaseSetup
+
+Connection test for the Database.
+
+toggleAnonymousMode() - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+Toggles anonymous mode on and off
+
+toggleLightMode() - Method in class ntnu.systemutvikling.team6.models.user.Settings
+
+Toggles between light and dark mode
+
+
+U
+
+updateDescription() - Method in class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Scrapes the URL for the paragraphs containing the description of the charity.
+
+URLCharityScraper - Class in ntnu.systemutvikling.team6.scraper.scraperComponents
+
+Class for scraping the description, URL of the logo, string of categories, and key values of the
+charities registered in IK.
+
+URLCharityScraper(String) - Constructor for class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Constructor used for production code.
+
+URLCharityScraper(String, WebDriver) - Constructor for class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+Constructor used for testing.
+
+User - Class in ntnu.systemutvikling.team6.models.user
+
+Represents a user in the system.
+
+User(String, String, String, String, String, String) - Constructor for class ntnu.systemutvikling.team6.models.user.User
+
+Creates a new user taylored for getting info from DATABASE.
+
+User(String, String, String, String, Role, Settings, Inbox) - Constructor for class ntnu.systemutvikling.team6.models.user.User
+
+Creates a new user.
+
+UserDAO - Class in ntnu.systemutvikling.team6.database.DAO
+
+This class is responsible for sending concurrent information about the user to the User database,
+and user settings to the settings database.
+
+UserDAO(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.DAO.UserDAO
+
+UserRegistry - Class in ntnu.systemutvikling.team6.models.registry
+
+UserRegistry() - Constructor for class ntnu.systemutvikling.team6.models.registry.UserRegistry
+
+UserSelect - Class in ntnu.systemutvikling.team6.database.Readers
+
+Data access class responsible for reading user-related data from the database.
+
+UserSelect(DatabaseConnection) - Constructor for class ntnu.systemutvikling.team6.database.Readers.UserSelect
+
+Constructs a new UserSelect with the given database connection.
+
+
+V
+
+valueOf(String) - Static method in enum class ntnu.systemutvikling.team6.models.user.Language
+
+Returns the enum constant of this class with the specified name.
+
+valueOf(String) - Static method in enum class ntnu.systemutvikling.team6.models.user.Role
+
+Returns the enum constant of this class with the specified name.
+
+values() - Static method in enum class ntnu.systemutvikling.team6.models.user.Language
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+values() - Static method in enum class ntnu.systemutvikling.team6.models.user.Role
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+A B C D E F G H I L M N O P R S T U V All Classes and Interfaces | All Packages
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/index.html b/docs/Javadoc/apidocs/index.html
new file mode 100644
index 0000000..3ad49dd
--- /dev/null
+++ b/docs/Javadoc/apidocs/index.html
@@ -0,0 +1,93 @@
+
+
+
+
+Overview (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
Packages
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/javadoc.bat b/docs/Javadoc/apidocs/javadoc.bat
new file mode 100644
index 0000000..2dd4305
--- /dev/null
+++ b/docs/Javadoc/apidocs/javadoc.bat
@@ -0,0 +1 @@
+cmd.exe /X /D /C ""C:\Program Files\Java\jdk-25\bin\javadoc.exe" -J-Duser.language= -J-Duser.country= @options @packages"
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/legal/COPYRIGHT b/docs/Javadoc/apidocs/legal/COPYRIGHT
new file mode 100644
index 0000000..7a42888
--- /dev/null
+++ b/docs/Javadoc/apidocs/legal/COPYRIGHT
@@ -0,0 +1,69 @@
+Copyright © 1993, 2025, Oracle and/or its affiliates.
+All rights reserved.
+
+This software and related documentation are provided under a
+license agreement containing restrictions on use and
+disclosure and are protected by intellectual property laws.
+Except as expressly permitted in your license agreement or
+allowed by law, you may not use, copy, reproduce, translate,
+broadcast, modify, license, transmit, distribute, exhibit,
+perform, publish, or display any part, in any form, or by
+any means. Reverse engineering, disassembly, or
+decompilation of this software, unless required by law for
+interoperability, is prohibited.
+
+The information contained herein is subject to change
+without notice and is not warranted to be error-free. If you
+find any errors, please report them to us in writing.
+
+If this is software or related documentation that is
+delivered to the U.S. Government or anyone licensing it on
+behalf of the U.S. Government, the following notice is
+applicable:
+
+U.S. GOVERNMENT END USERS: Oracle programs, including any
+operating system, integrated software, any programs
+installed on the hardware, and/or documentation, delivered
+to U.S. Government end users are "commercial computer
+software" pursuant to the applicable Federal Acquisition
+Regulation and agency-specific supplemental regulations. As
+such, use, duplication, disclosure, modification, and
+adaptation of the programs, including any operating system,
+integrated software, any programs installed on the hardware,
+and/or documentation, shall be subject to license terms and
+license restrictions applicable to the programs. No other
+rights are granted to the U.S. Government.
+
+This software or hardware is developed for general use in a
+variety of information management applications. It is not
+developed or intended for use in any inherently dangerous
+applications, including applications that may create a risk
+of personal injury. If you use this software or hardware in
+dangerous applications, then you shall be responsible to
+take all appropriate fail-safe, backup, redundancy, and
+other measures to ensure its safe use. Oracle Corporation
+and its affiliates disclaim any liability for any damages
+caused by use of this software or hardware in dangerous
+applications.
+
+Oracle and Java are registered trademarks of Oracle and/or
+its affiliates. Other names may be trademarks of their
+respective owners.
+
+Intel and Intel Xeon are trademarks or registered trademarks
+of Intel Corporation. All SPARC trademarks are used under
+license and are trademarks or registered trademarks of SPARC
+International, Inc. AMD, Opteron, the AMD logo, and the AMD
+Opteron logo are trademarks or registered trademarks of
+Advanced Micro Devices. UNIX is a registered trademark of
+The Open Group.
+
+This software or hardware and documentation may provide
+access to or information on content, products, and services
+from third parties. Oracle Corporation and its affiliates
+are not responsible for and expressly disclaim all
+warranties of any kind with respect to third-party content,
+products, and services. Oracle Corporation and its
+affiliates will not be responsible for any loss, costs, or
+damages incurred due to your access to or use of third-party
+content, products, or services.
diff --git a/docs/Javadoc/apidocs/legal/LICENSE b/docs/Javadoc/apidocs/legal/LICENSE
new file mode 100644
index 0000000..ee860d3
--- /dev/null
+++ b/docs/Javadoc/apidocs/legal/LICENSE
@@ -0,0 +1,118 @@
+Your use of this Program is governed by the No-Fee Terms and Conditions set
+forth below, unless you have received this Program (alone or as part of another
+Oracle product) under an Oracle license agreement (including but not limited to
+the Oracle Master Agreement), in which case your use of this Program is governed
+solely by such license agreement with Oracle.
+
+Oracle No-Fee Terms and Conditions (NFTC)
+
+Definitions
+
+"Oracle" refers to Oracle America, Inc. "You" and "Your" refers to (a) a company
+or organization (each an "Entity") accessing the Programs, if use of the
+Programs will be on behalf of such Entity; or (b) an individual accessing the
+Programs, if use of the Programs will not be on behalf of an Entity.
+"Program(s)" refers to Oracle software provided by Oracle pursuant to the
+following terms and any updates, error corrections, and/or Program Documentation
+provided by Oracle. "Program Documentation" refers to Program user manuals and
+Program installation manuals, if any. If available, Program Documentation may be
+delivered with the Programs and/or may be accessed from
+www.oracle.com/documentation. "Separate Terms" refers to separate license terms
+that are specified in the Program Documentation, readmes or notice files and
+that apply to Separately Licensed Technology. "Separately Licensed Technology"
+refers to Oracle or third party technology that is licensed under Separate Terms
+and not under the terms of this license.
+
+Separately Licensed Technology
+
+Oracle may provide certain notices to You in Program Documentation, readmes or
+notice files in connection with Oracle or third party technology provided as or
+with the Programs. If specified in the Program Documentation, readmes or notice
+files, such technology will be licensed to You under Separate Terms. Your rights
+to use Separately Licensed Technology under Separate Terms are not restricted in
+any way by the terms herein. For clarity, notwithstanding the existence of a
+notice, third party technology that is not Separately Licensed Technology shall
+be deemed part of the Programs licensed to You under the terms of this license.
+
+Source Code for Open Source Software
+
+For software that You receive from Oracle in binary form that is licensed under
+an open source license that gives You the right to receive the source code for
+that binary, You can obtain a copy of the applicable source code from
+https://oss.oracle.com/sources/ or http://www.oracle.com/goto/opensourcecode. If
+the source code for such software was not provided to You with the binary, You
+can also receive a copy of the source code on physical media by submitting a
+written request pursuant to the instructions in the "Written Offer for Source
+Code" section of the latter website.
+
+-------------------------------------------------------------------------------
+
+The following license terms apply to those Programs that are not provided to You
+under Separate Terms.
+
+License Rights and Restrictions
+
+Oracle grants to You, as a recipient of this Program, subject to the conditions
+stated herein, a nonexclusive, nontransferable, limited license to:
+
+(a) internally use the unmodified Programs for the purposes of developing,
+testing, prototyping and demonstrating your applications, and running the
+Program for Your own personal use or internal business operations; and
+
+(b) redistribute the unmodified Program and Program Documentation, under the
+terms of this License, provided that You do not charge Your licensees any fees
+associated with such distribution or use of the Program, including, without
+limitation, fees for products that include or are bundled with a copy of the
+Program or for services that involve the use of the distributed Program.
+
+You may make copies of the Programs to the extent reasonably necessary for
+exercising the license rights granted herein and for backup purposes. You are
+granted the right to use the Programs to provide third party training in the use
+of the Programs and associated Separately Licensed Technology only if there is
+express authorization of such use by Oracle on the Program's download page or in
+the Program Documentation.
+
+Your license is contingent on compliance with the following conditions:
+
+- You do not remove markings or notices of either Oracle's or a licensor's
+ proprietary rights from the Programs or Program Documentation;
+
+- You comply with all U.S. and applicable export control and economic sanctions
+ laws and regulations that govern Your use of the Programs (including technical
+ data);
+
+- You do not cause or permit reverse engineering, disassembly or decompilation
+ of the Programs (except as allowed by law) by You nor allow an associated
+ party to do so.
+
+For clarity, any source code that may be included in the distribution with the
+Programs is provided solely for reference purposes and may not be modified,
+unless such source code is under Separate Terms permitting modification.
+
+Ownership
+
+Oracle or its licensors retain all ownership and intellectual property rights to
+the Programs.
+
+Information Collection
+
+The Programs' installation and/or auto-update processes, if any, may transmit a
+limited amount of data to Oracle or its service provider about those processes
+to help Oracle understand and optimize them. Oracle does not associate the data
+with personally identifiable information. Refer to Oracle's Privacy Policy at
+www.oracle.com/privacy.
+
+Disclaimer of Warranties; Limitation of Liability
+
+THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER
+DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+NONINFRINGEMENT.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL ORACLE BE LIABLE TO YOU FOR
+DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
+LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
diff --git a/docs/Javadoc/apidocs/legal/dejavufonts.md b/docs/Javadoc/apidocs/legal/dejavufonts.md
new file mode 100644
index 0000000..8c9e3cf
--- /dev/null
+++ b/docs/Javadoc/apidocs/legal/dejavufonts.md
@@ -0,0 +1,191 @@
+## DejaVu fonts v2.37
+
+### DejaVu License
+
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
+
+Arev Fonts Copyright
+------------------------------
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and
+associated documentation files (the "Font Software"), to reproduce
+and distribute the modifications to the Bitstream Vera Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Tavmjong Bah" or the word "Arev".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Tavmjong Bah Arev" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the name of Tavmjong Bah shall not
+be used in advertising or otherwise to promote the sale, use or other
+dealings in this Font Software without prior written authorization
+from Tavmjong Bah. For further information, contact: tavmjong @ free
+. fr.
+
+TeX Gyre DJV Math
+-----------------
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+
+Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski
+(on behalf of TeX users groups) are in public domain.
+
+Letters imported from Euler Fraktur from AMSfonts are (c) American
+Mathematical Society (see below).
+Bitstream Vera Fonts Copyright
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
+is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute,
+and/or sell copies of the Font Software, and to permit persons to whom
+the Font Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional
+glyphs or characters may be added to the Fonts, only if the fonts are
+renamed
+to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or
+Font Software
+that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but
+no copy
+of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
+SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE
+THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+Except as contained in this notice, the names of GNOME, the GNOME
+Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the GNOME Foundation or Bitstream Inc., respectively.
+For further information, contact: fonts at gnome dot org.
+
+AMSFonts (v. 2.2) copyright
+
+The PostScript Type 1 implementation of the AMSFonts produced by and
+previously distributed by Blue Sky Research and Y&Y, Inc. are now freely
+available for general use. This has been accomplished through the
+cooperation
+of a consortium of scientific publishers with Blue Sky Research and Y&Y.
+Members of this consortium include:
+
+Elsevier Science IBM Corporation Society for Industrial and Applied
+Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS)
+
+In order to assure the authenticity of these fonts, copyright will be
+held by
+the American Mathematical Society. This is not meant to restrict in any way
+the legitimate use of the fonts, such as (but not limited to) electronic
+distribution of documents containing these fonts, inclusion of these fonts
+into other public domain or commercial font collections or computer
+applications, use of the outline data to create derivative fonts and/or
+faces, etc. However, the AMS does require that the AMS copyright notice be
+removed from any derivative versions of the fonts which have been altered in
+any way. In addition, to ensure the fidelity of TeX documents using Computer
+Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces,
+has requested that any alterations which yield different font metrics be
+given a different name.
+
+
diff --git a/docs/Javadoc/apidocs/legal/jquery.md b/docs/Javadoc/apidocs/legal/jquery.md
new file mode 100644
index 0000000..a763ec6
--- /dev/null
+++ b/docs/Javadoc/apidocs/legal/jquery.md
@@ -0,0 +1,26 @@
+## jQuery v3.7.1
+
+### jQuery License
+```
+jQuery v 3.7.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/docs/Javadoc/apidocs/legal/jqueryUI.md b/docs/Javadoc/apidocs/legal/jqueryUI.md
new file mode 100644
index 0000000..46bfbaa
--- /dev/null
+++ b/docs/Javadoc/apidocs/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.14.1
+
+### jQuery UI License
+```
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/docs/Javadoc/apidocs/member-search-index.js b/docs/Javadoc/apidocs/member-search-index.js
new file mode 100644
index 0000000..ebd9a0f
--- /dev/null
+++ b/docs/Javadoc/apidocs/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"ntnu.systemutvikling.team6.service","c":"APIToDatabaseService","l":"addAPIDataToTable(List)","u":"addAPIDataToTable(java.util.List)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"addCharity(Charity)","u":"addCharity(ntnu.systemutvikling.team6.models.Charity)"},{"p":"ntnu.systemutvikling.team6.database.DAO","c":"DonationDAO","l":"addDonation(Charity, User, double)","u":"addDonation(ntnu.systemutvikling.team6.models.Charity,ntnu.systemutvikling.team6.models.user.User,double)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"DonationRegistry","l":"addDonation(Donation)","u":"addDonation(ntnu.systemutvikling.team6.models.Donation)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Inbox","l":"addMessage(Message)","u":"addMessage(ntnu.systemutvikling.team6.models.user.Message)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"UserRegistry","l":"addUser(User)","u":"addUser(ntnu.systemutvikling.team6.models.user.User)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"APICharityData(String, String, String, String, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean)","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityScraper","l":"APICharityScraper(HttpClient)","u":"%3Cinit%3E(java.net.http.HttpClient)","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"APIToDatabaseService","l":"APIToDatabaseService(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"AuthenticationService(UserSelect, UserDAO)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.Readers.UserSelect,ntnu.systemutvikling.team6.database.DAO.UserDAO)","k":"3"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"BaseController","l":"authToken","k":"1"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"BaseController","l":"authTokenisSet()"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"authTokenisSet()"},{"p":"ntnu.systemutvikling.team6.controller","c":"AvailableOrganizationController","l":"AvailableOrganizationController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"BaseController","l":"BaseController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"CategorySelect","l":"CategorySelect(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"changeLanguage(Language)","u":"changeLanguage(ntnu.systemutvikling.team6.models.user.Language)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Role","l":"CHARITY_USER","k":"0"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"Charity(String, String, Boolean, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"Charity(String, String, String, boolean, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"Charity(String, String, String, String, String, boolean, String, String, String, byte[])","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String,java.lang.String,java.lang.String,byte[])","k":"3"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"CharityPageController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"CharityRegistry()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"CharitySelect","l":"CharitySelect(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"CharityService","l":"CharityService()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityScraper","l":"checkConnection()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"checkPassword(String)","u":"checkPassword(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"closeDriver()"},{"p":"ntnu.systemutvikling.team6.scraper","c":"LogoDownloader","l":"convertBlobToPNG(byte[], String)","u":"convertBlobToPNG(byte[],java.lang.String)","k":"6"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseSetup","l":"createTables()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"createWait()"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseConnection","l":"DatabaseConnection()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseConnection","l":"DatabaseConnection(String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseSetup","l":"DatabaseSetup(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"Donate(ActionEvent)","u":"Donate(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"Donation(double, LocalDate, Charity, User)","u":"%3Cinit%3E(double,java.time.LocalDate,ntnu.systemutvikling.team6.models.Charity,ntnu.systemutvikling.team6.models.user.User)","k":"3"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"Donation(String, double, LocalDate, Charity, User, boolean)","u":"%3Cinit%3E(java.lang.String,double,java.time.LocalDate,ntnu.systemutvikling.team6.models.Charity,ntnu.systemutvikling.team6.models.user.User,boolean)","k":"3"},{"p":"ntnu.systemutvikling.team6.database.DAO","c":"DonationDAO","l":"DonationDAO(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"DonationPageController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"DonationRegistry","l":"DonationRegistry()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"DonationSelect","l":"DonationSelect(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"DonationService","l":"DonationService()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper","c":"LogoDownloader","l":"downloadImageAsBlob(String)","u":"downloadImageAsBlob(java.lang.String)","k":"6"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Language","l":"ENGLISH","k":"0"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"Feedback(String, User, String, LocalDate)","u":"%3Cinit%3E(java.lang.String,ntnu.systemutvikling.team6.models.user.User,java.lang.String,java.time.LocalDate)","k":"3"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"Feedback(User, String)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.models.user.User,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"FeedbackService","l":"FeedbackService()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"findCharityByOrgnumber(String)","u":"findCharityByOrgnumber(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"findCharityByUUID(UUID)","u":"findCharityByUUID(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"DonationRegistry","l":"findDonationById(UUID)","u":"findDonationById(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"findElement(By)","u":"findElement(org.openqa.selenium.By)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"findElements(By)","u":"findElements(org.openqa.selenium.By)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Inbox","l":"findMessageById(UUID)","u":"findMessageById(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"UserRegistry","l":"findUserById(UUID)","u":"findUserById(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"FrontpageController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper","c":"FullCharityScrape","l":"FullCharityScrape()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"getAllCharities()"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"DonationRegistry","l":"getAllDonations()"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"UserRegistry","l":"getAllUsers()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getAmount()"},{"p":"ntnu.systemutvikling.team6.scraper","c":"FullCharityScrape","l":"getAPIAndURLCharityData()"},{"p":"ntnu.systemutvikling.team6.scraper","c":"FullCharityScrape","l":"getAPIScraper()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"getCategories()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"CategorySelect","l":"getCategoriesFromDB()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getCategory()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"CharitySelect","l":"getCharitiesFromDB()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getCharity()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getCharityId()"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"getComment()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"getContent()"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"getCurrentUser()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getDate()"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"getDate()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getDescription()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"getDescription()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getDisplayName()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"DonationSelect","l":"getDonationFromDB()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getDonationID()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"getDonor()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getEmail()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"CharitySelect","l":"getFeedbackforCharityUUID(String)","u":"getFeedbackforCharityUUID(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"getFeedbackId()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getFeedbacks()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"getFrom()"},{"p":"ntnu.systemutvikling.team6.security","c":"PasswordHasher","l":"getHashPassword(String)","u":"getHashPassword(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"getId()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getId()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getInbox()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"getInboxForUser(String)","u":"getInboxForUser(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"getIs_pre_approved()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityScraper","l":"getJSONData()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getKeyValues()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"getKeyValues()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"getLanguage()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getLogoBlob()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getLogoURL()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"getLogoURL()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Inbox","l":"getMessages()"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseConnection","l":"getMySqlConnection()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getName()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"getName()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getOrg_number()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"getOrg_number()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getPasswordHash()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getPreApproved()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getRole()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getSettings()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"getSettingsForUser(String)","u":"getSettingsForUser(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getStatus()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"getStatus()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"getTimeAndDate()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"getTitle()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityData","l":"getUrl()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getURL()"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"getUser()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"getUserFromDBUsernameAndPassword(String, String)","u":"getUserFromDBUsernameAndPassword(java.lang.String,java.lang.String)"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"getUserFromDBUuid(String)","u":"getUserFromDBUuid(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"getUsername()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"getUsersFromDB()"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"getUUID()"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"handleCategoryFilterChange(ActionEvent)","u":"handleCategoryFilterChange(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"handleFrontSearch(ActionEvent)","u":"handleFrontSearch(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"handleHomepageClick(ActionEvent)","u":"handleHomepageClick(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"handleSearch(ActionEvent)","u":"handleSearch(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"NavbarFooterController","l":"handleSearch(ActionEvent)","u":"handleSearch(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"handleSearch(ActionEvent)","u":"handleSearch(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6","c":"HmHApplication","l":"HmHApplication()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Inbox","l":"Inbox()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6","c":"HmHApplication","l":"init()"},{"p":"ntnu.systemutvikling.team6.controller","c":"AvailableOrganizationController","l":"initialize()"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"initialize()"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"initialize()"},{"p":"ntnu.systemutvikling.team6.models","c":"Donation","l":"isAnonymous()"},{"p":"ntnu.systemutvikling.team6.models","c":"Feedback","l":"isAnonymous()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"isAnonymous()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"isLightMode()"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"BaseController","l":"isLoggedin()"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"isLoggedin()"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"isUsernameTaken(String)","u":"isUsernameTaken(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.security","c":"PasswordHasher","l":"isValidPassword(String, String)","u":"isValidPassword(java.lang.String,java.lang.String)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"LoaderScene","l":"LoaderScene()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"LoaderScene","l":"LoadScene(String, ActionEvent, Charity, String)","u":"LoadScene(java.lang.String,javafx.event.ActionEvent,ntnu.systemutvikling.team6.models.Charity,java.lang.String)","k":"6"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"login(String, String)","u":"login(java.lang.String,java.lang.String)"},{"p":"ntnu.systemutvikling.team6.scraper","c":"LogoDownloader","l":"LogoDownloader()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"logout()"},{"p":"ntnu.systemutvikling.team6","c":"Main","l":"Main()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6","c":"HmHApplication","l":"main(String[])","u":"main(java.lang.String[])","k":"6"},{"p":"ntnu.systemutvikling.team6","c":"Main","l":"main(String[])","u":"main(java.lang.String[])","k":"6"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"Message(String, UUID, String)","u":"%3Cinit%3E(java.lang.String,java.util.UUID,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Message","l":"Message(String, UUID, String, LocalDate)","u":"%3Cinit%3E(java.lang.String,java.util.UUID,java.lang.String,java.time.LocalDate)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Role","l":"NORMAL_USER","k":"0"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Language","l":"NORWEGIAN","k":"0"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"OrganizationCardController","l":"OrganizationCardController()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"APICharityScraper","l":"parseJSON(String)","u":"parseJSON(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.security","c":"PasswordHasher","l":"PasswordHasher()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"processDonation(Charity, User, double)","u":"processDonation(ntnu.systemutvikling.team6.models.Charity,ntnu.systemutvikling.team6.models.user.User,double)"},{"p":"ntnu.systemutvikling.team6.service","c":"AuthenticationService","l":"register(String, String, String, String)","u":"register(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"ntnu.systemutvikling.team6.database.DAO","c":"UserDAO","l":"registerUser(User)","u":"registerUser(ntnu.systemutvikling.team6.models.user.User)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"removeCharity(String)","u":"removeCharity(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"CharityRegistry","l":"removeCharityUUID(UUID)","u":"removeCharityUUID(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"DonationRegistry","l":"removeDonation(UUID)","u":"removeDonation(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Inbox","l":"removeMessage(UUID)","u":"removeMessage(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"UserRegistry","l":"removeUserByUUID(UUID)","u":"removeUserByUUID(java.util.UUID)"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"scrapeCharityPage()"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"BaseController","l":"setAuthToken(AuthenticationService)","u":"setAuthToken(ntnu.systemutvikling.team6.service.AuthenticationService)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"setCategories(List)","u":"setCategories(java.util.List)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setCategory(List)","u":"setCategory(java.util.List)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"setCharity(Charity)","u":"setCharity(ntnu.systemutvikling.team6.models.Charity)"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"setCharity(Charity)","u":"setCharity(ntnu.systemutvikling.team6.models.Charity)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setDescription(String)","u":"setDescription(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"setEmail(String)","u":"setEmail(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setFeedbacks(ArrayList)","u":"setFeedbacks(java.util.ArrayList)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"setInbox(Inbox)","u":"setInbox(ntnu.systemutvikling.team6.models.user.Inbox)"},{"p":"ntnu.systemutvikling.team6.controller","c":"AvailableOrganizationController","l":"setInitialSearch(String)","u":"setInitialSearch(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setKeyValues(String)","u":"setKeyValues(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setLogoBlob(byte[])"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setLogoURL(String)","u":"setLogoURL(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"OrganizationCardController","l":"setOrganization(Charity)","u":"setOrganization(ntnu.systemutvikling.team6.models.Charity)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"setPassword(String)","u":"setPassword(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"setSettings(Settings)","u":"setSettings(ntnu.systemutvikling.team6.models.user.Settings)"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"Settings()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"Settings(boolean, Language, boolean)","u":"%3Cinit%3E(boolean,ntnu.systemutvikling.team6.models.user.Language,boolean)","k":"3"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setUnverified()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"setUsername(String)","u":"setUsername(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setUUIDFromString(String)","u":"setUUIDFromString(java.lang.String)"},{"p":"ntnu.systemutvikling.team6.models","c":"Charity","l":"setVerified()"},{"p":"ntnu.systemutvikling.team6","c":"HmHApplication","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"NavbarFooterController","l":"switchToAboutPage(ActionEvent)","u":"switchToAboutPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"AvailableOrganizationController","l":"switchToCharityPage(ActionEvent)","u":"switchToCharityPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"OrganizationCardController","l":"switchToCharityPage(ActionEvent)","u":"switchToCharityPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"switchToCharityPage(ActionEvent)","u":"switchToCharityPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"switchToCharityPage(ActionEvent)","u":"switchToCharityPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"AvailableOrganizationController","l":"switchToDonationPage(ActionEvent)","u":"switchToDonationPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"switchToDonationPage(ActionEvent)","u":"switchToDonationPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"OrganizationCardController","l":"switchToDonationPage(ActionEvent)","u":"switchToDonationPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"FrontpageController","l":"switchToDonationPage(ActionEvent)","u":"switchToDonationPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"CharityPageController","l":"switchToFrontPage(ActionEvent)","u":"switchToFrontPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"NavbarFooterController","l":"switchToFrontPage(ActionEvent)","u":"switchToFrontPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller","c":"DonationPageController","l":"switchToFrontPage(ActionEvent)","u":"switchToFrontPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"NavbarFooterController","l":"switchToLoginPage(ActionEvent)","u":"switchToLoginPage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.controller.components","c":"NavbarFooterController","l":"switchToProfilePage(ActionEvent)","u":"switchToProfilePage(javafx.event.ActionEvent)"},{"p":"ntnu.systemutvikling.team6.database","c":"DatabaseSetup","l":"testConnection()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"toggleAnonymousMode()"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Settings","l":"toggleLightMode()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"updateDescription()"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"URLCharityScraper(String)","u":"%3Cinit%3E(java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","c":"URLCharityScraper","l":"URLCharityScraper(String, WebDriver)","u":"%3Cinit%3E(java.lang.String,org.openqa.selenium.WebDriver)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"User(String, String, String, String, Role, Settings, Inbox)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,ntnu.systemutvikling.team6.models.user.Role,ntnu.systemutvikling.team6.models.user.Settings,ntnu.systemutvikling.team6.models.user.Inbox)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"User","l":"User(String, String, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)","k":"3"},{"p":"ntnu.systemutvikling.team6.database.DAO","c":"UserDAO","l":"UserDAO(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.registry","c":"UserRegistry","l":"UserRegistry()","u":"%3Cinit%3E()","k":"3"},{"p":"ntnu.systemutvikling.team6.database.Readers","c":"UserSelect","l":"UserSelect(DatabaseConnection)","u":"%3Cinit%3E(ntnu.systemutvikling.team6.database.DatabaseConnection)","k":"3"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)","k":"6"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Role","l":"valueOf(String)","u":"valueOf(java.lang.String)","k":"6"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Language","l":"values()","k":"6"},{"p":"ntnu.systemutvikling.team6.models.user","c":"Role","l":"values()","k":"6"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/module-search-index.js b/docs/Javadoc/apidocs/module-search-index.js
new file mode 100644
index 0000000..0d59754
--- /dev/null
+++ b/docs/Javadoc/apidocs/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/HmHApplication.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/HmHApplication.html
new file mode 100644
index 0000000..4230919
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/HmHApplication.html
@@ -0,0 +1,230 @@
+
+
+
+
+HmHApplication (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Nested Class Summary
+Field Summary
+Constructor Summary
+Method Summary
+Constructor Details
+
+HmHApplication()
+
+
+Method Details
+
+start(Stage)
+init()
+main(String[])
+
+
+
+
+
+
+
+java.lang.Object
+
javafx.application.Application
+
ntnu.systemutvikling.team6.HmHApplication
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from class javafx.application.Application
+javafx.application.Application.Parameters
+
+
+
+
+
+Field Summary
+
+
Fields inherited from class javafx.application.Application
+STYLESHEET_CASPIAN, STYLESHEET_MODENA
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
static void
+
+
+
void
+
start (javafx.stage.Stage stage)
+
+
+
+
+
+
Methods inherited from class javafx.application.Application
+getHostServices, getParameters, getUserAgentStylesheet, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/Main.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/Main.html
new file mode 100644
index 0000000..10ad40e
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/Main.html
@@ -0,0 +1,170 @@
+
+
+
+
+Main (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Main()
+
+
+Method Details
+
+main(String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/HmHApplication.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/HmHApplication.html
new file mode 100644
index 0000000..f2c98c0
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/HmHApplication.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.HmHApplication (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.HmHApplication
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/Main.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/Main.html
new file mode 100644
index 0000000..9d6a1ad
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/class-use/Main.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.Main (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.Main
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/AvailableOrganizationController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/AvailableOrganizationController.html
new file mode 100644
index 0000000..ab4fece
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/AvailableOrganizationController.html
@@ -0,0 +1,263 @@
+
+
+
+
+AvailableOrganizationController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Field Summary
+Constructor Summary
+Method Summary
+Constructor Details
+
+AvailableOrganizationController()
+
+
+Method Details
+
+initialize()
+setInitialSearch(String)
+switchToCharityPage(ActionEvent)
+switchToDonationPage(ActionEvent)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
This method is used to initialize the available organization page.
+
+
void
+
+
+
This method is used to set the initial search query in the search field.
+
+
void
+
+
+
This method is used to switch to the charity page for the selected charity.
+
+
void
+
+
+
This method is used to switch to the donation page.
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AvailableOrganizationController
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+switchToDonationPage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/CharityPageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/CharityPageController.html
new file mode 100644
index 0000000..dcc3656
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/CharityPageController.html
@@ -0,0 +1,286 @@
+
+
+
+
+CharityPageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+CharityPageController()
+
+
+Method Details
+
+initialize()
+setCharity(Charity)
+switchToDonationPage(ActionEvent)
+switchToFrontPage(ActionEvent)
+handleSearch(ActionEvent)
+handleHomepageClick(ActionEvent)
+setCategories(List)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Opens OS default webbrowser and loads the url of the charity on click.
+
+
void
+
+
+
This method is used to search for charities based on the input in the search field.
+
+
void
+
+
+
void
+
+
+
Takes a list of categories for the charities and populates a scroll pane with labels containing
+the charities.
+
+
void
+
+
+
This method is used to set the charity that is being displayed on the page.
+
+
void
+
+
+
This method is used to switch to the donation page.
+
+
void
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+CharityPageController
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+switchToDonationPage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/DonationPageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/DonationPageController.html
new file mode 100644
index 0000000..838e71a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/DonationPageController.html
@@ -0,0 +1,285 @@
+
+
+
+
+DonationPageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DonationPageController()
+
+
+Method Details
+
+setCharity(Charity)
+switchToFrontPage(ActionEvent)
+switchToCharityPage(ActionEvent)
+Donate(ActionEvent)
+processDonation(Charity, User, double)
+handleSearch(ActionEvent)
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.controller.DonationPageController
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
Donate (javafx.event.ActionEvent event)
+
+
This method is used to process the donation when the user clicks the donate button.
+
+
void
+
+
+
This method is used to handle the search action when the user clicks the search button.
+
+
void
+
+
+
Invoke DAO object to add the donation to the database.
+
+
void
+
+
+
Initialize method for the donation page.
+
+
void
+
+
+
This method is used to switch back to the Donation page when the user clicks the back button.
+
+
void
+
+
+
This method is used to switch back to the front page when the user clicks the back button.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+DonationPageController
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/FrontpageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/FrontpageController.html
new file mode 100644
index 0000000..69a8674
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/FrontpageController.html
@@ -0,0 +1,298 @@
+
+
+
+
+FrontpageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Field Summary
+Constructor Summary
+Method Summary
+Constructor Details
+
+FrontpageController()
+
+
+Method Details
+
+authTokenisSet()
+initialize()
+switchToCharityPage(ActionEvent)
+switchToDonationPage(ActionEvent)
+handleCategoryFilterChange(ActionEvent)
+handleFrontSearch(ActionEvent)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
protected void
+
+
+
void
+
+
+
This method is used to filter the charities based on the selected filters.
+
+
void
+
+
+
This method is used to search for charities based on the input in the search field.
+
+
void
+
+
+
Initialize method for the front page.
+
+
void
+
+
+
This method is used to switch to the charity page for the selected charity
+
+
void
+
+
+
This method is used to switch to the donation page for the selected charity.
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+switchToDonationPage
+
+
+
+
+
+handleCategoryFilterChange
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/AvailableOrganizationController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/AvailableOrganizationController.html
new file mode 100644
index 0000000..be977d6
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/AvailableOrganizationController.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.AvailableOrganizationController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.AvailableOrganizationController
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/CharityPageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/CharityPageController.html
new file mode 100644
index 0000000..3c20308
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/CharityPageController.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.CharityPageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.CharityPageController
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/DonationPageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/DonationPageController.html
new file mode 100644
index 0000000..9433698
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/DonationPageController.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.DonationPageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.DonationPageController
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/FrontpageController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/FrontpageController.html
new file mode 100644
index 0000000..cbccec9
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/class-use/FrontpageController.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.FrontpageController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.FrontpageController
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/BaseController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/BaseController.html
new file mode 100644
index 0000000..d5fd402
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/BaseController.html
@@ -0,0 +1,235 @@
+
+
+
+
+BaseController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Field Summary
+Constructor Summary
+Method Summary
+Field Details
+
+authToken
+
+
+Constructor Details
+
+BaseController()
+
+
+Method Details
+
+setAuthToken(AuthenticationService)
+authTokenisSet()
+isLoggedin()
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.controller.components.BaseController
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
protected void
+
+
+
protected boolean
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/LoaderScene.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/LoaderScene.html
new file mode 100644
index 0000000..55eb4f4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/LoaderScene.html
@@ -0,0 +1,191 @@
+
+
+
+
+LoaderScene (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+LoaderScene()
+
+
+Method Details
+
+LoadScene(String, ActionEvent, Charity, String)
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.controller.components.LoaderScene
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
static void
+
+
+
When going to a new scene, this method is called to load the new scene.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/NavbarFooterController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/NavbarFooterController.html
new file mode 100644
index 0000000..4cce3b2
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/NavbarFooterController.html
@@ -0,0 +1,180 @@
+
+
+
+
+NavbarFooterController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Method Summary
+Method Details
+
+switchToFrontPage(ActionEvent)
+switchToAboutPage(ActionEvent)
+switchToProfilePage(ActionEvent)
+handleSearch(ActionEvent)
+switchToLoginPage(ActionEvent)
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Default Methods
+
+
+
+
+
+
default void
+
+
+
default void
+
+
+
default void
+
+
+
default void
+
+
+
default void
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/OrganizationCardController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/OrganizationCardController.html
new file mode 100644
index 0000000..5e359d0
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/OrganizationCardController.html
@@ -0,0 +1,197 @@
+
+
+
+
+OrganizationCardController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+OrganizationCardController()
+
+
+Method Details
+
+setOrganization(Charity)
+switchToCharityPage(ActionEvent)
+switchToDonationPage(ActionEvent)
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OrganizationCardController
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+switchToDonationPage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/BaseController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/BaseController.html
new file mode 100644
index 0000000..eecd469
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/BaseController.html
@@ -0,0 +1,98 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.components.BaseController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
class
+
+
+
This controller represents the available organization page, where the user can search for a
+charity and choose to donate to it.
+
+
class
+
+
+
Landing page's controller.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/LoaderScene.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/LoaderScene.html
new file mode 100644
index 0000000..73d6c2d
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/LoaderScene.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.components.LoaderScene (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.components.LoaderScene
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/NavbarFooterController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/NavbarFooterController.html
new file mode 100644
index 0000000..1a39dc0
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/NavbarFooterController.html
@@ -0,0 +1,98 @@
+
+
+
+
+Uses of Interface ntnu.systemutvikling.team6.controller.components.NavbarFooterController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
class
+
+
+
This controller represents the available organization page, where the user can search for a
+charity and choose to donate to it.
+
+
class
+
+
+
Landing page's controller.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/OrganizationCardController.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/OrganizationCardController.html
new file mode 100644
index 0000000..4e2b70c
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/class-use/OrganizationCardController.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.controller.components.OrganizationCardController (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller.components.OrganizationCardController
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-summary.html
new file mode 100644
index 0000000..3891b01
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-summary.html
@@ -0,0 +1,115 @@
+
+
+
+
+ntnu.systemutvikling.team6.controller.components (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes
+
+
+
+
+
+
+
+
+
This class is a utility class that is used to load different scenes in the application.
+
+
+
+
+
+
This controller represents the organization card that is displayed on the front page and is
+looped upon in FronpageController.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-tree.html
new file mode 100644
index 0000000..a71af99
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-tree.html
@@ -0,0 +1,86 @@
+
+
+
+
+ntnu.systemutvikling.team6.controller.components Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-use.html
new file mode 100644
index 0000000..d5b17f0
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/components/package-use.html
@@ -0,0 +1,88 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.controller.components (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-summary.html
new file mode 100644
index 0000000..25346bb
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-summary.html
@@ -0,0 +1,131 @@
+
+
+
+
+ntnu.systemutvikling.team6.controller (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
This controller represents the available organization page, where the user can search for a
+charity and choose to donate to it.
+
+
+
+
This controller represents the charity page, where the user can read about the charity and choose
+to donate to it.
+
+
+
+
This controller represents the donation page, where the user can enter a donation amount and
+confirm their donation to the charity.
+
+
+
+
Landing page's controller.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-tree.html
new file mode 100644
index 0000000..20ea312
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-tree.html
@@ -0,0 +1,85 @@
+
+
+
+
+ntnu.systemutvikling.team6.controller Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-use.html
new file mode 100644
index 0000000..7d6388c
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/controller/package-use.html
@@ -0,0 +1,65 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.controller (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.controller
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/DonationDAO.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/DonationDAO.html
new file mode 100644
index 0000000..b5b2eb6
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/DonationDAO.html
@@ -0,0 +1,186 @@
+
+
+
+
+DonationDAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DonationDAO(DatabaseConnection)
+
+
+Method Details
+
+addDonation(Charity, User, double)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Gets the total ammount of donations for a given charity, and sends it to the database throught
+MySQL.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/UserDAO.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/UserDAO.html
new file mode 100644
index 0000000..71fd6fe
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/UserDAO.html
@@ -0,0 +1,187 @@
+
+
+
+
+UserDAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+UserDAO(DatabaseConnection)
+
+
+Method Details
+
+registerUser(User)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
boolean
+
+
+
Gets the user and settings information and sends it to the database through MySQL.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/DonationDAO.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/DonationDAO.html
new file mode 100644
index 0000000..3ee95d2
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/DonationDAO.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.DAO.DonationDAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.database.DAO.DonationDAO
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/UserDAO.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/UserDAO.html
new file mode 100644
index 0000000..68f72ea
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/class-use/UserDAO.html
@@ -0,0 +1,93 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.DAO.UserDAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructs an AuthenticationService with the specified data access objects.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-summary.html
new file mode 100644
index 0000000..4406dbf
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-summary.html
@@ -0,0 +1,112 @@
+
+
+
+
+ntnu.systemutvikling.team6.database.DAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
This class is responsible for sending concurrent information about the donation to the Donation
+Database.
+
+
+
+
This class is responsible for sending concurrent information about the user to the User database,
+and user settings to the settings database.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-tree.html
new file mode 100644
index 0000000..246482b
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-tree.html
@@ -0,0 +1,79 @@
+
+
+
+
+ntnu.systemutvikling.team6.database.DAO Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+Class Hierarchy
+
+java.lang.Object
+
+ntnu.systemutvikling.team6.database.DAO.DonationDAO
+ntnu.systemutvikling.team6.database.DAO.UserDAO
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-use.html
new file mode 100644
index 0000000..54cd129
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DAO/package-use.html
@@ -0,0 +1,89 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.database.DAO (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This class is responsible for sending concurrent information about the user to the User database,
+and user settings to the settings database.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseConnection.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseConnection.html
new file mode 100644
index 0000000..0f7de35
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseConnection.html
@@ -0,0 +1,220 @@
+
+
+
+
+DatabaseConnection (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DatabaseConnection()
+DatabaseConnection(String, String, String)
+
+
+Method Details
+
+getMySqlConnection()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new DatabaseConnection using database credentials retrieved from system
+environment variables.
+
+
+
+
Constructs a new DatabaseConnection using database credentials
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Creates and returns a new MySQL database connection.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseSetup.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseSetup.html
new file mode 100644
index 0000000..90df863
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/DatabaseSetup.html
@@ -0,0 +1,205 @@
+
+
+
+
+DatabaseSetup (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DatabaseSetup(DatabaseConnection)
+
+
+Method Details
+
+testConnection()
+createTables()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Contractor for DatabaseManager.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Creates the Charities and Donations tables if they do not already exist.
+
+
boolean
+
+
+
Connection test for the Database.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CategorySelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CategorySelect.html
new file mode 100644
index 0000000..5fb6b1e
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CategorySelect.html
@@ -0,0 +1,188 @@
+
+
+
+
+CategorySelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+CategorySelect(DatabaseConnection)
+
+
+Method Details
+
+getCategoriesFromDB()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new CharitySelect with the given database connection.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Retrieves all the categories listed in the Category table of the database.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CharitySelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CharitySelect.html
new file mode 100644
index 0000000..cec3e3a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/CharitySelect.html
@@ -0,0 +1,235 @@
+
+
+
+
+CharitySelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+CharitySelect(DatabaseConnection)
+
+
+Method Details
+
+getCharitiesFromDB()
+getFeedbackforCharityUUID(String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new CharitySelect with the given database connection.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Retrieves all charities from the database, including their associated feedback and the users
+who submitted each piece of feedback.
+
+
+
+
+
A helper function that retrieves all feedback entries associated with a specific charity,
+identified by its UUID.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+getFeedbackforCharityUUID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/DonationSelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/DonationSelect.html
new file mode 100644
index 0000000..a01f43a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/DonationSelect.html
@@ -0,0 +1,203 @@
+
+
+
+
+DonationSelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DonationSelect(DatabaseConnection)
+
+
+Method Details
+
+getDonationFromDB()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new DonationSelect with the given database connection.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Retrieves all donations from the database, each populated with its associated
Charity.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/UserSelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/UserSelect.html
new file mode 100644
index 0000000..6c52e52
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/UserSelect.html
@@ -0,0 +1,330 @@
+
+
+
+
+UserSelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+UserSelect(DatabaseConnection)
+
+
+Method Details
+
+isUsernameTaken(String)
+getUserFromDBUsernameAndPassword(String, String)
+getUserFromDBUuid(String)
+getUsersFromDB()
+getSettingsForUser(String)
+getInboxForUser(String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new UserSelect with the given database connection.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Retrieves the
Inbox for a specific user by their UUID, populated with all of their
+
Message objects.
+
+
+
+
+
Retrieves the
Settings for a specific user by their UUID.
+
+
+
+
+
Retrieves a single
User from the database matching the given username and password.
+
+
+
+
+
Retrieves a single
User from the database by their UUID.
+
+
+
+
+
Retrieves all users from the database, each fully populated with their
Settings and
+
Inbox.
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+getUserFromDBUsernameAndPassword
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CategorySelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CategorySelect.html
new file mode 100644
index 0000000..6c36972
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CategorySelect.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.Readers.CategorySelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.database.Readers.CategorySelect
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CharitySelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CharitySelect.html
new file mode 100644
index 0000000..21b84b2
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/CharitySelect.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.Readers.CharitySelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.database.Readers.CharitySelect
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/DonationSelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/DonationSelect.html
new file mode 100644
index 0000000..a71c25e
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/DonationSelect.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.Readers.DonationSelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.database.Readers.DonationSelect
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/UserSelect.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/UserSelect.html
new file mode 100644
index 0000000..f5751c1
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/class-use/UserSelect.html
@@ -0,0 +1,93 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.Readers.UserSelect (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructs an AuthenticationService with the specified data access objects.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-summary.html
new file mode 100644
index 0000000..990198a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-summary.html
@@ -0,0 +1,118 @@
+
+
+
+
+ntnu.systemutvikling.team6.database.Readers (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Data access class responsible for getting all the distinct categories from the database.
+
+
+
+
Data access class responsible for reading charity-related data from the database.
+
+
+
+
Data access class responsible for reading donation data from the database.
+
+
+
+
Data access class responsible for reading user-related data from the database.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-tree.html
new file mode 100644
index 0000000..de3ad6e
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-tree.html
@@ -0,0 +1,81 @@
+
+
+
+
+ntnu.systemutvikling.team6.database.Readers Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-use.html
new file mode 100644
index 0000000..187c76a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/Readers/package-use.html
@@ -0,0 +1,88 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.database.Readers (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Data access class responsible for reading user-related data from the database.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseConnection.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseConnection.html
new file mode 100644
index 0000000..52f41b3
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseConnection.html
@@ -0,0 +1,162 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.DatabaseConnection (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contractor for DatabaseManager.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructs a new CharitySelect with the given database connection.
+
+
+
+
+
Constructs a new CharitySelect with the given database connection.
+
+
+
+
+
Constructs a new DonationSelect with the given database connection.
+
+
+
+
+
Constructs a new UserSelect with the given database connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contractor for APIToDatabaseService.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseSetup.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseSetup.html
new file mode 100644
index 0000000..75df7bb
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/class-use/DatabaseSetup.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.database.DatabaseSetup (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.database.DatabaseSetup
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-summary.html
new file mode 100644
index 0000000..d42b8f4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-summary.html
@@ -0,0 +1,122 @@
+
+
+
+
+ntnu.systemutvikling.team6.database (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
Manages the Database with MySQL tables and test connection.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-tree.html
new file mode 100644
index 0000000..b212676
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-tree.html
@@ -0,0 +1,79 @@
+
+
+
+
+ntnu.systemutvikling.team6.database Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-use.html
new file mode 100644
index 0000000..7fb2677
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/database/package-use.html
@@ -0,0 +1,133 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.database (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a reusable database connection through enviroment variables.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Charity.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Charity.html
new file mode 100644
index 0000000..a09eebe
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Charity.html
@@ -0,0 +1,526 @@
+
+
+
+
+Charity (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Charity(String, String, Boolean, String)
+Charity(String, String, String, boolean, String)
+Charity(String, String, String, String, String, boolean, String, String, String, byte[])
+
+
+Method Details
+
+getUUID()
+getOrg_number()
+getStatus()
+getPreApproved()
+getFeedbacks()
+getCategory()
+getName()
+getURL()
+getDescription()
+getLogoURL()
+getKeyValues()
+getLogoBlob()
+setVerified()
+setUnverified()
+setCategory(List)
+setDescription(String)
+setLogoURL(String)
+setKeyValues(String)
+setLogoBlob(byte[])
+setFeedbacks(ArrayList)
+setUUIDFromString(String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Minimal contructor JUST FOR DONATIONSSELECT.
+
+
+
+
Contructor for creating a new charity.
+
+
+
+
Contructor for creating a new charity.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
byte[]
+
+
+
+
+
+
+
+
+
+
+
+
boolean
+
+
+
+
+
+
+
+
+
+
+
+
Getters for the charity's attributes.
+
+
void
+
+
+
Setter for categories.
+
+
void
+
+
+
Setter for description.
+
+
void
+
+
+
Setter for setting feedbacks
+
+
void
+
+
+
Setter for the charity's key values.
+
+
void
+
+
+
Setter for the charity's logo Blob.
+
+
void
+
+
+
Setter for the URL of the charity's logo.
+
+
void
+
+
+
Setter for verification status.
+
+
void
+
+
+
void
+
+
+
Setter for verification status.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Donation.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Donation.html
new file mode 100644
index 0000000..2913756
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Donation.html
@@ -0,0 +1,292 @@
+
+
+
+
+Donation (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Donation(double, LocalDate, Charity, User)
+Donation(String, double, LocalDate, Charity, User, boolean)
+
+
+Method Details
+
+isAnonymous()
+getCharityId()
+getDonationID()
+getAmount()
+getDate()
+getCharity()
+getDonor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructor for creating a new donation.
+
+
+
+
Constructor for creating a donation reed from the database.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
double
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Feedback.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Feedback.html
new file mode 100644
index 0000000..47053d1
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/Feedback.html
@@ -0,0 +1,261 @@
+
+
+
+
+Feedback (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Feedback(User, String)
+Feedback(String, User, String, LocalDate)
+
+
+Method Details
+
+getFeedbackId()
+getComment()
+getDate()
+getUser()
+isAnonymous()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructor for creating a new feedback, based on making a feedback previously made.
+
+
+
+
Constructor for creating a new feedback now.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Getters for the feedback's attributes.
+
+
+
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Charity.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Charity.html
new file mode 100644
index 0000000..13a0c93
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Charity.html
@@ -0,0 +1,239 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.Charity (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Invoke DAO object to add the donation to the database.
+
+
void
+
+
+
This method is used to set the charity that is being displayed on the page.
+
+
void
+
+
+
Initialize method for the donation page.
+
+
+
+
+
+
+
+
+
+
+
+
+
static void
+
+
+
When going to a new scene, this method is called to load the new scene.
+
+
void
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Gets the total ammount of donations for a given charity, and sends it to the database throught
+MySQL.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructor for creating a new donation.
+
+
+
+
+
Constructor for creating a donation reed from the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
This method is used to verify the integrity of the data in the charities table and to
+update it based on the data retrieved from the IK API and the charity's URL.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Donation.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Donation.html
new file mode 100644
index 0000000..aa8a17f
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Donation.html
@@ -0,0 +1,102 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.Donation (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Feedback.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Feedback.html
new file mode 100644
index 0000000..7a105e4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/class-use/Feedback.html
@@ -0,0 +1,120 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.Feedback (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A helper function that retrieves all feedback entries associated with a specific charity,
+identified by its UUID.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Setter for setting feedbacks
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-summary.html
new file mode 100644
index 0000000..d2e3b88
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-summary.html
@@ -0,0 +1,120 @@
+
+
+
+
+ntnu.systemutvikling.team6.models (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-tree.html
new file mode 100644
index 0000000..9cce093
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-tree.html
@@ -0,0 +1,80 @@
+
+
+
+
+ntnu.systemutvikling.team6.models Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+Class Hierarchy
+
+java.lang.Object
+
+ntnu.systemutvikling.team6.models.Charity
+ntnu.systemutvikling.team6.models.Donation
+ntnu.systemutvikling.team6.models.Feedback
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-use.html
new file mode 100644
index 0000000..e9f1b42
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/package-use.html
@@ -0,0 +1,168 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.models (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/CharityRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/CharityRegistry.html
new file mode 100644
index 0000000..1b5206a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/CharityRegistry.html
@@ -0,0 +1,230 @@
+
+
+
+
+CharityRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+CharityRegistry()
+
+
+Method Details
+
+getAllCharities()
+findCharityByOrgnumber(String)
+findCharityByUUID(UUID)
+addCharity(Charity)
+removeCharity(String)
+removeCharityUUID(UUID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
+
+
+
+
+
+
+
+
+
boolean
+
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+findCharityByOrgnumber
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/DonationRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/DonationRegistry.html
new file mode 100644
index 0000000..a174845
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/DonationRegistry.html
@@ -0,0 +1,206 @@
+
+
+
+
+DonationRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DonationRegistry()
+
+
+Method Details
+
+getAllDonations()
+findDonationById(UUID)
+addDonation(Donation)
+removeDonation(UUID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
+
+
+
+
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/UserRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/UserRegistry.html
new file mode 100644
index 0000000..1591287
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/UserRegistry.html
@@ -0,0 +1,206 @@
+
+
+
+
+UserRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+UserRegistry()
+
+
+Method Details
+
+getAllUsers()
+findUserById(UUID)
+addUser(User)
+removeUserByUUID(UUID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
+
+
+
+
+
+
boolean
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/CharityRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/CharityRegistry.html
new file mode 100644
index 0000000..58c9fb8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/CharityRegistry.html
@@ -0,0 +1,131 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.registry.CharityRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves all charities from the database, including their associated feedback and the users
+who submitted each piece of feedback.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Performs a full two-phase scrape and returns a
CharityRegistry populated with all
+available charity data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Parses the JSON data using gson and translates the APICharityData into our predefined
+charity classes and puts it in a CharityRegistry object.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/DonationRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/DonationRegistry.html
new file mode 100644
index 0000000..8ac6932
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/DonationRegistry.html
@@ -0,0 +1,92 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.registry.DonationRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves all donations from the database, each populated with its associated
Charity.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/UserRegistry.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/UserRegistry.html
new file mode 100644
index 0000000..161eade
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/class-use/UserRegistry.html
@@ -0,0 +1,93 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.registry.UserRegistry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves all users from the database, each fully populated with their
Settings and
+
Inbox.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-summary.html
new file mode 100644
index 0000000..8280dbb
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-summary.html
@@ -0,0 +1,108 @@
+
+
+
+
+ntnu.systemutvikling.team6.models.registry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-tree.html
new file mode 100644
index 0000000..5bf4728
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-tree.html
@@ -0,0 +1,80 @@
+
+
+
+
+ntnu.systemutvikling.team6.models.registry Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-use.html
new file mode 100644
index 0000000..79c75f8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/registry/package-use.html
@@ -0,0 +1,116 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.models.registry (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Inbox.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Inbox.html
new file mode 100644
index 0000000..3f300ee
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Inbox.html
@@ -0,0 +1,253 @@
+
+
+
+
+Inbox (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Inbox()
+
+
+Method Details
+
+getMessages()
+findMessageById(UUID)
+addMessage(Message)
+removeMessage(UUID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates an empty inbox with no messages.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Add´s message to the messages list.
+
+
+
+
+
Finds a specific message by id.
+
+
+
+
+
Returns an unmodifiable view of the messages in this inbox.
+
+
boolean
+
+
+
Removes a message from the inbox list.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Language.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Language.html
new file mode 100644
index 0000000..feef2b9
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Language.html
@@ -0,0 +1,241 @@
+
+
+
+
+Language (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Nested Class Summary
+Enum Constant Summary
+Method Summary
+Enum Constant Details
+
+NORWEGIAN
+ENGLISH
+
+
+Method Details
+
+values()
+valueOf(String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+
+
+Enum Constant Summary
+Enum Constants
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
Methods inherited from class Enum
+
clone , compareTo , describeConstable , equals , finalize , getDeclaringClass , hashCode , name , ordinal , toString , valueOf
+
+
+
+
+
+
+
+
+
+
+Enum Constant Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Message.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Message.html
new file mode 100644
index 0000000..62db558
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Message.html
@@ -0,0 +1,269 @@
+
+
+
+
+Message (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Message(String, UUID, String)
+Message(String, UUID, String, LocalDate)
+
+
+Method Details
+
+getId()
+getTitle()
+getFrom()
+getContent()
+getTimeAndDate()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates a message with a unique identifier.
+
+
+
+
Creates a message with a unique identifier.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Role.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Role.html
new file mode 100644
index 0000000..0a88f51
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Role.html
@@ -0,0 +1,241 @@
+
+
+
+
+Role (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Nested Class Summary
+Enum Constant Summary
+Method Summary
+Enum Constant Details
+
+NORMAL_USER
+CHARITY_USER
+
+
+Method Details
+
+values()
+valueOf(String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+
+
+Enum Constant Summary
+Enum Constants
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
Methods inherited from class Enum
+
clone , compareTo , describeConstable , equals , finalize , getDeclaringClass , hashCode , name , ordinal , toString , valueOf
+
+
+
+
+
+
+
+
+
+
+Enum Constant Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Settings.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Settings.html
new file mode 100644
index 0000000..1d573d6
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/Settings.html
@@ -0,0 +1,275 @@
+
+
+
+
+Settings (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+Settings()
+Settings(boolean, Language, boolean)
+
+
+Method Details
+
+toggleLightMode()
+toggleAnonymousMode()
+changeLanguage(Language)
+isLightMode()
+getLanguage()
+isAnonymous()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Sets standard settings.
+
+
+
+
Creates settings for a user.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Change language to the chosen language.
+
+
+
+
+
boolean
+
+
+
boolean
+
+
+
void
+
+
+
Toggles anonymous mode on and off
+
+
void
+
+
+
Toggles between light and dark mode
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/User.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/User.html
new file mode 100644
index 0000000..783124d
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/User.html
@@ -0,0 +1,435 @@
+
+
+
+
+User (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+User(String, String, String, String, Role, Settings, Inbox)
+User(String, String, String, String, String, String)
+
+
+Method Details
+
+getId()
+getDisplayName()
+getUsername()
+getEmail()
+getPasswordHash()
+getRole()
+getSettings()
+getInbox()
+setUsername(String)
+setPassword(String)
+setEmail(String)
+checkPassword(String)
+setSettings(Settings)
+setInbox(Inbox)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates a new user taylored for getting info from DATABASE.
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
boolean
+
+
+
Checks if the provided password matches the stored password.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Updates the users email.
+
+
void
+
+
+
void
+
+
+
Updates the users password.
+
+
void
+
+
+
void
+
+
+
Updates the users name.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Inbox.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Inbox.html
new file mode 100644
index 0000000..4ad1d3d
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Inbox.html
@@ -0,0 +1,135 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.user.Inbox (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the
Inbox for a specific user by their UUID, populated with all of their
+
Message objects.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Language.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Language.html
new file mode 100644
index 0000000..1881b38
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Language.html
@@ -0,0 +1,136 @@
+
+
+
+
+Uses of Enum Class ntnu.systemutvikling.team6.models.user.Language (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
enum
+
+
+
Supported application languages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
+
+
void
+
+
+
Change language to the chosen language.
+
+
+
+
+
+
+
+
+
+
+
Creates settings for a user.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Message.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Message.html
new file mode 100644
index 0000000..d7646a4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Message.html
@@ -0,0 +1,108 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.user.Message (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Finds a specific message by id.
+
+
+
+
+
Returns an unmodifiable view of the messages in this inbox.
+
+
+
+
+
+
+
+
void
+
+
+
Add´s message to the messages list.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Role.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Role.html
new file mode 100644
index 0000000..73c4c08
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Role.html
@@ -0,0 +1,129 @@
+
+
+
+
+Uses of Enum Class ntnu.systemutvikling.team6.models.user.Role (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Settings.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Settings.html
new file mode 100644
index 0000000..1d61de8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/Settings.html
@@ -0,0 +1,134 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.user.Settings (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the
Settings for a specific user by their UUID.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/User.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/User.html
new file mode 100644
index 0000000..923ad4d
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/class-use/User.html
@@ -0,0 +1,247 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.models.user.User (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Invoke DAO object to add the donation to the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
Gets the total ammount of donations for a given charity, and sends it to the database throught
+MySQL.
+
+
boolean
+
+
+
Gets the user and settings information and sends it to the database through MySQL.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves a single
User from the database matching the given username and password.
+
+
+
+
+
Retrieves a single
User from the database by their UUID.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructor for creating a new donation.
+
+
+
+
+
Constructor for creating a donation reed from the database.
+
+
+
+
+
Constructor for creating a new feedback, based on making a feedback previously made.
+
+
+
+
+
Constructor for creating a new feedback now.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the currently authenticated user.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-summary.html
new file mode 100644
index 0000000..de162fe
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-summary.html
@@ -0,0 +1,128 @@
+
+
+
+
+ntnu.systemutvikling.team6.models.user (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
All Classes and Interfaces Classes Enum Classes
+
+
+
+
+
+
+
Represents a user's inbox that contains messages.
+
+
+
+
Supported application languages.
+
+
+
+
+
+
+
+
Represents the settings for a user.
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-tree.html
new file mode 100644
index 0000000..8a6c8e5
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-tree.html
@@ -0,0 +1,96 @@
+
+
+
+
+ntnu.systemutvikling.team6.models.user Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+Class Hierarchy
+
+java.lang.Object
+
+ntnu.systemutvikling.team6.models.user.Inbox
+ntnu.systemutvikling.team6.models.user.Message
+ntnu.systemutvikling.team6.models.user.Settings
+ntnu.systemutvikling.team6.models.user.User
+
+
+
+
+
+Enum Class Hierarchy
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-use.html
new file mode 100644
index 0000000..a0e5702
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/models/user/package-use.html
@@ -0,0 +1,202 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.models.user (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user's inbox that contains messages.
+
+
+
+
Represents the settings for a user.
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user's inbox that contains messages.
+
+
+
+
Supported application languages.
+
+
+
+
+
+
+
+
Represents the settings for a user.
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a user in the system.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-summary.html
new file mode 100644
index 0000000..66c7f38
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-summary.html
@@ -0,0 +1,114 @@
+
+
+
+
+ntnu.systemutvikling.team6 (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-tree.html
new file mode 100644
index 0000000..5c3585d
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-tree.html
@@ -0,0 +1,83 @@
+
+
+
+
+ntnu.systemutvikling.team6 Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+Class Hierarchy
+
+java.lang.Object
+
+javafx.application.Application
+
+
+ntnu.systemutvikling.team6.Main
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-use.html
new file mode 100644
index 0000000..ea94948
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/package-use.html
@@ -0,0 +1,65 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6 (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/FullCharityScrape.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/FullCharityScrape.html
new file mode 100644
index 0000000..9d60924
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/FullCharityScrape.html
@@ -0,0 +1,229 @@
+
+
+
+
+FullCharityScrape (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+FullCharityScrape()
+
+
+Method Details
+
+getAPIAndURLCharityData()
+getAPIScraper()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Performs a full two-phase scrape and returns a
CharityRegistry populated with all
+available charity data.
+
+
+
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getAPIAndURLCharityData
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/LogoDownloader.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/LogoDownloader.html
new file mode 100644
index 0000000..f5c1a4f
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/LogoDownloader.html
@@ -0,0 +1,203 @@
+
+
+
+
+LogoDownloader (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+LogoDownloader()
+
+
+Method Details
+
+downloadImageAsBlob(String)
+convertBlobToPNG(byte[], String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
static void
+
+
+
Converts a blob of image data back to a .png image file.
+
+
static byte[]
+
+
+
Downloads a image from the given URL and converts it to a blob.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/FullCharityScrape.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/FullCharityScrape.html
new file mode 100644
index 0000000..895ac8c
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/FullCharityScrape.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.scraper.FullCharityScrape (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.scraper.FullCharityScrape
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/LogoDownloader.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/LogoDownloader.html
new file mode 100644
index 0000000..ebd31c4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/class-use/LogoDownloader.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.scraper.LogoDownloader (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.scraper.LogoDownloader
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-summary.html
new file mode 100644
index 0000000..b25e61f
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-summary.html
@@ -0,0 +1,125 @@
+
+
+
+
+ntnu.systemutvikling.team6.scraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Orchestrates a full charity data scrape by combining two data sources:
+
+
+ The external charity API (via
APICharityScraper), which provides structured data
+ such as organisation numbers, approval status, and charity URLs.
+
+
+
+
Facilitates downloading of .png images from the individual charity's page on IK, converting them
+to bytecode (blob), and then back to a .png.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-tree.html
new file mode 100644
index 0000000..976dd54
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-tree.html
@@ -0,0 +1,79 @@
+
+
+
+
+ntnu.systemutvikling.team6.scraper Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-use.html
new file mode 100644
index 0000000..9c6f7c5
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/package-use.html
@@ -0,0 +1,65 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.scraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.scraper
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityData.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityData.html
new file mode 100644
index 0000000..238cab2
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityData.html
@@ -0,0 +1,281 @@
+
+
+
+
+APICharityData (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+APICharityData(String, String, String, String, boolean)
+
+
+Method Details
+
+getOrg_number()
+getName()
+getStatus()
+getUrl()
+getIs_pre_approved()
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new APICharityData object.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
boolean
+
+
+
Returns whether the organization was pre-approved.
+
+
+
+
+
Returns the name of the organization.
+
+
+
+
+
Returns the organization number.
+
+
+
+
+
Returns whether the organization is approved or not
+
+
+
+
+
Returns the URL of the organizations information page on IK
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityScraper.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityScraper.html
new file mode 100644
index 0000000..9c27eb8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/APICharityScraper.html
@@ -0,0 +1,243 @@
+
+
+
+
+APICharityScraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+APICharityScraper(HttpClient)
+
+
+Method Details
+
+checkConnection()
+getJSONData()
+parseJSON(String)
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new APICharityScraper object.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
boolean
+
+
+
Checks if the http request returns an 'OK' response.
+
+
+
+
+
Fetches the JSON data from the IK API and stores it in a String.
+
+
+
+
+
Parses the JSON data using gson and translates the APICharityData into our predefined
+charity classes and puts it in a CharityRegistry object.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/URLCharityScraper.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/URLCharityScraper.html
new file mode 100644
index 0000000..c96e5b8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/URLCharityScraper.html
@@ -0,0 +1,385 @@
+
+
+
+
+URLCharityScraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+URLCharityScraper(String)
+URLCharityScraper(String, WebDriver)
+
+
+Method Details
+
+createWait()
+findElements(By)
+findElement(By)
+closeDriver()
+updateDescription()
+scrapeCharityPage()
+getDescription()
+getLogoURL()
+getCategories()
+getKeyValues()
+
+
+
+
+
+
+
+java.lang.Object
+
ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructor used for production code.
+
+
+
+
Constructor used for testing.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
protected void
+
+
+
Quits the driver instance, making it unusable.
+
+
protected org.openqa.selenium.support.ui.WebDriverWait
+
+
+
Creates a WebDriverWait object for halting scraping until the correct pre-conditions
+are met.
+
+
protected org.openqa.selenium.WebElement
+
+
+
Calls the findElement method from the WebDriver object and returns a list of
+the returned WebElement objects.
+
+
List <org.openqa.selenium.WebElement>
+
+
+
Calls the findElements method from the WebDriver object and returns a list of
+the returned WebElement objects.
+
+
+
+
+
Returns a String of the categories for the charity with ',' as a delimiter.
+
+
+
+
+
Returns the description of the charity.
+
+
+
+
+
Returns a String of the key value percentages for the charity with ':' as a delimiter, verified
+by IK.
+
+
+
+
+
Returns the URL of the logo for the charity.
+
+
void
+
+
+
Runs all the scraper methods at once, updating the object parameters.
+
+
protected void
+
+
+
Scrapes the URL for the paragraphs containing the description of the charity.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityData.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityData.html
new file mode 100644
index 0000000..e79ebe4
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityData.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityData
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityScraper.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityScraper.html
new file mode 100644
index 0000000..8370f58
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/APICharityScraper.html
@@ -0,0 +1,90 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.scraper.scraperComponents.APICharityScraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/URLCharityScraper.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/URLCharityScraper.html
new file mode 100644
index 0000000..6b6198b
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/class-use/URLCharityScraper.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.scraper.scraperComponents.URLCharityScraper
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-summary.html
new file mode 100644
index 0000000..af48c4f
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-summary.html
@@ -0,0 +1,113 @@
+
+
+
+
+ntnu.systemutvikling.team6.scraper.scraperComponents (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Represents data parsed from the IK API JSON response.
+
+
+
+
Fetches JSON information from the IK API and parses the JSON into a list of
APICharityData objects.
+
+
+
+
Class for scraping the description, URL of the logo, string of categories, and key values of the
+charities registered in IK.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-tree.html
new file mode 100644
index 0000000..ac0577e
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-tree.html
@@ -0,0 +1,80 @@
+
+
+
+
+ntnu.systemutvikling.team6.scraper.scraperComponents Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-use.html
new file mode 100644
index 0000000..0741b8a
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/scraper/scraperComponents/package-use.html
@@ -0,0 +1,88 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.scraper.scraperComponents (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Fetches JSON information from the IK API and parses the JSON into a list of
APICharityData objects.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/PasswordHasher.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/PasswordHasher.html
new file mode 100644
index 0000000..2e448ae
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/PasswordHasher.html
@@ -0,0 +1,213 @@
+
+
+
+
+PasswordHasher (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+PasswordHasher()
+
+
+Method Details
+
+getHashPassword(String)
+isValidPassword(String, String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Hashes a password using PBKDF2 and a random salt.
+
+
boolean
+
+
+
Checks if the password matches a perviously stored hash.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/class-use/PasswordHasher.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/class-use/PasswordHasher.html
new file mode 100644
index 0000000..f721f42
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/class-use/PasswordHasher.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.security.PasswordHasher (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.security.PasswordHasher
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-summary.html
new file mode 100644
index 0000000..4769560
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-summary.html
@@ -0,0 +1,114 @@
+
+
+
+
+ntnu.systemutvikling.team6.security (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
A utility for hashing and verifying passwords using PBKDF2.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-tree.html
new file mode 100644
index 0000000..672ccad
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-tree.html
@@ -0,0 +1,78 @@
+
+
+
+
+ntnu.systemutvikling.team6.security Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-use.html
new file mode 100644
index 0000000..747211f
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/security/package-use.html
@@ -0,0 +1,65 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.security (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.security
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/APIToDatabaseService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/APIToDatabaseService.html
new file mode 100644
index 0000000..20d8d06
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/APIToDatabaseService.html
@@ -0,0 +1,194 @@
+
+
+
+
+APIToDatabaseService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+APIToDatabaseService(DatabaseConnection)
+
+
+Method Details
+
+addAPIDataToTable(List)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Contractor for APIToDatabaseService.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
This method is used to verify the integrity of the data in the charities table and to
+update it based on the data retrieved from the IK API and the charity's URL.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+APIToDatabaseService
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/AuthenticationService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/AuthenticationService.html
new file mode 100644
index 0000000..0b797c8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/AuthenticationService.html
@@ -0,0 +1,287 @@
+
+
+
+
+AuthenticationService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+AuthenticationService(UserSelect, UserDAO)
+
+
+Method Details
+
+login(String, String)
+register(String, String, String, String)
+logout()
+getCurrentUser()
+isLoggedin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs an AuthenticationService with the specified data access objects.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the currently authenticated user.
+
+
boolean
+
+
+
Checks whether a user is currently logged in.
+
+
boolean
+
+
+
Attempts to authenticate a user with the given credentials.
+
+
void
+
+
+
Logs out the currently authenticated user by clearing the current user state.
+
+
boolean
+
+
+
Registers a new user account with the provided details.
+
+
+
+
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AuthenticationService
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/CharityService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/CharityService.html
new file mode 100644
index 0000000..b16acc8
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/CharityService.html
@@ -0,0 +1,136 @@
+
+
+
+
+CharityService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+CharityService()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/DonationService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/DonationService.html
new file mode 100644
index 0000000..e9f2615
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/DonationService.html
@@ -0,0 +1,136 @@
+
+
+
+
+DonationService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+DonationService()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/FeedbackService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/FeedbackService.html
new file mode 100644
index 0000000..0784bdb
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/FeedbackService.html
@@ -0,0 +1,136 @@
+
+
+
+
+FeedbackService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Constructor Summary
+Method Summary
+Constructor Details
+
+FeedbackService()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/APIToDatabaseService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/APIToDatabaseService.html
new file mode 100644
index 0000000..f204205
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/APIToDatabaseService.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.service.APIToDatabaseService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.service.APIToDatabaseService
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/AuthenticationService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/AuthenticationService.html
new file mode 100644
index 0000000..fb656f1
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/AuthenticationService.html
@@ -0,0 +1,99 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.service.AuthenticationService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/CharityService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/CharityService.html
new file mode 100644
index 0000000..a75cfdc
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/CharityService.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.service.CharityService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.service.CharityService
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/DonationService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/DonationService.html
new file mode 100644
index 0000000..e5cfdea
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/DonationService.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.service.DonationService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.service.DonationService
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/FeedbackService.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/FeedbackService.html
new file mode 100644
index 0000000..1cdc9f9
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/class-use/FeedbackService.html
@@ -0,0 +1,66 @@
+
+
+
+
+Uses of Class ntnu.systemutvikling.team6.service.FeedbackService (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+No usage of ntnu.systemutvikling.team6.service.FeedbackService
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-summary.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-summary.html
new file mode 100644
index 0000000..3511873
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-summary.html
@@ -0,0 +1,123 @@
+
+
+
+
+ntnu.systemutvikling.team6.service (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Description
+Related Packages
+Classes and Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
Service class responsible for handling user authentication operations, including login,
+registration, and logout functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-tree.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-tree.html
new file mode 100644
index 0000000..e6eb74b
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-tree.html
@@ -0,0 +1,82 @@
+
+
+
+
+ntnu.systemutvikling.team6.service Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-use.html b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-use.html
new file mode 100644
index 0000000..5de7ab6
--- /dev/null
+++ b/docs/Javadoc/apidocs/ntnu/systemutvikling/team6/service/package-use.html
@@ -0,0 +1,89 @@
+
+
+
+
+Uses of Package ntnu.systemutvikling.team6.service (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Service class responsible for handling user authentication operations, including login,
+registration, and logout functionality.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/options b/docs/Javadoc/apidocs/options
new file mode 100644
index 0000000..568b04c
--- /dev/null
+++ b/docs/Javadoc/apidocs/options
@@ -0,0 +1,25 @@
+--no-fonts
+-classpath
+'C:/Users/robin/.m2/repository/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-controls/25.0.1/javafx-controls-25.0.1.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-controls/25.0.1/javafx-controls-25.0.1-win.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-graphics/25.0.1/javafx-graphics-25.0.1.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-graphics/25.0.1/javafx-graphics-25.0.1-win.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-base/25.0.1/javafx-base-25.0.1.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-base/25.0.1/javafx-base-25.0.1-win.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-fxml/21/javafx-fxml-21.jar;C:/Users/robin/.m2/repository/org/openjfx/javafx-fxml/21/javafx-fxml-21-win.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-java/4.43.0/selenium-java-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-api/4.43.0/selenium-api-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-chrome-driver/4.43.0/selenium-chrome-driver-4.43.0.jar;C:/Users/robin/.m2/repository/com/google/auto/service/auto-service-annotations/1.1.1/auto-service-annotations-1.1.1.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-chromium-driver/4.43.0/selenium-chromium-driver-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-json/4.43.0/selenium-json-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-manager/4.43.0/selenium-manager-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-devtools-v145/4.43.0/selenium-devtools-v145-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-devtools-v146/4.43.0/selenium-devtools-v146-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-devtools-v147/4.43.0/selenium-devtools-v147-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-edge-driver/4.43.0/selenium-edge-driver-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-firefox-driver/4.43.0/selenium-firefox-driver-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-http/4.43.0/selenium-http-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-ie-driver/4.43.0/selenium-ie-driver-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-remote-driver/4.43.0/selenium-remote-driver-4.43.0.jar;C:/Users/robin/.m2/repository/com/google/guava/guava/33.5.0-jre/guava-33.5.0-jre.jar;C:/Users/robin/.m2/repository/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar;C:/Users/robin/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:/Users/robin/.m2/repository/com/google/j2objc/j2objc-annotations/3.1/j2objc-annotations-3.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-api/1.60.1/opentelemetry-api-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-context/1.60.1/opentelemetry-context-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-common/1.60.1/opentelemetry-common-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-exporter-logging/1.60.1/opentelemetry-exporter-logging-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-common/1.60.1/opentelemetry-sdk-common-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/1.60.1/opentelemetry-sdk-extension-autoconfigure-spi-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/1.60.1/opentelemetry-sdk-extension-autoconfigure-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-trace/1.60.1/opentelemetry-sdk-trace-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk/1.60.1/opentelemetry-sdk-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-metrics/1.60.1/opentelemetry-sdk-metrics-1.60.1.jar;C:/Users/robin/.m2/repository/io/opentelemetry/opentelemetry-sdk-logs/1.60.1/opentelemetry-sdk-logs-1.60.1.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-os/4.43.0/selenium-os-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-safari-driver/4.43.0/selenium-safari-driver-4.43.0.jar;C:/Users/robin/.m2/repository/org/seleniumhq/selenium/selenium-support/4.43.0/selenium-support-4.43.0.jar;C:/Users/robin/.m2/repository/com/opencsv/opencsv/5.12.0/opencsv-5.12.0.jar;C:/Users/robin/.m2/repository/org/apache/commons/commons-lang3/3.18.0/commons-lang3-3.18.0.jar;C:/Users/robin/.m2/repository/org/apache/commons/commons-text/1.13.1/commons-text-1.13.1.jar;C:/Users/robin/.m2/repository/commons-beanutils/commons-beanutils/1.11.0/commons-beanutils-1.11.0.jar;C:/Users/robin/.m2/repository/commons-logging/commons-logging/1.3.5/commons-logging-1.3.5.jar;C:/Users/robin/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar;C:/Users/robin/.m2/repository/org/apache/commons/commons-collections4/4.5.0/commons-collections4-4.5.0.jar;C:/Users/robin/.m2/repository/com/google/code/gson/gson/2.13.2/gson-2.13.2.jar;C:/Users/robin/.m2/repository/com/google/errorprone/error_prone_annotations/2.41.0/error_prone_annotations-2.41.0.jar;C:/Users/robin/.m2/repository/net/bytebuddy/byte-buddy/1.17.7/byte-buddy-1.17.7.jar;C:/Users/robin/.m2/repository/com/mysql/mysql-connector-j/9.6.0/mysql-connector-j-9.6.0.jar;C:/Users/robin/.m2/repository/com/google/protobuf/protobuf-java/4.31.1/protobuf-java-4.31.1.jar'
+-encoding
+'UTF-8'
+-protected
+-source
+'25'
+-sourcepath
+'C:/Users/robin/Skole Ikke OneDrive/Systemutvikling/Prosjekt-Repo/helpmehelpapplication/src/main/java'
+-author
+-bottom
+'Copyright © 2026. All rights reserved.'
+-charset
+'UTF-8'
+-d
+'C:/Users/robin/Skole Ikke OneDrive/Systemutvikling/Prosjekt-Repo/helpmehelpapplication/target/reports/apidocs'
+-docencoding
+'UTF-8'
+-doctitle
+'helpmehelpapplication 1.0-SNAPSHOT API'
+-use
+-version
+-windowtitle
+'helpmehelpapplication 1.0-SNAPSHOT API'
diff --git a/docs/Javadoc/apidocs/overview-summary.html b/docs/Javadoc/apidocs/overview-summary.html
new file mode 100644
index 0000000..57ea2b5
--- /dev/null
+++ b/docs/Javadoc/apidocs/overview-summary.html
@@ -0,0 +1,26 @@
+
+
+
+
+helpmehelpapplication 1.0-SNAPSHOT API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+index.html
+
+
+
diff --git a/docs/Javadoc/apidocs/overview-tree.html b/docs/Javadoc/apidocs/overview-tree.html
new file mode 100644
index 0000000..c5898c0
--- /dev/null
+++ b/docs/Javadoc/apidocs/overview-tree.html
@@ -0,0 +1,151 @@
+
+
+
+
+Class Hierarchy (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Package Hierarchies:
+
+ntnu.systemutvikling.team6 ,
+ntnu.systemutvikling.team6.controller ,
+ntnu.systemutvikling.team6.controller.components ,
+ntnu.systemutvikling.team6.database ,
+ntnu.systemutvikling.team6.database.DAO ,
+ntnu.systemutvikling.team6.database.Readers ,
+ntnu.systemutvikling.team6.models ,
+ntnu.systemutvikling.team6.models.registry ,
+ntnu.systemutvikling.team6.models.user ,
+ntnu.systemutvikling.team6.scraper ,
+ntnu.systemutvikling.team6.scraper.scraperComponents ,
+ntnu.systemutvikling.team6.security ,
+ntnu.systemutvikling.team6.service
+
+
+
+
+Enum Class Hierarchy
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/package-search-index.js b/docs/Javadoc/apidocs/package-search-index.js
new file mode 100644
index 0000000..9a62d5a
--- /dev/null
+++ b/docs/Javadoc/apidocs/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html","k":"18"},{"l":"ntnu.systemutvikling.team6"},{"l":"ntnu.systemutvikling.team6.controller"},{"l":"ntnu.systemutvikling.team6.controller.components"},{"l":"ntnu.systemutvikling.team6.database"},{"l":"ntnu.systemutvikling.team6.database.DAO"},{"l":"ntnu.systemutvikling.team6.database.Readers"},{"l":"ntnu.systemutvikling.team6.models"},{"l":"ntnu.systemutvikling.team6.models.registry"},{"l":"ntnu.systemutvikling.team6.models.user"},{"l":"ntnu.systemutvikling.team6.scraper"},{"l":"ntnu.systemutvikling.team6.scraper.scraperComponents"},{"l":"ntnu.systemutvikling.team6.security"},{"l":"ntnu.systemutvikling.team6.service"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/packages b/docs/Javadoc/apidocs/packages
new file mode 100644
index 0000000..9c843bc
--- /dev/null
+++ b/docs/Javadoc/apidocs/packages
@@ -0,0 +1,13 @@
+ntnu.systemutvikling.team6.controller
+ntnu.systemutvikling.team6.controller.components
+ntnu.systemutvikling.team6.database.DAO
+ntnu.systemutvikling.team6.database
+ntnu.systemutvikling.team6.database.Readers
+ntnu.systemutvikling.team6
+ntnu.systemutvikling.team6.models
+ntnu.systemutvikling.team6.models.registry
+ntnu.systemutvikling.team6.models.user
+ntnu.systemutvikling.team6.scraper
+ntnu.systemutvikling.team6.scraper.scraperComponents
+ntnu.systemutvikling.team6.security
+ntnu.systemutvikling.team6.service
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/resource-files/copy.svg b/docs/Javadoc/apidocs/resource-files/copy.svg
new file mode 100644
index 0000000..b07ac7e
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/copy.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/resource-files/glass.svg b/docs/Javadoc/apidocs/resource-files/glass.svg
new file mode 100644
index 0000000..ff7df85
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/glass.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/resource-files/jquery-ui.min.css b/docs/Javadoc/apidocs/resource-files/jquery-ui.min.css
new file mode 100644
index 0000000..7e0692d
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/jquery-ui.min.css
@@ -0,0 +1,6 @@
+/*! jQuery UI - v1.14.1 - 2025-01-13
+* https://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css
+* Copyright OpenJS Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/resource-files/left.svg b/docs/Javadoc/apidocs/resource-files/left.svg
new file mode 100644
index 0000000..11a93ff
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/left.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/resource-files/link.svg b/docs/Javadoc/apidocs/resource-files/link.svg
new file mode 100644
index 0000000..58d38ac
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/link.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/resource-files/right.svg b/docs/Javadoc/apidocs/resource-files/right.svg
new file mode 100644
index 0000000..4b54939
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/right.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/resource-files/stylesheet.css b/docs/Javadoc/apidocs/resource-files/stylesheet.css
new file mode 100644
index 0000000..f7994c7
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/stylesheet.css
@@ -0,0 +1,1667 @@
+/*
+ * Copyright (c) 2010, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+ */
+
+/*
+ * Javadoc style sheet
+ */
+
+@import url('fonts/dejavu.css');
+
+/*
+ * These CSS custom properties (variables) define the core color and font
+ * properties used in this stylesheet.
+ */
+:root {
+ /* body, block and code fonts */
+ --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ --code-font-family: 'DejaVu Sans Mono', monospace;
+ /* Base font sizes for body and code elements */
+ --body-font-size: 14.2px;
+ --block-font-size: 14.4px;
+ --code-font-size: 14px;
+ --nav-font-size: 13.4px;
+ /* Line height for continuous text blocks */
+ --block-line-height: 1.5;
+ --code-line-height: 1.6;
+ /* Text colors for body and block elements */
+ --body-text-color: #181818;
+ --block-text-color: #181818;
+ /* Background colors for various elements */
+ --body-background-color: #ffffff;
+ --section-background-color: var(--body-background-color);
+ --detail-background-color: #ffffff;
+ --code-background-color: #f5f5f5;
+ --mark-background-color: #f7f7f7;
+ --detail-block-color: #f4f4f4;
+ /* Colors for navigation bar and table captions */
+ --navbar-background-color: #4D7A97;
+ --navbar-text-color: #ffffff;
+ /* Background color for subnavigation and various headers */
+ --subnav-background-color: #dee3e9;
+ --subnav-link-color: #47688a;
+ --member-heading-background-color: var(--subnav-background-color);
+ /* Background and text colors for selected tabs and navigation items */
+ --selected-background-color: #f8981d;
+ --selected-text-color: #253441;
+ --selected-link-color: #4a698a;
+ /* Background colors for generated tables */
+ --table-header-color: #ebeff4;
+ --even-row-color: #ffffff;
+ --odd-row-color: #f0f0f2;
+ /* Text color for page title */
+ --title-color: #2c4557;
+ /* Text colors for links */
+ --link-color: #437291;
+ --link-color-active: #bb7a2a;
+ /* Table of contents */
+ --toc-background-color: #f8f8f8;
+ --toc-highlight-color: var(--subnav-background-color);
+ --toc-hover-color: #e9ecf0;
+ /* Snippet and pre colors */
+ --snippet-background-color: #f2f2f4;
+ --snippet-text-color: var(--block-text-color);
+ --snippet-highlight-color: #f7c590;
+ --pre-background-color: var(--snippet-background-color);
+ --pre-text-color: var(--snippet-text-color);
+ /* Border colors for structural elements and user defined tables */
+ --border-color: #e6e6e6;
+ --table-border-color: #000000;
+ /* Styles for table tabs */
+ --tab-border-radius: 2px 2px 0 0;
+ /* Search input colors */
+ --search-input-background-color: #ffffff;
+ --search-input-text-color: #000000;
+ --search-input-placeholder-color: #909090;
+ /* Highlight color for active search tag target */
+ --search-tag-highlight-color: #ffff66;
+ /* Copy button colors and filters */
+ --button-border-color: #b0b8c8;
+ --button-active-filter: brightness(96%);
+ --button-focus-filter: brightness(104%);
+ /* Colors for invalid tag notifications */
+ --invalid-tag-background-color: #ffe6e6;
+ --invalid-tag-text-color: #000000;
+ /* Navigation bar dimensions */
+ --top-nav-height: 44px;
+ --sub-nav-height: 36px;
+ --nav-height: calc(var(--top-nav-height) + var(--sub-nav-height));
+ --max-content-width: 1500px;
+ --content-margin: 0 auto;
+}
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+body {
+ background-color:var(--body-background-color);
+ color:var(--body-text-color);
+ font-family:var(--body-font-family);
+ font-size:var(--body-font-size);
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+}
+main [id] {
+ scroll-margin-top: calc(var(--nav-height) + 6px);
+}
+div.main-grid {
+ max-width: var(--max-content-width);
+ margin: var(--content-margin);
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:var(--link-color);
+}
+nav a:link, nav a:visited {
+ color: var(--subnav-link-color);
+}
+a[href]:hover, a[href]:active {
+ text-decoration:none;
+ color:var(--link-color-active);
+}
+pre {
+ font-family:var(--code-font-family);
+ font-size:var(--code-font-size);
+ line-height: var(--code-line-height);
+ background-color: var(--pre-background-color);
+ color: var(--pre-text-color);
+ padding: 10px;
+ overflow-x:auto;
+}
+h1 {
+ font-size:1.425em;
+}
+h2 {
+ font-size:1.28em;
+}
+h3 {
+ font-size:1.14em;
+}
+h4 {
+ font-size:1.072em;
+}
+h5 {
+ font-size:1.001em;
+}
+h6 {
+ font-size:0.93em;
+}
+/* Disable font boosting for selected elements */
+h1, h2, h3, h4, h5, h6, div.member-signature, div.member-signature > span {
+ max-height: 1000em;
+}
+ul {
+ list-style-type:disc;
+}
+tt {
+ font-family:var(--code-font-family);
+}
+code {
+ font-family:var(--code-font-family);
+ font-size:var(--code-font-size);
+}
+button {
+ font-family: var(--body-font-family);
+ font-size: 1em;
+}
+hr {
+ border-color: #aaa;
+}
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.about-language {
+ flex: 0 0 auto;
+ padding:0 20px;
+ margin:0;
+ font-size:0.915em;
+ max-width: 50%;
+ white-space: nowrap;
+}
+.legal-copy {
+ font-family: var(--body-font-family);
+ line-height: normal;
+}
+/*
+ * Styles for navigation bar.
+ */
+@media screen {
+ header {
+ position:sticky;
+ top:0;
+ z-index:2;
+ background: var(--body-background-color);
+ }
+}
+.nav-content {
+ display:flex;
+ flex-direction: row;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ max-width: var(--max-content-width);
+ margin: var(--content-margin);
+}
+.top-nav {
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+ width:100%;
+ height:var(--top-nav-height);
+ overflow:visible;
+ font-size:0.857em;
+ position:relative;
+}
+.top-nav nav.toc {
+ display: none;
+ flex-direction: column;
+}
+.top-nav nav.toc button.show-sidebar,
+.top-nav nav.toc button.hide-sidebar {
+ display: none;
+}
+button#navbar-toggle-button {
+ display:none;
+}
+ul.nav-list {
+ display:inline-flex;
+ margin:0;
+ padding-left:4px;
+ flex: 1 1 auto;
+ white-space: nowrap;
+}
+ul.nav-list li {
+ list-style:none;
+ padding: 5px 6px;
+ text-transform:uppercase;
+ height: 1.2em;
+}
+div.sub-nav {
+ background-color:var(--subnav-background-color);
+ width:100%;
+ overflow:hidden;
+ font-size:var(--nav-font-size);
+ height: var(--sub-nav-height);
+}
+ol.sub-nav-list {
+ flex: 1 1 90%;
+ line-height: 1.8;
+ display: inline-flex;
+ overflow: auto;
+ scroll-snap-type: x mandatory;
+ scroll-padding-left: 13px;
+ scrollbar-width: none;
+ padding-left:6px;
+ white-space: nowrap;
+ margin:0;
+}
+ol.sub-nav-list::-webkit-scrollbar {
+ display: none;
+}
+ol.sub-nav-list li {
+ list-style:none;
+ scroll-snap-align: start;
+}
+ol.sub-nav-list li:not(:first-child) {
+ background: url("right.svg") no-repeat 3px;
+ background-size: 10px;
+ padding-left: 17px;
+ list-style: none;
+}
+ol.sub-nav-list a {
+ padding: 3px;
+}
+ol.sub-nav-list a.current-selection {
+ background-color: var(--toc-background-color);
+ border-radius: 3px;
+}
+.sub-nav .nav-list-search {
+ flex: 1 1 10%;
+ margin: 0 15px;
+ position:relative;
+ white-space: nowrap;
+}
+.top-nav .nav-list a:link, .top-nav .nav-list a:active, .top-nav .nav-list a:visited {
+ color:var(--navbar-text-color);
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.top-nav .nav-list a:hover {
+ color:var(--link-color-active);
+}
+.nav-bar-cell1-rev {
+ background-color:var(--selected-background-color);
+ color:var(--selected-text-color);
+ margin: 0 5px;
+ border-radius: 1px;
+}
+.skip-nav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+ * Styles for page header.
+ */
+.title {
+ color:var(--title-color);
+ margin:10px 0 12px 0;
+}
+.sub-title {
+ margin:5px 0 0 0;
+}
+ul.contents-list {
+ margin: 0 0 15px 0;
+ padding: 0;
+ list-style: none;
+}
+ul.contents-list li {
+ font-size:0.93em;
+}
+/*
+ * Styles for headings.
+ */
+body.class-declaration-page .summary h2,
+body.class-declaration-page .details h2,
+body.class-use-page h2,
+body.module-declaration-page .block-list h2 {
+ font-style: italic;
+ padding:0;
+ margin:15px 0;
+ overflow-x:auto;
+}
+body.class-use-page h2 {
+ margin-top: 20px;
+}
+body.class-declaration-page .details h3 {
+ background-color:var(--member-heading-background-color);
+ border:1px solid var(--border-color);
+ margin:6px 0;
+ padding:7px;
+ overflow-x:auto;
+ font-size: 1.08em;
+}
+body.class-declaration-page section.detail:target > h3,
+body.class-declaration-page section.detail > h3:target {
+ background-color: var(--navbar-background-color);
+ color: var(--navbar-text-color);
+}
+body.class-declaration-page section.detail:target > h3 > a.anchor-link > img,
+body.class-declaration-page section.detail > h3:target > a.anchor-link > img {
+ filter: invert(100%) sepia(4%) saturate(98%) hue-rotate(212deg) brightness(160%) contrast(160%);
+}
+h1 > sup {
+ font-size: small;
+}
+/*
+ * Styles for page layout containers.
+ */
+.main-grid {
+ display: flex;
+ flex-direction: row;
+}
+.main-grid main {
+ flex: 3.2 1 0;
+ min-width: 240px
+}
+.main-grid nav.toc {
+ flex: 1 1 0;
+ min-width: 240px;
+}
+main {
+ padding:10px 25px;
+ position:relative;
+}
+/* Compensate for non-collapsing margins between element description and summary tables */
+div.horizontal-scroll > section[id$=-description] > :is(dl, ol, ul, p, div, blockquote, pre):last-child,
+div.horizontal-scroll > section[id$=-description] > :last-child > :is(li, dd):last-child,
+section.class-description > div.horizontal-scroll > :is(dl, ol, ul, p, div, blockquote, pre):last-child,
+section.class-description > div.horizontal-scroll > :last-child > :is(li, dd):last-child {
+ margin-bottom:4px;
+}
+dl.notes > dt {
+ font-family: var(--body-font-family);
+ font-size:0.856em;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:var(--body-text-color);
+}
+dl.notes > dd {
+ margin:6px 10px 10px 15px;
+ font-size:var(--block-font-size);
+ font-family:var(--block-font-family);
+ line-height:var(--block-line-height);
+}
+dl.notes > dd > ul, dl.notes > dd > ol {
+ margin-bottom: 1em;
+ margin-top: 1em;
+}
+dl.name-value > dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+dl.name-value > dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+ * Styles for table of contents.
+ */
+.main-grid nav.toc {
+ background-color: var(--toc-background-color);
+ position: sticky;
+ top: calc(var(--nav-height));
+ max-height: calc(100vh - var(--nav-height));
+ display: flex;
+ flex-direction: column;
+ font-family: var(--body-font-family);
+ z-index: 1;
+}
+.main-grid nav.toc div.toc-header {
+ top: var(--nav-height);
+ z-index: 1;
+ padding: 15px 20px;
+}
+.main-grid nav.toc > ol.toc-list {
+ max-height: calc(100vh - var(--nav-height) - 100px);
+ padding-left: 12px;
+}
+.main-grid nav.toc button {
+ position: absolute;
+ bottom: 16px;
+ z-index: 3;
+ background-color: var(--toc-background-color);
+ color: #666666;
+ font-size: 0.76rem;
+ border: none;
+ cursor: pointer;
+ padding: 6px 10px;
+ white-space: nowrap;
+}
+.main-grid nav.toc button > img {
+ vertical-align: middle;
+ width: 16px;
+ height: 16px;
+}
+.main-grid nav.toc button.hide-sidebar {
+ right: 0;
+}
+.main-grid nav.toc button.show-sidebar {
+ left: 0;
+ display: none;
+}
+.main-grid nav.toc button span {
+ display: none;
+}
+.main-grid nav.toc button:hover,
+.main-grid nav.toc button:focus {
+ color: var(--body-text-color);
+ border: 1px solid var(--subnav-background-color);
+}
+.main-grid nav.toc button:active {
+ background-color: var(--subnav-background-color);
+ color: var(--link-color-active);
+}
+.main-grid nav.toc button:hover span,
+.main-grid nav.toc button:focus span {
+ display: inline;
+}
+.main-grid nav.toc button:hover,
+.main-grid nav.toc button:focus {
+ box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
+}
+.main-grid nav.toc.hide-sidebar {
+ min-width: revert;
+ background-color: var(--body-background-color);
+ max-width: 20px;
+}
+.main-grid nav.toc.hide-sidebar div.toc-header,
+.main-grid nav.toc.hide-sidebar ol.toc-list,
+.main-grid nav.toc.hide-sidebar button.hide-sidebar {
+ display: none;
+}
+.main-grid nav.toc.hide-sidebar button.show-sidebar {
+ display: inline;
+}
+nav.toc div.toc-header {
+ padding: 15px;
+ display: inline-flex;
+ align-items: center;
+ color: var(--body-text-color);
+ font-size: 0.856em;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow-x: hidden;
+ position: sticky;
+ min-height: 20px;
+}
+nav.toc > ol.toc-list {
+ overflow: hidden auto;
+ overscroll-behavior: contain;
+}
+nav.toc ol.toc-list {
+ list-style: none;
+ font-size: var(--nav-font-size);
+ padding-left: 0;
+ margin: 0;
+}
+a.current-selection {
+ font-weight: bold;
+}
+nav.toc a {
+ display: block;
+ padding: 8px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+nav.toc ol.toc-list ol.toc-list a {
+ padding-left: 24px;
+}
+nav.toc ol.toc-list ol.toc-list ol.toc-list a {
+ padding-left: 40px;
+}
+nav.toc a:hover {
+ background-color: var(--toc-hover-color);
+}
+nav.toc a.current-selection {
+ background-color: var(--toc-highlight-color);
+}
+nav.toc a:focus-visible {
+ background-color: var(--selected-background-color);
+ color: var(--selected-text-color);
+ outline: none;
+}
+/*
+ * Styles for lists.
+ */
+ul.details-list .block > ul,
+ul.details-list .notes dd > ul {
+ margin: 12px 0;
+}
+li.circle {
+ list-style:circle;
+}
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+div.inheritance div.inheritance {
+ margin-left:2em;
+}
+main > div.inheritance {
+ overflow-x:auto;
+}
+ul.block-list,
+ul.details-list,
+ul.member-list,
+ul.summary-list {
+ margin:4px 0 10px 0;
+ padding:0;
+}
+ul.block-list > li,
+ul.details-list > li,
+ul.member-list > li,
+ul.summary-list > li {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.ref-list {
+ padding:0;
+ margin:0;
+}
+ul.ref-list > li {
+ list-style:none;
+}
+.summary-table dl, .summary-table dl dt, .summary-table dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+dl.notes > dd > ul.tag-list, dl.notes > dd > ul.tag-list-long {
+ padding-left: 0;
+ margin: 0;
+ list-style: none;
+}
+ul.tag-list li {
+ display: inline;
+}
+ul.tag-list li:not(:last-child):after,
+ul.tag-list-long li:not(:last-child):after
+{
+ content: ", ";
+ white-space: pre-wrap;
+}
+ul.preview-feature-list {
+ list-style: none;
+ margin:0;
+ padding:0.1em;
+ line-height: 1.6;
+}
+ul.preview-feature-list input {
+ margin-right: 8px;
+}
+/*
+ * Styles for tables.
+ */
+.summary-table, .details-table {
+ border:1px solid var(--border-color);
+ border-top:0;
+ padding:0;
+ margin-bottom: 14px;
+}
+.caption {
+ overflow: auto hidden;
+ padding: 8px 0 0 1px;
+}
+.caption span,
+.inherited-list h3 {
+ font-size: 0.98em;
+ font-weight:bold;
+ white-space:nowrap;
+ border-radius: var(--tab-border-radius);
+ margin: 0;
+}
+.caption span {
+ background-color: var(--navbar-background-color);
+ padding:5px 12px 7px 12px;
+ height:16px;
+ color:var(--navbar-text-color);
+ display:inline-block;
+}
+.inherited-list h3 {
+ background-color: var(--subnav-background-color);
+ padding:6px 12px 7px 12px;
+ height:17px;
+ width: fit-content;
+ max-width: 93%;
+}
+/* Background required for captions with links */
+.class-use-page .caption span,
+.package-use-page .caption span,
+.constants-summary-page .caption span,
+.inherited-list h3 {
+ background-color: var(--subnav-background-color);
+ color: var(--block-text-color);
+}
+.caption a:link,
+.caption a:visited,
+.inherited-list h3 a:link,
+.inherited-list h3 a:visited {
+ color:var(--subnav-link-color);
+}
+div.table-tabs {
+ padding: 8px 0 0 1px;
+ white-space: nowrap;
+ overflow-x: auto;
+}
+div.table-tabs > button {
+ font-size: 0.98em;
+ border: none;
+ cursor: pointer;
+ padding: 6px 12px;
+ font-weight: bold;
+ margin-right: 8px;
+ border-radius: var(--tab-border-radius);
+}
+div.table-tabs > .active-table-tab {
+ background: var(--selected-background-color);
+ color: var(--selected-text-color);
+}
+div.table-tabs > button.table-tab {
+ background: var(--navbar-background-color);
+ color: var(--navbar-text-color);
+}
+.two-column-search-results {
+ display: grid;
+ grid-template-columns: minmax(400px, max-content) minmax(400px, auto);
+}
+div.checkboxes {
+ line-height: 2;
+}
+div.checkboxes > span {
+ margin-left: 10px;
+}
+div.checkboxes > label {
+ margin-left: 8px;
+ white-space: nowrap;
+}
+div.checkboxes > label > input {
+ margin: 0 6px 0 2px;
+}
+.two-column-summary {
+ display: grid;
+ grid-template-columns: minmax(25%, max-content) minmax(25%, auto);
+}
+.three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto);
+}
+.three-column-release-summary {
+ display: grid;
+ grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto);
+}
+.four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto);
+}
+@media screen and (max-width: 1000px) {
+ .four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+ }
+}
+@media screen and (max-width: 800px) {
+ .two-column-search-results {
+ display: grid;
+ grid-template-columns: minmax(40%, max-content) minmax(40%, auto);
+ }
+ .three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
+ }
+ .three-column-release-summary {
+ display: grid;
+ grid-template-columns: minmax(70%, max-content) minmax(30%, max-content)
+ }
+ .three-column-summary .col-last,
+ .three-column-release-summary .col-last{
+ grid-column-end: span 2;
+ }
+}
+@media screen and (max-width: 600px) {
+ .two-column-summary {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+}
+.summary-table > div, .details-table > div {
+ font-size: var(--nav-font-size);
+ line-height: 1.6;
+ padding: 8px 3px 3px 7px;
+ overflow: auto hidden;
+}
+.summary-table > div.table-header, .details-table > div.table-header {
+ font-size: 0.92em;
+ line-height: 1.2;
+ height: 18px;
+}
+.table-header {
+ background: var(--table-header-color);
+ font-weight: bold;
+ border-bottom: 1px solid var(--border-color);
+}
+/* Sortable table columns */
+.table-header[onclick] {
+ cursor: pointer;
+}
+.table-header[onclick]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ ');
+ background-size:100% 100%;
+ width:9px;
+ height:14px;
+ margin-left:4px;
+ margin-bottom:-3px;
+}
+.table-header[onclick].sort-asc::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+
+}
+.table-header[onclick].sort-desc::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+}
+.col-first, .col-second, .col-constructor-name {
+ overflow: auto;
+}
+body:not(.class-declaration-page) .col-first a:link,
+.col-summary-item-name a:link {
+ font-weight:bold;
+}
+.even-row-color {
+ background-color:var(--even-row-color);
+}
+.odd-row-color {
+ background-color:var(--odd-row-color);
+}
+/*
+ * Styles for contents.
+ */
+div.block {
+ font-size:var(--block-font-size);
+ font-family:var(--block-font-family);
+ line-height:var(--block-line-height);
+}
+.module-signature,
+.package-signature,
+.type-signature,
+.member-signature {
+ font-family:var(--code-font-family);
+ font-size:var(--code-font-size);
+ margin:8px 0 14px 0;
+ white-space: pre-wrap;
+}
+.module-signature,
+.package-signature,
+.type-signature {
+ margin-top: 0;
+}
+.member-signature .parameters,
+.member-signature .exceptions {
+ display: inline-block;
+ vertical-align: top;
+ white-space: pre-wrap;
+}
+.member-signature .type-parameters {
+ white-space: pre-wrap;
+}
+:is(h1, h2, h3, h4, h5, h6, sup, sub, small, big) code,
+[style*=font-size] code {
+ font-size: inherit;
+}
+.doc-file-page main {
+ font-family: var(--block-font-family);
+ font-size: var(--block-font-size);
+ line-height: var(--block-line-height);
+}
+.doc-file-page main footer {
+ font-family: var(--body-font-family);
+ font-size: var(--body-font-size);
+}
+.tree-page .hierarchy,
+.package-tree-page .hierarchy {
+ line-height: 1.4;
+}
+/*
+ * Styles for formatting effect.
+ */
+.source-line-no {
+ /* Color of line numbers in source pages can be set via custom property below */
+ color:var(--source-linenumber-color, green);
+ padding:0 30px 0 0;
+}
+.block {
+ display:block;
+ margin:0 10px 5px 0;
+ color:var(--block-text-color);
+}
+.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link,
+.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label,
+.restricted-label {
+ font-weight:bold;
+}
+sup.preview-mark,
+sup.restricted-mark {
+ font-family: var(--code-font-family);
+ font-weight: normal;
+ font-size: 8px;
+ background-color: var(--mark-background-color);
+ padding: 1px;
+ border-radius: 2px;
+}
+sup.preview-mark > a:link,
+sup.restricted-mark > a:link {
+ font-weight: normal;
+}
+.deprecation-comment, .help-footnote, .preview-comment, .restricted-comment {
+ font-style:italic;
+}
+.deprecation-block, .preview-block, .restricted-block {
+ font-size:1em;
+ font-family:var(--block-font-family);
+ border-style:solid;
+ border-width:thin;
+ border-radius:6px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+.deprecation-block code, .preview-block code, .restricted-block code {
+ font-size: 0.97em;
+}
+div.block div.deprecation-comment {
+ font-style:normal;
+}
+details.invalid-tag, span.invalid-tag {
+ font-size:1em;
+ font-family:var(--block-font-family);
+ color: var(--invalid-tag-text-color);
+ background: var(--invalid-tag-background-color);
+ border: thin solid var(--table-border-color);
+ border-radius:2px;
+ padding: 2px 4px;
+ display:inline-block;
+}
+details summary {
+ cursor: pointer;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+ display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-menu .ui-state-active {
+ /* Overrides the color of selection used in jQuery UI */
+ background: var(--selected-background-color);
+ color: var(--selected-text-color);
+ /* Workaround for browser bug, see JDK-8275889 */
+ margin: -1px 0;
+ border-top: 1px solid var(--selected-background-color);
+ border-bottom: 1px solid var(--selected-background-color);
+}
+.ui-autocomplete-category {
+ font-weight:bold;
+ font-size:15px;
+ padding:7px 8px;
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+ box-sizing: border-box;
+}
+.ui-autocomplete {
+ max-height:calc(98vh - var(--nav-height));
+ max-width:min(75vw, calc(var(--max-content-width) * 0.748));
+ overflow-y:auto;
+ white-space:nowrap;
+ box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+ overscroll-behavior: contain;
+}
+ul.ui-autocomplete {
+ position:fixed;
+ z-index:10;
+ background-color: var(--body-background-color);
+}
+ul.ui-autocomplete li {
+ float:left;
+ clear:both;
+ min-width:100%;
+ box-sizing: border-box;
+}
+ul.ui-autocomplete li.ui-static-link {
+ position:sticky;
+ bottom:0;
+ left:0;
+ background: var(--subnav-background-color);
+ padding: 5px 0;
+ font-family: var(--body-font-family);
+ font-size: 0.93em;
+ font-weight: bold;
+ z-index: 10;
+}
+li.ui-static-link a, li.ui-static-link a:visited {
+ text-decoration:none;
+ color:var(--link-color);
+ float:right;
+ margin-right:20px;
+}
+.ui-autocomplete > li.result-item:nth-child(even) {
+ background-color: var(--even-row-color)
+}
+.ui-autocomplete > li.result-item:nth-child(odd) {
+ background-color: var(--odd-row-color)
+}
+.ui-autocomplete {
+ display: grid;
+ grid-template-columns: auto auto;
+}
+.ui-autocomplete > li,
+.ui-autocomplete > li > div {
+ grid-column: 1 / 3;
+}
+.ui-autocomplete > li.result-item,
+.ui-autocomplete > li.result-item > div {
+ display: grid;
+ grid-template-columns: subgrid;
+}
+.ui-autocomplete > li.result-item {
+ font-family: var(--body-font-family);
+ font-size: var(--body-font-size);
+ line-height: 1.7;
+}
+.ui-autocomplete .search-result-label {
+ padding: 1px 4px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.ui-autocomplete .search-result-desc {
+ font-size: var(--nav-font-size);
+ padding: 2px 4px;
+ color: #404040;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.ui-autocomplete .result-highlight {
+ font-weight:bold;
+}
+.ui-menu .ui-state-active .search-result-desc {
+ color: #383838;
+}
+.ui-menu .ui-menu-item-wrapper {
+ padding: 3px 4px;
+}
+input[type="text"] {
+ background-image:url('glass.svg');
+ background-size:13px;
+ background-repeat:no-repeat;
+ background-position:3px 4px;
+ background-color: var(--search-input-background-color);
+ color: var(--search-input-text-color);
+ border-color: var(--border-color);
+ border-radius: 4px;
+ padding-left:20px;
+ padding-right: 18px;
+ font-size: var(--nav-font-size);
+ height: 19px;
+}
+input#page-search-input {
+ width: calc(180px + 10vw);
+ margin: 10px 0;
+}
+input#search-input {
+ width: 270px;
+ margin: 0;
+}
+input.filter-input {
+ min-width: 40px;
+ width: 180px;
+ margin: 0 -8px 0 5px;
+}
+input#reset-search, input.reset-filter, input#page-search-reset {
+ background-color: transparent;
+ background-image:url('x.svg');
+ background-repeat:no-repeat;
+ background-size:contain;
+ border:0;
+ border-radius:0;
+ width:12px;
+ height:12px;
+ min-width:12px;
+ min-height:12px;
+ font-size:0;
+ visibility:hidden;
+}
+input#reset-search {
+ position:absolute;
+ right:5px;
+ top:7px;
+}
+input.reset-filter {
+ position: relative;
+ right: 10px;
+ top: 0;
+}
+input#page-search-reset {
+ position: relative;
+ right: 18px;
+ top: -5px;
+}
+input::placeholder {
+ color:var(--search-input-placeholder-color);
+ opacity: 1;
+}
+input:focus::placeholder {
+ color: transparent;
+}
+select#search-modules {
+ margin: 0 10px 10px 2px;
+ font-size: var(--nav-font-size);
+ padding: 3px 5px;
+ border-radius: 4px;
+ background: #f0f0f0;
+ border: 1px solid #909090;
+}
+kbd {
+ background-color: #eeeeee;
+ border: 1px solid #b0b0b0;
+ border-radius: 3px;
+ padding: 0 4px;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 2px 0 0 rgba(255, 255, 255, 0.6) inset;
+ font-size: 0.9em;
+ font-weight: bold;
+}
+.search-tag-result:target {
+ background-color:var(--search-tag-highlight-color);
+}
+dd > span:target,
+h1 > span:target {
+ background-color: var(--search-tag-highlight-color);
+}
+section.class-description dd > span:target,
+section.class-description h1 > span:target {
+ scroll-margin-top: 20em;
+}
+details.page-search-details {
+ display: inline-block;
+}
+div#result-container {
+ font-size: 1em;
+}
+#result-container .result-highlight {
+ font-weight:bold;
+}
+#result-container div.result-table {
+ display: grid;
+ grid-template-columns: minmax(40%, max-content) minmax(40%, auto);
+}
+#result-container div.result-table > div.table-header,
+#result-container div.result-table > a.search-result-link {
+ display: grid;
+ grid-template-columns: subgrid;
+ grid-column: 1 / 3;
+ margin: 0;
+}
+#result-container div.result-table > div.table-header > span {
+ padding: 5px 12px;
+ font-size: 0.93em;
+ background-color: var(--subnav-background-color);
+}
+#result-container div.result-table > a.search-result-link > span {
+ padding: 8px 12px;
+}
+#result-container div.result-table > a.search-result-link:nth-child(odd) {
+ background-color: var(--odd-row-color)
+}
+#result-container div.result-table > a.search-result-link:nth-child(even) {
+ background-color: var(--even-row-color)
+}
+#result-container div.result-table > a.search-result-link {
+ color: var(--block-text-color);
+ white-space: nowrap;
+}
+#result-container div.result-table > a.search-result-link:focus-visible,
+#result-container div.result-table > a.search-result-link.selected {
+ background-color: var(--selected-background-color);
+ outline: none;
+}
+#result-container div.result-table > a.search-result-link .search-result-label {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#result-container div.result-table > a.search-result-link .search-result-desc {
+ font-size: var(--nav-font-size);
+ color: #404040;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.page-search-info {
+ background-color: var(--subnav-background-color);
+ border-radius: 3px;
+ border: 0 solid var(--border-color);
+ padding: 0 8px;
+ margin: 8px 0;
+ overflow: hidden;
+ display: none;
+ transition: all 0.2s ease;
+}
+div.table-tabs > button.table-tab {
+ background: var(--navbar-background-color);
+ color: var(--navbar-text-color);
+}
+.page-search-header {
+ padding: 5px 12px 7px 12px;
+ font-weight: bold;
+ margin-right: 3px;
+ background-color:var(--navbar-background-color);
+ color:var(--navbar-text-color);
+ display: inline-block;
+}
+button.page-search-header {
+ border: none;
+ cursor: pointer;
+}
+span#page-search-link {
+ text-decoration: underline;
+}
+.module-graph span, .sealed-graph span {
+ display:none;
+ position:absolute;
+}
+.module-graph:hover span, .sealed-graph:hover span {
+ display:block;
+ margin: -100px 0 0 100px;
+ z-index: 5;
+}
+.horizontal-scroll {
+ overflow: auto hidden;
+}
+section.class-description {
+ line-height: 1.4;
+}
+.summary section[class$="-summary"], .details section[class$="-details"] {
+ margin-bottom: 24px;
+ background-color: var(--section-background-color);
+}
+body.class-uses section.detail {
+ padding: 0 25px 5px 10px;
+ margin: 25px 0;
+}
+section.serialized-class-details {
+ padding: 0 20px 5px 10px;
+ border: 1px solid var(--border-color);
+ background-color: var(--detail-block-color);
+}
+section.serialized-class-details .detail {
+ overflow: auto;
+ padding-left: 12px;
+}
+section[class$="-details"] .detail {
+ background-color:var(--detail-background-color);
+}
+section[class$="-details"] .detail > div {
+ padding-left: 8px;
+}
+.inherited-list {
+ margin: 20px 0;
+ background-color:var(--detail-background-color);
+}
+.inherited-list > code {
+ padding: 8px;
+ display: block;
+ background-color: var(--code-background-color);
+ border-radius: 0;
+ line-height: var(--code-line-height);
+}
+.vertical-separator {
+ padding: 0 5px;
+}
+.help-section {
+ font-size: var(--block-font-size);
+ line-height: var(--block-line-height);
+}
+ul.help-section-list {
+ margin: 0;
+}
+ul.help-subtoc > li {
+ display: inline-block;
+ padding-right: 5px;
+ font-size: smaller;
+}
+ul.help-subtoc > li::before {
+ content: "\2022" ;
+ padding-right:2px;
+}
+.help-note {
+ font-style: italic;
+}
+/*
+ * Indicator icon for external links.
+ */
+main a[href*="://"]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+ background-size:100% 100%;
+ width:7px;
+ height:7px;
+ margin-left:2px;
+ margin-bottom:4px;
+}
+main a[href*="://"]:hover::after,
+main a[href*="://"]:focus::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+}
+/*
+ * Styles for header/section anchor links
+ */
+a.anchor-link {
+ opacity: 0;
+ transition: opacity 0.1s 0.1s;
+}
+:hover > a.anchor-link {
+ opacity: 90%;
+}
+a.anchor-link:hover,
+a.anchor-link:focus-visible,
+a.anchor-link.visible {
+ opacity: 100%;
+}
+a.anchor-link > img {
+ width: 0.9em;
+ height: 0.9em;
+}
+/*
+ * Styles for copy-to-clipboard buttons
+ */
+button.copy {
+ font-size: var(--nav-font-size);
+ line-height: 1.2;
+ padding:0.3em;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ position: relative;
+ opacity: 80%;
+ transition: all 0.1s ease;
+ cursor: pointer;
+}
+button.copy:hover,
+button.copy:active,
+button.copy:focus,
+button.copy.visible {
+ opacity: 100%;
+ background-color: inherit;
+ border-color: var(--button-border-color);
+ filter: var(--button-focus-filter);
+}
+button.copy:active {
+ filter: var(--button-active-filter);
+}
+button.copy img {
+ position: relative;
+}
+button.copy span {
+ color: var(--body-text-color);
+ position: relative;
+ padding: 0.2em;
+ top: -0.1em;
+ transition: opacity 0.1s ease;
+ opacity: 0;
+}
+button.copy:hover span,
+button.copy:focus span,
+button.copy.visible span {
+ opacity: 100%;
+}
+/* search page copy button */
+button#page-search-copy {
+ margin-left: 0.4em;
+ top:0.13em;
+}
+button#page-search-copy img {
+ width: 1.2em;
+ height: 1.2em;
+ padding: 0.01em 0;
+ top: 0.15em;
+}
+button#page-search-copy span {
+ top: -0.18em;
+}
+/* snippet copy button */
+button.snippet-copy {
+ position: absolute;
+ top: 4px;
+ right: 1px;
+ height: 32px;
+}
+button.snippet-copy img {
+ width: 18px;
+ height: 18px;
+ padding: 2px 0;
+}
+button.snippet-copy span {
+ top: -7px;
+}
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ * No borders, vertical margins, styled caption.
+ * This style is provided for use with existing doc comments.
+ * In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ * Plain borders around table and cells, vertical margins, styled caption.
+ * Best for small tables or for complex tables for tables with cells that span
+ * rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ * Borders around the table and vertical borders between cells, striped rows,
+ * vertical margins, styled caption.
+ * Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+ font-weight: bold;
+ font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+ padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+ border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+ background-color: transparent;
+}
+table.plain {
+ border-collapse: collapse;
+ border: 1px solid var(--table-border-color);
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+ background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+ border: 1px solid var(--table-border-color);
+}
+table.striped {
+ border-collapse: collapse;
+ border: 1px solid var(--table-border-color);
+}
+table.striped > thead {
+ background-color: var(--subnav-background-color);
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+ border: 1px solid var(--table-border-color);
+}
+table.striped > tbody > tr:nth-child(even) {
+ background-color: var(--odd-row-color)
+}
+table.striped > tbody > tr:nth-child(odd) {
+ background-color: var(--even-row-color)
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+ border-left: 1px solid var(--table-border-color);
+ border-right: 1px solid var(--table-border-color);
+}
+table.striped > tbody > tr > th {
+ font-weight: normal;
+}
+/**
+ * Media queries for responsive design
+ */
+@media (prefers-reduced-motion: reduce) {
+ :root {
+ scroll-behavior: auto;
+ }
+}
+@media screen and (max-width: 1200px) {
+ input#search-input {
+ width: 22.5vw;
+ }
+}
+@media screen and (max-width: 1000px) {
+ .main-grid nav.toc {
+ display: none;
+ }
+ .top-nav nav.toc {
+ display: none;
+ position: absolute;
+ top: var(--top-nav-height);
+ left: 40vw;
+ width: 60vw;
+ z-index: 7;
+ background-color: var(--toc-background-color);
+ box-sizing: border-box;
+ }
+ .top-nav nav.toc div.toc-header {
+ padding: 6px 15px;
+ font-size: 0.94em;
+ background-color: var(--toc-background-color);
+ top: calc(var(--top-nav-height) + 10px);
+ }
+ .top-nav nav.toc ol.toc-list li {
+ font-size: 1.04em;
+ }
+ nav.toc a:link, nav.toc a:visited {
+ text-decoration:none;
+ color:var(--link-color);
+ }
+ nav.toc a[href]:hover, nav.toc a[href]:focus {
+ text-decoration:none;
+ color:var(--link-color-active);
+ }
+ :root {
+ scroll-behavior: auto;
+ }
+ header {
+ max-height: 100vh;
+ overflow-y: visible;
+ overscroll-behavior: contain;
+ }
+ nav {
+ overflow: visible;
+ }
+ ul.nav-list {
+ display: none;
+ position: absolute;
+ top: var(--top-nav-height);
+ overflow: auto;
+ z-index: 7;
+ background-color: var(--navbar-background-color);
+ width: 40%;
+ padding: 0;
+ box-sizing: border-box;
+ }
+ ul.nav-list li {
+ float: none;
+ padding: 6px;
+ margin-left: 10px;
+ margin-top: 2px;
+ }
+ .top-nav a:link, .top-nav a:active, .top-nav a:visited {
+ display: block;
+ }
+ .top-nav div.nav-menu-button {
+ flex: 1 1 auto;
+ }
+ .sub-nav ol.sub-nav-list {
+ margin-left: 4px;
+ padding-left: 4px;
+ }
+ button#navbar-toggle-button {
+ width: 3.4em;
+ height: 2.8em;
+ background-color: transparent;
+ display: block;
+ border: 0;
+ margin: 0 10px;
+ cursor: pointer;
+ font-size: 10px;
+ }
+ button#navbar-toggle-button .nav-bar-toggle-icon {
+ display: block;
+ width: 24px;
+ height: 3px;
+ margin: 4px 0;
+ border-radius: 2px;
+ background-color: var(--navbar-text-color);
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) {
+ transform: rotate(45deg);
+ transform-origin: 10% 10%;
+ width: 26px;
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) {
+ opacity: 0;
+ }
+ button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) {
+ transform: rotate(-45deg);
+ transform-origin: 10% 90%;
+ width: 26px;
+ }
+ .ui-autocomplete {
+ display: block;
+ grid-template-columns: none;
+ }
+ .ui-autocomplete > li,
+ .ui-autocomplete > li > div,
+ .ui-autocomplete > li.result-item,
+ .ui-autocomplete > li.result-item > div {
+ grid-column: unset;
+ display: block;
+ grid-template-columns: none;
+ }
+ .ui-autocomplete > li.result-item {
+ line-height: 1.45;
+ }
+ .ui-autocomplete .search-result-label {
+ display: block;
+ }
+ .ui-autocomplete .search-result-desc {
+ display: block;
+ }
+}
+@media screen and (max-width: 800px) {
+ .about-language {
+ padding: 0 16px;
+ max-width: 90%;
+ }
+ ul.nav-list li {
+ margin-left: 5px;
+ }
+ main {
+ padding: 10px 12px;
+ }
+ body {
+ -webkit-text-size-adjust: none;
+ }
+}
+@media screen and (max-width: 600px) {
+ .nav-list-search > a {
+ display: none;
+ }
+ .member-signature {
+ white-space: pre-line;
+ }
+ .member-signature .annotations {
+ white-space: pre-wrap;
+ }
+ input#search-input {
+ width: 18vw;
+ }
+ .inherited-list h3 {
+ overflow: auto clip;
+ }
+ .summary section[class$="-summary"], .details section[class$="-details"],
+ .class-uses .detail, .serialized-class-details {
+ padding: 0;
+ }
+}
+pre.snippet {
+ background-color: var(--snippet-background-color);
+ color: var(--snippet-text-color);
+ padding: 12px;
+}
+div.snippet-container {
+ position: relative;
+ padding-right: 30px;
+ background-color: var(--snippet-background-color);
+}
+pre.snippet .italic {
+ font-style: italic;
+}
+pre.snippet .bold {
+ font-weight: bold;
+}
+pre.snippet .highlighted {
+ background-color: var(--snippet-highlight-color);
+ border-radius: 10%;
+}
+/*
+ * Hide navigation links and search box in print layout
+ */
+@media print {
+ ul.nav-list, div.sub-nav, .main-grid nav.toc, button.copy {
+ display:none;
+ }
+}
diff --git a/docs/Javadoc/apidocs/resource-files/x.svg b/docs/Javadoc/apidocs/resource-files/x.svg
new file mode 100644
index 0000000..1efb410
--- /dev/null
+++ b/docs/Javadoc/apidocs/resource-files/x.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/script-files/jquery-3.7.1.min.js b/docs/Javadoc/apidocs/script-files/jquery-3.7.1.min.js
new file mode 100644
index 0000000..7f37b5d
--- /dev/null
+++ b/docs/Javadoc/apidocs/script-files/jquery-3.7.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML=" ",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML=" ",le.option=!!xe.lastChild;var ke={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0{"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(x){x.ui=x.ui||{};x.ui.version="1.14.1";var n,s,C,k,o,l,a,r,u,i,h=0,c=Array.prototype.hasOwnProperty,d=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l,a={},r=t.split(".")[0];return"__proto__"===(t=t.split(".")[1])||"constructor"===t?x.error("Invalid widget name: "+t):(l=r+"-"+t,e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[l.toLowerCase()]=function(t){return!!x.data(t,l)},x[r]=x[r]||{},s=x[r][t],n=x[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n)},x.widget.extend=function(t){for(var e,i,s=d.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n{var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})})(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,e={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return e.element.toggleClass(this._classes(e),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var t=t.match(/^([\w:-]*)\s*(.*)$/),s=t[1]+a.eventNamespace,t=t[2];t?l.on(s,t,i):o.on(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}}),x.widget;function E(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function T(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,k=Math.abs,o=/left|center|right/,l=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,u=/%$/,i=x.fn.position,x.position={scrollbarWidth:function(){var t,e,i;return void 0!==s?s:(i=(e=x("")).children()[0],x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(k(s),k(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})):i.apply(this,arguments)},x.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,l=n-o,a=o+e.collisionWidth-s-n;s",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent)&&/^mouse/.test(t.originalEvent.type)?(this.menu.blur(),this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)})):(s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("").text(i))},100)))},menuselect:function(t,e){var e=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.trigger("focus"),this.previous=i),!1!==this._trigger("select",t,{item:e})&&this._value(e.value),this.term=this._value(),this.close(t),this.selectedItem=e}}),this.liveRegion=x("
",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=(t=(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))&&t[0]?t:this.element.closest(".ui-front, dialog")).length?t:this.document[0].body},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length
").append(x("").text(e.label)).appendTo(t)},_move:function(t,e){this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur()):this.menu[t](e):this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1
").text(e))},100))}}),x.ui.autocomplete});
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/script-files/script.js b/docs/Javadoc/apidocs/script-files/script.js
new file mode 100644
index 0000000..02b1207
--- /dev/null
+++ b/docs/Javadoc/apidocs/script-files/script.js
@@ -0,0 +1,585 @@
+/*
+ * Copyright (c) 2013, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+
+var oddRowColor = "odd-row-color";
+var evenRowColor = "even-row-color";
+var sortAsc = "sort-asc";
+var sortDesc = "sort-desc";
+var tableTab = "table-tab";
+var activeTableTab = "active-table-tab";
+
+const linkIcon = "Link icon";
+const linkToSection = "Link to this section";
+
+if (typeof hljs !== "undefined") {
+ try {
+ hljs.highlightAll();
+ } catch (err) {
+ console.error(err)
+ }
+}
+
+function loadScripts(doc, tag) {
+ createElem(doc, tag, 'script-files/search.js');
+
+ createElem(doc, tag, 'module-search-index.js');
+ createElem(doc, tag, 'package-search-index.js');
+ createElem(doc, tag, 'type-search-index.js');
+ createElem(doc, tag, 'member-search-index.js');
+ createElem(doc, tag, 'tag-search-index.js');
+}
+
+function createElem(doc, tag, path) {
+ var script = doc.createElement(tag);
+ var scriptElement = doc.getElementsByTagName(tag)[0];
+ script.src = pathtoroot + path;
+ scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+// Helper for making content containing release names comparable lexicographically
+function makeComparable(s) {
+ return s.toLowerCase().replace(/(\d+)/g,
+ function(n, m) {
+ return ("000" + m).slice(-4);
+ });
+}
+
+// Switches between two styles depending on a condition
+function toggleStyle(classList, condition, trueStyle, falseStyle) {
+ if (condition) {
+ classList.remove(falseStyle);
+ classList.add(trueStyle);
+ } else {
+ classList.remove(trueStyle);
+ classList.add(falseStyle);
+ }
+}
+
+// Sorts the rows in a table lexicographically by the content of a specific column
+function sortTable(header, columnIndex, columns) {
+ var container = header.parentElement;
+ var descending = header.classList.contains(sortAsc);
+ container.querySelectorAll("div.table-header").forEach(
+ function(header) {
+ header.classList.remove(sortAsc);
+ header.classList.remove(sortDesc);
+ }
+ )
+ var cells = container.children;
+ var rows = [];
+ for (var i = columns; i < cells.length; i += columns) {
+ rows.push(Array.prototype.slice.call(cells, i, i + columns));
+ }
+ var comparator = function(a, b) {
+ var ka = makeComparable(a[columnIndex].textContent);
+ var kb = makeComparable(b[columnIndex].textContent);
+ if (ka < kb)
+ return descending ? 1 : -1;
+ if (ka > kb)
+ return descending ? -1 : 1;
+ return 0;
+ };
+ var sorted = rows.sort(comparator);
+ var visible = 0;
+ sorted.forEach(function(row) {
+ if (row[0].style.display !== 'none') {
+ var isEvenRow = visible++ % 2 === 0;
+ }
+ row.forEach(function(cell) {
+ toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor);
+ container.appendChild(cell);
+ })
+ });
+ toggleStyle(header.classList, descending, sortDesc, sortAsc);
+}
+
+// Toggles the visibility of a table category in all tables in a page
+function toggleGlobal(checkbox, selected, columns) {
+ const display = checkbox.checked ? '' : 'none';
+ const selectOther = selected === "other";
+ const selectAll = selected === "all";
+ if (selectAll) {
+ document.querySelectorAll('.checkboxes input[type="checkbox"]').forEach(c => {
+ c.checked = checkbox.checked;
+ });
+ }
+ document.querySelectorAll("div.table-tabs").forEach(t => {
+ const id = t.parentElement.getAttribute("id");
+ const selectedClass = id + "-tab" + (selectOther ? "" : selected);
+ var visible = 0;
+ t.parentElement.querySelectorAll('div.' + id)
+ .forEach(function(elem) {
+ if (selectAll
+ || (!selectOther && elem.classList.contains(selectedClass))
+ || (selectOther && elem.className.indexOf(selectedClass) < 0)) {
+ elem.style.display = display;
+ }
+ if (elem.style.display === '') {
+ var isEvenRow = visible++ % (columns * 2) < columns;
+ toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor);
+ }
+ });
+ var displaySection = visible === 0 ? 'none' : '';
+ t.parentElement.style.display = displaySection;
+ document.querySelector("li#contents-" + id).style.display = displaySection;
+ })
+}
+
+// Shows the elements of a table belonging to a specific category
+function show(tableId, selected, columns) {
+ if (tableId !== selected) {
+ document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
+ .forEach(function(elem) {
+ elem.style.display = 'none';
+ });
+ }
+ document.querySelectorAll('div.' + selected)
+ .forEach(function(elem, index) {
+ elem.style.display = '';
+ var isEvenRow = index % (columns * 2) < columns;
+ toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor);
+ });
+ updateTabs(tableId, selected);
+}
+
+function updateTabs(tableId, selected) {
+ document.getElementById(tableId + '.tabpanel')
+ .setAttribute('aria-labelledby', selected);
+ document.querySelectorAll('button[id^="' + tableId + '"]')
+ .forEach(function(tab, index) {
+ if (selected === tab.id || (tableId === selected && index === 0)) {
+ tab.className = activeTableTab;
+ tab.setAttribute('aria-selected', true);
+ tab.setAttribute('tabindex',0);
+ } else {
+ tab.className = tableTab;
+ tab.setAttribute('aria-selected', false);
+ tab.setAttribute('tabindex',-1);
+ }
+ });
+}
+
+function switchTab(e) {
+ var selected = document.querySelector('[aria-selected=true]');
+ if (selected) {
+ if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
+ // left or up arrow key pressed: move focus to previous tab
+ selected.previousSibling.click();
+ selected.previousSibling.focus();
+ e.preventDefault();
+ } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
+ // right or down arrow key pressed: move focus to next tab
+ selected.nextSibling.click();
+ selected.nextSibling.focus();
+ e.preventDefault();
+ }
+ }
+}
+
+var updateSearchResults = function() {};
+
+function indexFilesLoaded() {
+ return moduleSearchIndex
+ && packageSearchIndex
+ && typeSearchIndex
+ && memberSearchIndex
+ && tagSearchIndex;
+}
+// Copy the contents of the local snippet to the clipboard
+function copySnippet(button) {
+ copyToClipboard(button.nextElementSibling.innerText);
+ switchCopyLabel(button, button.firstElementChild);
+}
+function copyToClipboard(content) {
+ var textarea = document.createElement("textarea");
+ textarea.style.height = 0;
+ document.body.appendChild(textarea);
+ textarea.value = content;
+ textarea.select();
+ document.execCommand("copy");
+ document.body.removeChild(textarea);
+}
+function resetInput(input, event, blur) {
+ if (input.value) {
+ input.value = "";
+ input.dispatchEvent(new InputEvent("input"));
+ } else if (blur) {
+ input.blur();
+ }
+ event.preventDefault();
+}
+function isInput(elem) {
+ return elem instanceof HTMLInputElement && elem.type === "text";
+}
+function switchCopyLabel(button, span) {
+ var copied = span.getAttribute("data-copied");
+ button.classList.add("visible");
+ var initialLabel = span.innerHTML;
+ span.innerHTML = copied;
+ setTimeout(function() {
+ button.classList.remove("visible");
+ setTimeout(function() {
+ if (initialLabel !== copied) {
+ span.innerHTML = initialLabel;
+ }
+ }, 100);
+ }, 1900);
+}
+function makeFilterWidget(sidebar, updateToc) {
+ if (!sidebar) {
+ return null;
+ }
+ const filterInput = sidebar.querySelector("input.filter-input");
+ const resetInput = sidebar.querySelector("input.reset-filter");
+ sidebar.addEventListener("keydown", e => {
+ if (e.ctrlKey || e.altKey || e.metaKey) {
+ return;
+ }
+ if (e.key === "ArrowUp" || e.key === "ArrowDown") {
+ handleTocFocus(e);
+ } else if (filterInput && e.target !== filterInput) {
+ if (e.key === "Enter" && isTocLink(sidebar, e.target)) {
+ filterInput.value = "";
+ filterInput.dispatchEvent(new InputEvent("input"));
+ } else if (e.key.length === 1 || e.key === "Backspace") {
+ filterInput.focus();
+ }
+ }
+ });
+ if (filterInput) {
+ filterInput.removeAttribute("disabled");
+ filterInput.setAttribute("autocapitalize", "off");
+ filterInput.value = "";
+ filterInput.addEventListener("input", function(e) {
+ resetInput.style.visibility = filterInput.value ? "visible" : "hidden";
+ const pattern = filterInput.value ? filterInput.value.trim()
+ .replace(/[\[\]{}()*+?.\\^$|]/g, '\\$&')
+ .replace(/\s+/g, ".*") : "";
+ const filter = new RegExp(pattern, "i");
+ sidebar.querySelectorAll("ol.toc-list li").forEach((li) => {
+ if (filter.test(li.innerText)) {
+ // li.removeAttribute("style");
+ const selfMatch = filter.test(li.firstElementChild.innerText);
+ li.style.display = "block";
+ li.firstElementChild.style.opacity = selfMatch ? "100%" : "70%";
+ li.firstElementChild.tabIndex = selfMatch ? 0 : -1;
+ } else {
+ li.style.display = "none";
+ }
+ });
+ updateToc();
+ });
+ }
+ if (resetInput) {
+ resetInput.removeAttribute("disabled");
+ resetInput.addEventListener("click", (e) => {
+ filterInput.value = "";
+ filterInput.focus();
+ filterInput.dispatchEvent(new InputEvent("input"));
+ });
+ }
+ function handleTocFocus(event) {
+ let links = Array.from(sidebar.querySelectorAll("ol > li > a"))
+ .filter(link => link.offsetParent && link.tabIndex === 0);
+ let current = links.indexOf(document.activeElement);
+ if (event.key === "ArrowUp") {
+ if (current > 0) {
+ links[current - 1].focus({focusVisible: true});
+ } else if (filterInput) {
+ filterInput.focus();
+ }
+ } else if (event.key === "ArrowDown" && current < links.length - 1) {
+ links[current + 1].focus({focusVisible: true});
+ }
+ event.preventDefault();
+ }
+ function isTocLink(sidebar, elem) {
+ let links = Array.from(sidebar.querySelectorAll("ol > li > a"))
+ .filter(link => link.offsetParent && link.tabIndex === 0);
+ return links.indexOf(elem) > -1;
+ }
+ return sidebar;
+}
+
+function setTopMargin() {
+ // Dynamically set scroll margin to accomodate for draft header
+ var headerHeight = Math.ceil(document.querySelector("header").offsetHeight);
+ document.querySelector(":root")
+ .style.setProperty("--nav-height", headerHeight + "px");
+}
+document.addEventListener("readystatechange", (e) => {
+ if (document.readyState === "interactive") {
+ setTopMargin();
+ }
+ if (sessionStorage.getItem("sidebar") === "hidden") {
+ const sidebar = document.querySelector(".main-grid nav.toc");
+ if (sidebar) sidebar.classList.add("hide-sidebar");
+ }
+});
+document.addEventListener("DOMContentLoaded", function(e) {
+ setTopMargin();
+ // Make sure current element is visible in breadcrumb navigation on small displays
+ const subnav = document.querySelector("ol.sub-nav-list");
+ if (subnav && subnav.lastElementChild) {
+ subnav.lastElementChild.scrollIntoView({ behavior: "instant", inline: "start", block: "nearest" });
+ }
+ const keymap = new Map();
+ const searchInput = document.getElementById("search-input")
+ || document.getElementById("page-search-input");
+ if (searchInput) {
+ searchInput.addEventListener("focus", collapse);
+ keymap.set("/", searchInput);
+ }
+ const filterInput = document.querySelector("input.filter-input");
+ if (filterInput) {
+ keymap.set(".", filterInput);
+ }
+ // Clone TOC sidebar to header for mobile navigation
+ const navbar = document.querySelector("div#navbar-top");
+ const sidebar = document.querySelector(".main-grid nav.toc");
+ const main = document.querySelector(".main-grid main");
+ const mainnav = navbar.querySelector("ul.nav-list");
+ const toggleButton = document.querySelector("button#navbar-toggle-button");
+ const tocMenu = sidebar ? sidebar.cloneNode(true) : null;
+ makeFilterWidget(sidebar, updateToc);
+ if (tocMenu) {
+ navbar.appendChild(tocMenu);
+ makeFilterWidget(tocMenu, updateToc);
+ var menuInput = tocMenu.querySelector("input.filter-input");
+ }
+ document.addEventListener("keydown", (e) => {
+ if (e.ctrlKey || e.altKey || e.metaKey) {
+ return;
+ }
+ if (!isInput(e.target) && keymap.has(e.key)) {
+ var elem = keymap.get(e.key);
+ if (elem === filterInput && !elem.offsetParent) {
+ elem = getVisibleFilterInput(true);
+ }
+ elem.focus();
+ elem.select();
+ e.preventDefault();
+ } else if (e.key === "Escape") {
+ if (expanded) {
+ collapse();
+ e.preventDefault();
+ } else if (e.target.id === "page-search-input") {
+ resetInput(e.target, e, false);
+ } else if (isInput(e.target)) {
+ resetInput(e.target, e, true);
+ } else {
+ var filter = getVisibleFilterInput(false);
+ if (filter && filter.value) {
+ resetInput(filterInput, e, true);
+ }
+ }
+ }
+ });
+ var expanded = false;
+ var windowWidth;
+ var bodyHeight;
+ function collapse() {
+ if (expanded) {
+ mainnav.removeAttribute("style");
+ if (tocMenu) {
+ tocMenu.removeAttribute("style");
+ if (filterInput) {
+ keymap.set(".", filterInput);
+ }
+ }
+ toggleButton.classList.remove("expanded")
+ toggleButton.setAttribute("aria-expanded", "false");
+ expanded = false;
+ }
+ }
+ function expand() {
+ expanded = true;
+ mainnav.style.display = "block";
+ mainnav.style.removeProperty("height");
+ var maxHeight = window.innerHeight - subnav.offsetTop + 4;
+ var expandedHeight = Math.min(maxHeight, mainnav.scrollHeight + 10);
+ if (tocMenu) {
+ tocMenu.style.display = "flex";
+ expandedHeight = Math.min(maxHeight,
+ Math.max(expandedHeight, tocMenu.querySelector("div.toc-header").offsetHeight
+ + tocMenu.querySelector("ol.toc-list").scrollHeight + 10));
+ tocMenu.style.height = expandedHeight + "px";
+ if (menuInput) {
+ keymap.set(".", menuInput);
+ }
+ }
+ mainnav.style.height = expandedHeight + "px";
+ toggleButton.classList.add("expanded");
+ toggleButton.setAttribute("aria-expanded", "true");
+ windowWidth = window.innerWidth;
+ }
+ function updateToc() {
+ if (expanded) {
+ expand();
+ } else {
+ prevHash = null;
+ handleScroll();
+ }
+ }
+ function getVisibleFilterInput(show) {
+ if (sidebar && sidebar.offsetParent) {
+ if (show) {
+ showSidebar();
+ }
+ return filterInput;
+ } else {
+ if (show) {
+ expand();
+ }
+ return menuInput;
+ }
+ }
+ toggleButton.addEventListener("click", (e) => {
+ if (expanded) {
+ collapse();
+ } else {
+ expand();
+ }
+ });
+ if (tocMenu) {
+ tocMenu.querySelectorAll("a").forEach((link) => {
+ link.addEventListener("click", collapse);
+ });
+ }
+ document.querySelector("main").addEventListener("click", collapse);
+ document.querySelectorAll("h1, h2, h3, h4, h5, h6")
+ .forEach((hdr, idx) => {
+ // Create anchor links for headers with an associated id attribute
+ var id = hdr.parentElement.getAttribute("id") || hdr.getAttribute("id")
+ || (hdr.querySelector("a") && hdr.querySelector("a").getAttribute("id"));
+ if (id) {
+ var template = document.createElement('template');
+ template.innerHTML =" ";
+ hdr.append(...template.content.childNodes);
+ }
+ });
+ var sections;
+ var scrollTimeout;
+ var prevHash;
+ function initSectionData() {
+ bodyHeight = document.body.offsetHeight;
+ sections = [{ id: "", top: 0 }].concat(Array.from(main.querySelectorAll(
+ "section[id], h2[id], h2 a[id], h3[id], h3 a[id], div[id]"))
+ .filter((e) => {
+ return sidebar.querySelector("a[href=\"#" + encodeURI(e.getAttribute("id")) + "\"]") !== null
+ }).map((e) => {
+ return {
+ id: e.getAttribute("id"),
+ top: e.offsetTop
+ };
+ }));
+ }
+ function setScrollTimeout() {
+ if (scrollTimeout) {
+ clearTimeout(scrollTimeout);
+ }
+ scrollTimeout = setTimeout(() => {
+ scrollTimeout = null;
+ }, 100);
+ }
+ function handleScroll() {
+ if (!sidebar || !sidebar.offsetParent || sidebar.classList.contains("hide-sidebar")) {
+ return;
+ }
+ if (scrollTimeout) {
+ setScrollTimeout();
+ return;
+ }
+ var scrollTop = document.documentElement.scrollTop;
+ var scrollHeight = document.documentElement.scrollHeight;
+ var currHash = null;
+ for (var i = 0; i < sections.length; i++) {
+ var top = sections[i].top;
+ var bottom = sections[i + 1] ? sections[i + 1].top : scrollHeight;
+ if (top + ((bottom - top) / 2) > scrollTop || bottom > scrollTop + (window.innerHeight / 3)) {
+ currHash = "#" + encodeURI(sections[i].id);
+ break;
+ }
+ }
+ if (currHash !== prevHash) {
+ setSelected(currHash);
+ }
+ }
+ function setSelected(hash) {
+ var prev = sidebar.querySelector("a.current-selection");
+ if (prev)
+ prev.classList.remove("current-selection");
+ prevHash = hash;
+ if (hash) {
+ var curr = sidebar.querySelector("ol.toc-list a[href=\"" + hash + "\"]");
+ if (curr) {
+ curr.classList.add("current-selection");
+ curr.scrollIntoView({ behavior: "instant", block: "nearest" });
+ }
+ }
+ }
+ function hideSidebar() {
+ sidebar.classList.add("hide-sidebar");
+ sessionStorage.setItem("sidebar", "hidden");
+ }
+ function showSidebar() {
+ sidebar.classList.remove("hide-sidebar");
+ sessionStorage.removeItem("sidebar");
+ initSectionData();
+ handleScroll();
+ }
+ if (sidebar) {
+ initSectionData();
+ document.querySelectorAll("a[href^='#']").forEach((link) => {
+ link.addEventListener("click", (e) => {
+ link.blur();
+ setScrollTimeout();
+ setSelected(link.getAttribute("href"));
+ })
+ });
+ sidebar.querySelector("button.hide-sidebar").addEventListener("click", hideSidebar);
+ sidebar.querySelector("button.show-sidebar").addEventListener("click", showSidebar);
+ window.addEventListener("hashchange", (e) => {
+ setScrollTimeout();
+ const hash = e.newURL.indexOf("#");
+ if (hash > -1) {
+ setSelected(e.newURL.substring(hash));
+ }
+ });
+ if (document.location.hash) {
+ setScrollTimeout();
+ setSelected(document.location.hash);
+ } else {
+ handleScroll();
+ }
+ window.addEventListener("scroll", handleScroll);
+ }
+ // Resize handler
+ new ResizeObserver((entries) => {
+ if (expanded) {
+ if (windowWidth !== window.innerWidth) {
+ collapse();
+ } else {
+ expand();
+ }
+ }
+ if (sections && document.body.offsetHeight !== bodyHeight) {
+ initSectionData();
+ prevHash = null;
+ handleScroll();
+ }
+ setTopMargin();
+ }).observe(document.body);
+});
diff --git a/docs/Javadoc/apidocs/script-files/search-page.js b/docs/Javadoc/apidocs/script-files/search-page.js
new file mode 100644
index 0000000..ec0d815
--- /dev/null
+++ b/docs/Javadoc/apidocs/script-files/search-page.js
@@ -0,0 +1,348 @@
+/*
+ * Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+ */
+
+"use strict";
+$(function() {
+ var copy = $("#page-search-copy");
+ var expand = $("#page-search-expand");
+ var searchLink = $("span#page-search-link");
+ var redirect = $("input#search-redirect");
+ function setSearchUrlTemplate() {
+ var href = document.location.href.split(/[#?]/)[0];
+ href += "?q=" + "%s";
+ if (redirect.is(":checked")) {
+ href += "&r=1";
+ }
+ searchLink.html(href);
+ copy[0].onmouseenter();
+ }
+ function copyLink(e) {
+ copyToClipboard(this.previousSibling.innerText);
+ switchCopyLabel(this, this.lastElementChild);
+ }
+ copy.on("click", copyLink);
+ copy[0].onmouseenter = function() {};
+ redirect.on("click", setSearchUrlTemplate);
+ setSearchUrlTemplate();
+ copy.prop("disabled", false);
+ redirect.prop("disabled", false);
+ expand.on("click", function (e) {
+ var searchInfo = $("div.page-search-info");
+ if(this.parentElement.hasAttribute("open")) {
+ searchInfo.attr("style", " display:none;");
+ } else {
+ searchInfo.attr("style", "display:block;");
+ }
+ });
+});
+$(window).on("load", function() {
+ var input = $("#page-search-input");
+ var reset = $("#page-search-reset");
+ var modules = $("#search-modules");
+ var notify = $("#page-search-notify");
+ var resultSection = $("div#result-section");
+ var resultContainer = $("div#result-container");
+ var selectedLink;
+ var searchTerm = "";
+ var activeTab = "";
+ var fixedTab = false;
+ var visibleTabs = [];
+ var feelingLucky = false;
+ const MIN_TABBED_RESULTS = 10;
+ function renderResults(result) {
+ if (!result.length) {
+ notify.html(messages.noResult);
+ } else if (result.length === 1) {
+ notify.html(messages.oneResult);
+ } else {
+ notify.html(messages.manyResults.replace("{0}", result.length));
+ }
+ resultContainer.empty();
+ var r = {
+ "types": [],
+ "members": [],
+ "packages": [],
+ "modules": [],
+ "searchTags": []
+ };
+ for (var i in result) {
+ var item = result[i];
+ var arr = r[item.category];
+ arr.push(item);
+ }
+ if (!activeTab || r[activeTab].length === 0) {
+ activeTab = Object.keys(r).find(category => r[category].length > 0);
+ }
+ if (feelingLucky && activeTab) {
+ notify.html(messages.redirecting)
+ var firstItem = r[activeTab][0];
+ window.location = getURL(firstItem.indexItem, firstItem.category);
+ return;
+ }
+ if (searchTerm.endsWith(".") && result.length > MIN_TABBED_RESULTS) {
+ if (activeTab === "types" && r["members"].length > r["types"].length) {
+ activeTab = "members";
+ } else if (activeTab === "packages" && r["types"].length > r["packages"].length) {
+ activeTab = "types";
+ }
+ }
+ var categoryCount = Object.keys(r).reduce(function(prev, curr) {
+ return prev + (r[curr].length > 0 ? 1 : 0);
+ }, 0);
+ visibleTabs = [];
+ var tabContainer = $("
").appendTo(resultContainer);
+ for (var key in r) {
+ var id = "#result-tab-" + key.replace("searchTags", "search_tags");
+ if (r[key].length) {
+ var count = r[key].length >= 1000 ? "999+" : r[key].length;
+ if (result.length > MIN_TABBED_RESULTS && categoryCount > 1) {
+ let button = $(" ")
+ .attr("id", "result-tab-" + key)
+ .attr("tabIndex", "-1")
+ .addClass("page-search-header")
+ .append($(" ")
+ .html(categories[key])
+ .append($(" ")
+ .attr("style", "font-weight:normal;")
+ .html(" (" + count + ")")))
+ .on("click", null, key, function(e) {
+ fixedTab = true;
+ renderResult(e.data, $(this));
+ }).appendTo(tabContainer);
+ visibleTabs.push(key);
+ } else {
+ $("").appendTo(tabContainer);
+ renderTable(key, r[key]).appendTo(resultContainer);
+ tabContainer = $("
").appendTo(resultContainer);
+ }
+ }
+ }
+ if (activeTab && result.length > MIN_TABBED_RESULTS && categoryCount > 1) {
+ $("button#result-tab-" + activeTab).addClass("active-table-tab").attr("tabIndex", "0");
+ renderTable(activeTab, r[activeTab]).appendTo(resultContainer);
+ }
+ resultSection.show();
+ function renderResult(category, button) {
+ activeTab = category;
+ setSearchUrl();
+ resultContainer.find("div.result-table").remove();
+ renderTable(activeTab, r[activeTab]).appendTo(resultContainer);
+ button.siblings().removeClass("active-table-tab").attr("tabIndex", "-1");
+ button.addClass("active-table-tab").attr("tabIndex", "0");
+ }
+ }
+ function selectTab(category) {
+ $("button#result-tab-" + category).focus().trigger("click");
+ }
+ function renderTable(category, items) {
+ var table = $("");
+ var col1, col2;
+ if (category === "modules") {
+ col1 = mdlDesc;
+ } else if (category === "packages") {
+ col1 = pkgDesc;
+ } else if (category === "types") {
+ col1 = clsDesc;
+ } else if (category === "members") {
+ col1 = mbrDesc;
+ } else if (category === "searchTags") {
+ col1 = tagDesc;
+ }
+ col2 = descDesc;
+ $("")
+ .append($("").html(col1))
+ .append($("").html(col2))
+ .appendTo(table);
+ $.each(items, function(index, item) {
+ renderItem(item, table);
+ });
+ return table;
+ }
+ function select() {
+ if (!this.classList.contains("selected")) {
+ setSelected(this);
+ }
+ }
+ function unselect() {
+ if (this.classList.contains("selected")) {
+ setSelected(null);
+ }
+ }
+ function renderItem(item, table) {
+ var label = getResultLabel(item);
+ var desc = getResultDescription(item);
+ var link = $("
")
+ .attr("href", getURL(item.indexItem, item.category))
+ .attr("tabindex", "0")
+ .addClass("search-result-link");
+ link.on("mousemove", select.bind(link[0]))
+ .on("focus", select.bind(link[0]))
+ .on("mouseleave", unselect.bind(link[0]))
+ .on("blur", unselect.bind(link[0]))
+ .append($("
").addClass("search-result-label").html(label))
+ .append($("
").addClass("search-result-desc").html(desc))
+ .appendTo(table);
+ }
+ var timeout;
+ function schedulePageSearch() {
+ if (timeout) {
+ clearTimeout(timeout);
+ }
+ timeout = setTimeout(function () {
+ doPageSearch()
+ }, 100);
+ }
+ function doPageSearch() {
+ setSearchUrl();
+ var term = searchTerm = input.val().trim();
+ if (term === "") {
+ notify.html(messages.enterTerm);
+ activeTab = "";
+ fixedTab = false;
+ resultContainer.empty();
+ resultSection.hide();
+ } else {
+ notify.html(messages.searching);
+ var module = modules.val();
+ doSearch({ term: term, maxResults: 1200, module: module}, renderResults);
+ }
+ }
+ function setSearchUrl() {
+ var query = input.val().trim();
+ var url = document.location.pathname;
+ if (query) {
+ url += "?q=" + encodeURI(query);
+ if (activeTab && fixedTab) {
+ url += "&c=" + activeTab;
+ }
+ if (modules.val()) {
+ url += "&m=" + modules.val();
+ }
+ }
+ history.replaceState({query: query}, "", url);
+ }
+ input.on("input", function(e) {
+ feelingLucky = false;
+ reset.css("visibility", input.val() ? "visible" : "hidden");
+ schedulePageSearch();
+ });
+ function setSelected(link) {
+ if (selectedLink) {
+ selectedLink.classList.remove("selected");
+ selectedLink.blur();
+ }
+ if (link) {
+ link.classList.add("selected");
+ link.focus({focusVisible: true});
+ }
+ selectedLink = link;
+ }
+ document.addEventListener("keydown", e => {
+ if (e.ctrlKey || e.altKey || e.metaKey) {
+ return;
+ }
+ if (e.key === "Escape" && input.val()) {
+ input.val("").focus();
+ doPageSearch();
+ e.preventDefault();
+ }
+ if (e.target === modules[0]) {
+ return;
+ }
+ if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
+ if (activeTab && visibleTabs.length > 1 && e.target !== input[0]) {
+ var tab = visibleTabs.indexOf(activeTab);
+ var newTab = e.key === "ArrowLeft"
+ ? Math.max(0, tab - 1)
+ : Math.min(visibleTabs.length - 1, tab + 1);
+ if (newTab !== tab) {
+ selectTab(visibleTabs[newTab]);
+ }
+ e.preventDefault();
+ }
+ } else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
+ let links = Array.from(
+ document.querySelectorAll("div.result-table > a.search-result-link"));
+ let current = links.indexOf(selectedLink);
+ let activeButton = document.querySelector("button.active-table-tab");
+ if (e.key === "ArrowUp" || (e.key === "Tab" && e.shiftKey)) {
+ if (current > 0) {
+ setSelected(links[current - 1]);
+ } else {
+ setSelected(null);
+ if (activeButton && current === 0) {
+ activeButton.focus();
+ } else {
+ input.focus();
+ }
+ }
+ } else if (e.key === "ArrowDown") {
+ if (document.activeElement === input[0] && activeButton) {
+ activeButton.focus();
+ } else if (current < links.length - 1) {
+ setSelected(links[current + 1]);
+ }
+ }
+ e.preventDefault();
+ } else if (e.key.length === 1 || e.key === "Backspace") {
+ setSelected(null);
+ input.focus();
+ }
+ });
+ reset.on("click", function() {
+ notify.html(messages.enterTerm);
+ resultSection.hide();
+ activeTab = "";
+ fixedTab = false;
+ resultContainer.empty();
+ input.val('').focus();
+ setSearchUrl();
+ });
+ modules.on("change", function() {
+ if (input.val()) {
+ doPageSearch();
+ }
+ input.focus();
+ try {
+ localStorage.setItem("search-modules", modules.val());
+ } catch (unsupported) {}
+ });
+
+ input.prop("disabled", false);
+ input.attr("autocapitalize", "off");
+ reset.prop("disabled", false);
+
+ var urlParams = new URLSearchParams(window.location.search);
+ if (urlParams.has("m")) {
+ modules.val(urlParams.get("m"));
+ } else {
+ try {
+ var searchModules = localStorage.getItem("search-modules");
+ if (searchModules) {
+ modules.val(searchModules);
+ }
+ } catch (unsupported) {}
+ }
+ if (urlParams.has("q")) {
+ input.val(urlParams.get("q"));
+ reset.css("visibility", input.val() ? "visible" : "hidden");
+ }
+ if (urlParams.has("c")) {
+ activeTab = urlParams.get("c");
+ fixedTab = true;
+ }
+ if (urlParams.get("r")) {
+ feelingLucky = true;
+ }
+ if (input.val()) {
+ doPageSearch();
+ } else {
+ notify.html(messages.enterTerm);
+ }
+ input.select().focus();
+});
diff --git a/docs/Javadoc/apidocs/script-files/search.js b/docs/Javadoc/apidocs/script-files/search.js
new file mode 100644
index 0000000..eacb77c
--- /dev/null
+++ b/docs/Javadoc/apidocs/script-files/search.js
@@ -0,0 +1,549 @@
+/*
+ * Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+ */
+"use strict";
+const messages = {
+ enterTerm: "Enter a search term",
+ noResult: "No results found",
+ oneResult: "Found one result",
+ manyResults: "Found {0} results",
+ loading: "Loading search index...",
+ searching: "Searching...",
+ redirecting: "Redirecting to first result...",
+}
+const categories = {
+ modules: "Modules",
+ packages: "Packages",
+ types: "Classes and Interfaces",
+ members: "Members",
+ searchTags: "Search Tags"
+};
+// Localized element descriptors must match values in enum IndexItem.Kind.
+const itemDesc = [
+ // Members
+ ["Enum constant in {0}"],
+ ["Variable in {0}"],
+ ["Static variable in {0}"],
+ ["Constructor for {0}"],
+ ["Element in {0}"],
+ ["Method in {0}"],
+ ["Static method in {0}"],
+ ["Record component of {0}"],
+ // Types in upper and lower case
+ ["Annotation Interface", "annotation interface"],
+ ["Enum Class", "enum class"],
+ ["Interface", "interface"],
+ ["Record Class", "record class"],
+ ["Class", "class"],
+ ["Exception Class", "exception class"],
+ // Tags
+ ["Search tag in {0}"],
+ ["System property in {0}"],
+ ["Section in {0}"],
+ ["External specification in {0}"],
+ // Other
+ ["Summary Page"],
+];
+const mbrDesc = "Member";
+const clsDesc = "Class"
+const pkgDesc = "Package";
+const mdlDesc = "Module";
+const pkgDescLower = "package";
+const mdlDescLower = "module";
+const tagDesc = "Search Tag";
+const inDesc = "{0} in {1}";
+const descDesc = "Description";
+const linkLabel = "Go to search page";
+const NO_MATCH = {};
+const MAX_RESULTS = 300;
+const UNICODE_LETTER = 0;
+const UNICODE_DIGIT = 1;
+const UNICODE_OTHER = 2;
+function checkUnnamed(name, separator) {
+ return name === "
" || !name ? "" : name + separator;
+}
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(str, boundaries, from, to) {
+ var start = from;
+ var text = "";
+ for (var i = 0; i < boundaries.length; i += 2) {
+ var b0 = boundaries[i];
+ var b1 = boundaries[i + 1];
+ if (b0 >= to || b1 <= from) {
+ continue;
+ }
+ text += escapeHtml(str.slice(start, Math.max(start, b0)));
+ text += "";
+ text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
+ text += " ";
+ start = Math.min(to, b1);
+ }
+ text += escapeHtml(str.slice(start, to));
+ return text;
+}
+function getURLPrefix(item, category) {
+ var urlPrefix = "";
+ var slash = "/";
+ if (category === "modules") {
+ return item.l + slash;
+ } else if (category === "packages" && item.m) {
+ return item.m + slash;
+ } else if (category === "types" || category === "members") {
+ if (item.m) {
+ urlPrefix = item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, it) {
+ if (it.m && item.p === it.l) {
+ urlPrefix = it.m + slash;
+ item.m = it.m;
+ return false;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function getURL(item, category) {
+ if (item.url) {
+ return item.url;
+ }
+ var url = getURLPrefix(item, category);
+ if (category === "modules") {
+ url += "module-summary.html";
+ } else if (category === "packages") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (category === "types") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
+ }
+ } else if (category === "members") {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
+ if (item.u) {
+ url += item.u;
+ } else {
+ url += item.l;
+ }
+ } else if (category === "searchTags") {
+ url += item.u;
+ }
+ item.url = url;
+ return url;
+}
+function createMatcher(term, camelCase) {
+ if (camelCase && !isUpperCase(term)) {
+ return null; // no need for camel-case matcher for lower case query
+ }
+ var pattern = "";
+ var upperCase = [];
+ term.trim().split(/\s+/).forEach(function(w, index, array) {
+ var tokens = w.split(/(?=[\p{Lu},.()<>?[\/])/u);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ // ',' and '?' are the only delimiters commonly followed by space in java signatures
+ pattern += "(" + escapeUnicodeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
+ upperCase.push(false);
+ if (i === tokens.length - 1 && index < array.length - 1) {
+ // space in query string matches all delimiters
+ pattern += "(.*?)";
+ upperCase.push(isUpperCase(s[0]));
+ } else {
+ if (!camelCase && isUpperCase(s) && s.length === 1) {
+ pattern += "()";
+ } else {
+ pattern += "([\\p{L}\\p{Nd}\\p{Sc}<>?[\\]]*?)";
+ }
+ upperCase.push(isUpperCase(s[0]));
+ }
+ }
+ });
+ var re = new RegExp(pattern, camelCase ? "gu" : "gui");
+ re.upperCase = upperCase;
+ return re;
+}
+// Unicode regular expressions do not allow certain characters to be escaped
+function escapeUnicodeRegex(pattern) {
+ return pattern.replace(/[\[\]{}()*+?.\\^$|\s]/g, '\\$&');
+}
+function findMatch(matcher, input, startOfName, endOfName, prefixLength) {
+ var from = startOfName;
+ matcher.lastIndex = from;
+ var match = matcher.exec(input);
+ // Expand search area until we get a valid result or reach the beginning of the string
+ while (!match || match.index + match[0].length < startOfName || endOfName < match.index) {
+ if (from === 0) {
+ return NO_MATCH;
+ }
+ from = input.lastIndexOf(".", from - 2) + 1;
+ matcher.lastIndex = from;
+ match = matcher.exec(input);
+ }
+ var boundaries = [];
+ var matchEnd = match.index + match[0].length;
+ var score = 5;
+ var start = match.index;
+ var prevEnd = -1;
+ for (var i = 1; i < match.length; i += 2) {
+ var charType = getCharType(input[start]);
+ // capturing groups come in pairs, match and non-match
+ boundaries.push(start, start + match[i].length);
+ var prevChar = input[start - 1] || "";
+ var nextChar = input[start + 1] || "";
+ // make sure group is anchored on a word boundary
+ if (start !== 0 && start !== startOfName) {
+ if (charType === UNICODE_DIGIT && getCharType(prevChar) === UNICODE_DIGIT) {
+ return NO_MATCH; // Numeric token must match at first digit
+ } else if (charType === UNICODE_LETTER && getCharType(prevChar) === UNICODE_LETTER) {
+ if (!isUpperCase(input[start]) || (!isLowerCase(prevChar) && !isLowerCase(nextChar))) {
+ // Not returning NO_MATCH below is to enable upper-case query strings
+ if (!matcher.upperCase[i] || start !== prevEnd) {
+ return NO_MATCH;
+ } else if (!isUpperCase(input[start])) {
+ score -= 1.0;
+ }
+ }
+ }
+ }
+ prevEnd = start + match[i].length;
+ start += match[i].length + match[i + 1].length;
+
+ // Lower score for unmatched parts between matches
+ if (match[i + 1]) {
+ score -= rateDistance(match[i + 1]);
+ }
+ }
+
+ // Lower score for unmatched leading part of name
+ if (startOfName < match.index) {
+ score -= rateDistance(input.substring(startOfName, match.index));
+ }
+ // Favor child or parent variety depending on whether parent is included in search
+ var matchIncludesContaining = match.index < startOfName;
+ // Lower score for unmatched trailing part of name, but exclude member listings
+ if (matchEnd < endOfName && input[matchEnd - 1] !== ".") {
+ let factor = matchIncludesContaining ? 0.1 : 0.8;
+ score -= rateDistance(input.substring(matchEnd, endOfName)) * factor;
+ }
+ // Lower score for unmatched prefix in member class name
+ if (prefixLength < match.index && prefixLength < startOfName) {
+ let factor = matchIncludesContaining ? 0.8 : 0.4;
+ score -= rateDistance(input.substring(prefixLength, Math.min(match.index, startOfName))) * factor;
+ }
+ // Rank qualified names by package name
+ if (prefixLength > 0) {
+ score -= rateDistance(input.substring(0, prefixLength)) * 0.2;
+ }
+ // Reduce score of constructors in member listings
+ if (matchEnd === prefixLength) {
+ score -= 0.1;
+ }
+
+ return score > 0 ? {
+ input: input,
+ score: score,
+ boundaries: boundaries
+ } : NO_MATCH;
+}
+function isLetter(s) {
+ return /\p{L}/u.test(s);
+}
+function isUpperCase(s) {
+ return /\p{Lu}/u.test(s);
+}
+function isLowerCase(s) {
+ return /\p{Ll}/u.test(s);
+}
+function isDigit(s) {
+ return /\p{Nd}/u.test(s);
+}
+function getCharType(s) {
+ if (isLetter(s)) {
+ return UNICODE_LETTER;
+ } else if (isDigit(s)) {
+ return UNICODE_DIGIT;
+ } else {
+ return UNICODE_OTHER;
+ }
+}
+function rateDistance(str) {
+ // Rate distance of string by counting word boundaries and camel-case tokens
+ return !str ? 0
+ : (str.split(/\b|(?<=[\p{Ll}_])\p{Lu}/u).length * 0.1
+ + (isUpperCase(str[0]) ? 0.08 : 0));
+}
+function doSearch(request, response) {
+ var term = request.term.trim();
+ var maxResults = request.maxResults || MAX_RESULTS;
+ var module = checkUnnamed(request.module, "/");
+ var matcher = {
+ plainMatcher: createMatcher(term, false),
+ camelCaseMatcher: createMatcher(term, true)
+ }
+ var indexLoaded = indexFilesLoaded();
+
+ function getPrefix(item, category) {
+ switch (category) {
+ case "packages":
+ return checkUnnamed(item.m, "/");
+ case "types":
+ case "members":
+ return checkUnnamed(item.p, ".");
+ default:
+ return "";
+ }
+ }
+ function getClassPrefix(item, category) {
+ if (category === "members" && (!item.k || (item.k < 8 && item.k !== "3"))) {
+ return item.c + ".";
+ }
+ return "";
+ }
+ function searchIndex(indexArray, category) {
+ var matches = [];
+ if (!indexArray) {
+ if (!indexLoaded) {
+ matches.push({ l: messages.loading, category: category });
+ }
+ return matches;
+ }
+ $.each(indexArray, function (i, item) {
+ if (module) {
+ var modulePrefix = getURLPrefix(item, category) || item.u;
+ if (modulePrefix.indexOf("/") > -1 && !modulePrefix.startsWith(module)) {
+ return;
+ }
+ }
+ var prefix = getPrefix(item, category);
+ var classPrefix = getClassPrefix(item, category);
+ var simpleName = classPrefix + item.l;
+ if (item.d) {
+ simpleName += " - " + item.d;
+ }
+ var qualName = prefix + simpleName;
+ var startOfName = classPrefix.length + prefix.length;
+ var endOfName = category === "members" && qualName.indexOf("(", startOfName) > -1
+ ? qualName.indexOf("(", startOfName) : qualName.length;
+ var m = findMatch(matcher.plainMatcher, qualName, startOfName, endOfName, prefix.length);
+ if (m === NO_MATCH && matcher.camelCaseMatcher) {
+ m = findMatch(matcher.camelCaseMatcher, qualName, startOfName, endOfName, prefix.length);
+ }
+ if (m !== NO_MATCH) {
+ m.indexItem = item;
+ m.name = simpleName;
+ m.category = category;
+ if (m.boundaries[0] < prefix.length) {
+ m.name = qualName;
+ } else {
+ m.boundaries = m.boundaries.map(function(b) {
+ return b - prefix.length;
+ });
+ }
+ // m.name = m.name + " " + m.score.toFixed(3);
+ matches.push(m);
+ }
+ return true;
+ });
+ return matches.sort(function(e1, e2) {
+ return e2.score - e1.score
+ || (category !== "members"
+ ? e1.name.localeCompare(e2.name) : 0);
+ }).slice(0, maxResults);
+ }
+
+ var result = searchIndex(moduleSearchIndex, "modules")
+ .concat(searchIndex(packageSearchIndex, "packages"))
+ .concat(searchIndex(typeSearchIndex, "types"))
+ .concat(searchIndex(memberSearchIndex, "members"))
+ .concat(searchIndex(tagSearchIndex, "searchTags"));
+
+ if (!indexLoaded) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+// JQuery search menu implementation
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> .result-item");
+ // workaround for search result scrolling
+ this.menu._scrollIntoView = function _scrollIntoView( item ) {
+ var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+ if ( this._hasScroll() ) {
+ borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+ paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+ offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+ scroll = this.activeMenu.scrollTop();
+ elementHeight = this.activeMenu.height() - 26;
+ itemHeight = item.outerHeight();
+
+ if ( offset < 0 ) {
+ this.activeMenu.scrollTop( scroll + offset );
+ } else if ( offset + itemHeight > elementHeight ) {
+ this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+ }
+ }
+ };
+ },
+ _renderMenu: function(ul, items) {
+ var currentCategory = "";
+ var widget = this;
+ widget.menu.bindings = $();
+ $.each(items, function(index, item) {
+ if (item.category && item.category !== currentCategory) {
+ ul.append("" + categories[item.category] + " ");
+ currentCategory = item.category;
+ }
+ var li = widget._renderItemData(ul, item);
+ if (item.category) {
+ li.attr("aria-label", categories[item.category] + " : " + item.l);
+ } else {
+ li.attr("aria-label", item.l);
+ }
+ li.attr("class", "result-item");
+ });
+ ul.append(" ");
+ },
+ _renderItem: function(ul, item) {
+ var label = getResultLabel(item);
+ var resultDesc = getResultDescription(item);
+ return $(" ")
+ .append($("
")
+ .append($(" ").addClass("search-result-label").html(label))
+ .append($(" ").addClass("search-result-desc").html(resultDesc)))
+ .appendTo(ul);
+ },
+ _resizeMenu: function () {
+ var ul = this.menu.element;
+ var missing = 0;
+ ul.children().each((i, e) => {
+ if (e.hasChildNodes() && e.firstChild.hasChildNodes()) {
+ var label = e.firstChild.firstChild;
+ missing = Math.max(missing, label.scrollWidth - label.clientWidth);
+ }
+ });
+ ul.outerWidth( Math.max(
+ ul.width("").outerWidth() + missing + 40,
+ this.element.outerWidth()
+ ));
+ }
+});
+function getResultLabel(item) {
+ if (item.l) {
+ return item.l;
+ }
+ return getHighlightedText(item.name, item.boundaries, 0, item.name.length);
+}
+function getResultDescription(item) {
+ if (!item.indexItem) {
+ return "";
+ }
+ var kind;
+ switch (item.category) {
+ case "members":
+ var typeName = checkUnnamed(item.indexItem.p, ".") + item.indexItem.c;
+ var typeDesc = getEnclosingTypeDesc(item.indexItem);
+ kind = itemDesc[item.indexItem.k || 5][0];
+ return kind.replace("{0}", typeDesc + " " + typeName);
+ case "types":
+ var pkgName = checkUnnamed(item.indexItem.p, "");
+ kind = itemDesc[item.indexItem.k || 12][0];
+ if (!pkgName) {
+ // Handle "All Classes" summary page and unnamed package
+ return item.indexItem.k === "18" ? kind : kind + " " + item.indexItem.l;
+ }
+ return getEnclosingDescription(kind, pkgDescLower, pkgName);
+ case "packages":
+ if (item.indexItem.k === "18") {
+ return itemDesc[item.indexItem.k][0]; // "All Packages" summary page
+ } else if (!item.indexItem.m) {
+ return pkgDesc + " " + item.indexItem.l;
+ }
+ var mdlName = item.indexItem.m;
+ return getEnclosingDescription(pkgDesc, mdlDescLower, mdlName);
+ case "modules":
+ return mdlDesc + " " + item.indexItem.l;
+ case "searchTags":
+ if (item.indexItem) {
+ var holder = item.indexItem.h;
+ kind = itemDesc[item.indexItem.k || 14][0];
+ return holder ? kind.replace("{0}", holder) : kind;
+ }
+ }
+ return "";
+}
+function getEnclosingDescription(elem, desc, label) {
+ return inDesc.replace("{0}", elem).replace("{1}", desc + " " + label);
+}
+function getEnclosingTypeDesc(item) {
+ if (!item.typeDesc) {
+ $.each(typeSearchIndex, function(index, it) {
+ if (it.l === item.c && it.p === item.p && it.m === item.m) {
+ item.typeDesc = itemDesc[it.k || 12][1];
+ return false;
+ }
+ });
+ }
+ return item.typeDesc || "";
+}
+$(function() {
+ var search = $("#search-input");
+ var reset = $("#reset-search");
+ search.catcomplete({
+ minLength: 1,
+ delay: 200,
+ source: function(request, response) {
+ if (request.term.trim() === "") {
+ return this.close();
+ }
+ // Prevent selection of item at current mouse position
+ this.menu.previousFilter = "_";
+ this.menu.filterTimer = this.menu._delay(function() {
+ delete this.previousFilter;
+ }, 1000);
+ return doSearch(request, response);
+ },
+ response: function(event, ui) {
+ if (!ui.content.length) {
+ ui.content.push({ l: messages.noResult });
+ }
+ },
+ autoFocus: true,
+ focus: function(event, ui) {
+ return false;
+ },
+ position: {
+ collision: "flip"
+ },
+ select: function(event, ui) {
+ if (ui.item.indexItem) {
+ var url = getURL(ui.item.indexItem, ui.item.category);
+ window.location.href = pathtoroot + url;
+ search.blur();
+ }
+ }
+ });
+ search.val('');
+ search.on("input", () => reset.css("visibility", search.val() ? "visible" : "hidden"))
+ search.prop("disabled", false);
+ search.attr("autocapitalize", "off");
+ reset.prop("disabled", false);
+ reset.click(function() {
+ search.val('').focus();
+ });
+});
diff --git a/docs/Javadoc/apidocs/search.html b/docs/Javadoc/apidocs/search.html
new file mode 100644
index 0000000..7e3127c
--- /dev/null
+++ b/docs/Javadoc/apidocs/search.html
@@ -0,0 +1,82 @@
+
+
+
+
+Search (helpmehelpapplication 1.0-SNAPSHOT API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+Search
+
+
+Additional resources
+
+
+
+
The help page provides an introduction to the scope and syntax of JavaDoc search.
+
Use the
+↓
+/
+↑
+ keys to move between search results and the
+←
+/
+→
+ keys to switch between result tabs.
+
The URL template below may be useful to configure this page as a search engine or bookmarklet in browsers that support this feature.
+
link Copy
+
Redirect to first result
+
+Loading search index...
+
+
+
+
+
+
diff --git a/docs/Javadoc/apidocs/tag-search-index.js b/docs/Javadoc/apidocs/tag-search-index.js
new file mode 100644
index 0000000..0367dae
--- /dev/null
+++ b/docs/Javadoc/apidocs/tag-search-index.js
@@ -0,0 +1 @@
+tagSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/Javadoc/apidocs/type-search-index.js b/docs/Javadoc/apidocs/type-search-index.js
new file mode 100644
index 0000000..266a356
--- /dev/null
+++ b/docs/Javadoc/apidocs/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html","k":"18"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","l":"APICharityData"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","l":"APICharityScraper"},{"p":"ntnu.systemutvikling.team6.service","l":"APIToDatabaseService"},{"p":"ntnu.systemutvikling.team6.service","l":"AuthenticationService"},{"p":"ntnu.systemutvikling.team6.controller","l":"AvailableOrganizationController"},{"p":"ntnu.systemutvikling.team6.controller.components","l":"BaseController"},{"p":"ntnu.systemutvikling.team6.database.Readers","l":"CategorySelect"},{"p":"ntnu.systemutvikling.team6.models","l":"Charity"},{"p":"ntnu.systemutvikling.team6.controller","l":"CharityPageController"},{"p":"ntnu.systemutvikling.team6.models.registry","l":"CharityRegistry"},{"p":"ntnu.systemutvikling.team6.database.Readers","l":"CharitySelect"},{"p":"ntnu.systemutvikling.team6.service","l":"CharityService"},{"p":"ntnu.systemutvikling.team6.database","l":"DatabaseConnection"},{"p":"ntnu.systemutvikling.team6.database","l":"DatabaseSetup"},{"p":"ntnu.systemutvikling.team6.models","l":"Donation"},{"p":"ntnu.systemutvikling.team6.database.DAO","l":"DonationDAO"},{"p":"ntnu.systemutvikling.team6.controller","l":"DonationPageController"},{"p":"ntnu.systemutvikling.team6.models.registry","l":"DonationRegistry"},{"p":"ntnu.systemutvikling.team6.database.Readers","l":"DonationSelect"},{"p":"ntnu.systemutvikling.team6.service","l":"DonationService"},{"p":"ntnu.systemutvikling.team6.models","l":"Feedback"},{"p":"ntnu.systemutvikling.team6.service","l":"FeedbackService"},{"p":"ntnu.systemutvikling.team6.controller","l":"FrontpageController"},{"p":"ntnu.systemutvikling.team6.scraper","l":"FullCharityScrape"},{"p":"ntnu.systemutvikling.team6","l":"HmHApplication"},{"p":"ntnu.systemutvikling.team6.models.user","l":"Inbox"},{"p":"ntnu.systemutvikling.team6.models.user","l":"Language","k":"9"},{"p":"ntnu.systemutvikling.team6.controller.components","l":"LoaderScene"},{"p":"ntnu.systemutvikling.team6.scraper","l":"LogoDownloader"},{"p":"ntnu.systemutvikling.team6","l":"Main"},{"p":"ntnu.systemutvikling.team6.models.user","l":"Message"},{"p":"ntnu.systemutvikling.team6.controller.components","l":"NavbarFooterController","k":"10"},{"p":"ntnu.systemutvikling.team6.controller.components","l":"OrganizationCardController"},{"p":"ntnu.systemutvikling.team6.security","l":"PasswordHasher"},{"p":"ntnu.systemutvikling.team6.models.user","l":"Role","k":"9"},{"p":"ntnu.systemutvikling.team6.models.user","l":"Settings"},{"p":"ntnu.systemutvikling.team6.scraper.scraperComponents","l":"URLCharityScraper"},{"p":"ntnu.systemutvikling.team6.models.user","l":"User"},{"p":"ntnu.systemutvikling.team6.database.DAO","l":"UserDAO"},{"p":"ntnu.systemutvikling.team6.models.registry","l":"UserRegistry"},{"p":"ntnu.systemutvikling.team6.database.Readers","l":"UserSelect"}];updateSearchResults();
\ No newline at end of file