# Lynar Studios - Standard Library - v1.0.1 Documentation

## Packages

- boxing
- core
- encoding
- event
- io
- time

### boxing

This package provides functionalities for wrapping primitive datatypes (boolean, double, float, int, long, string). Wrapping those types would enable a developer to provide string representations, or parsing from strings to convert them back into their primitive forms. Additionally, these boxing types come with a great selection of operators and convenient functions.

#### Classes

- Boolean
- Double
- Float
- Integer
- Long
- String

### core

This package provides a base class, which can be used to provide simple class reflection. Other functionalities of this package include customized exceptions, basic interfaces and convenient types.

#### Classes

- Class
- ConditionalFunctionExecutor
- LibraryVersion
- Version
- EmptyStringArgumentEvaluator
- IndexOutOfBoundsEvaluator
- NullPointerArgumentEvaluator
- NullPointerEvaluator
- RawNullPointerArgumentEvaluator
- RawNullPointerEvaluator
- EventNotHandledException
- Exception
- ExceptionMessage
- FileNotFoundException
- FileOperationException
- IllegalArgumentException
- IllegalArithmeticOperationException
- IncompleteJsonException
- IndexOutOfBoundsException
- NotImplementedException
- NullPointerException
- JniApi
- JniClass
- JniClassParameter
- JniMethod
- JniReturnValue

### encoding

This package provides encoding functionalities, which in the current scope is limited to Base64. This would also include the provision of a Base-64-CLI-tool.

#### Classes

- Base64

### event

This package provides an event manager and the functionality to through events.

#### Classes

- Event
- EventListener
- EventManager
- EventParameter

### io

This package provides cross-platform functionalities for handling files, parsing and writing XML, logging, parsing and writing SP-files (.INI-based files).

#### Classes

- File
- FileOutputStream
- FilePathSeparator
- FilePathSeparatorMatch
- FileReader
- FileWriter
- NewLine
- StandardOutputWriter
- StorableFile
- FileExistenceEvaluator
- Logger
- LogLevel
- SectionPairMessageFormatter
- SectionPairIdentifierArgumentEvaluator
- SectionPairRowArgumentEvaluator
- SectionPairRowListValueArgumentEvaluator
- SectionPairRowSingleValueArgumentEvaluator
- SectionPairSectionArgumentEvaluator
- SectionPairValueArgumentEvaluator
- SectionPairDocument
- SectionPairRow
- SectionPairRowListValue
- SectionPairRowSingleValue
- SectionPairRowValue
- SectionPairSection
- SectionPairFileReader
- SectionPairFileReaderParameter
- SerializableSectionPairDocument
- SerializableSectionPairParameter
- SerializableSectionPairRow
- SerializableSectionPairRowListValue
- SerializableSectionPairRowSingleValue
- SerializableSectionPairSection
- SectionPairDocumentValidator
- SectionPairFileExtensionValidator
- SectionPairIdentifierValidator
- SectionPairRowListValueValidator
- SectionPairRowSingleValueValidator
- SectionPairRowValidator
- SectionPairSectionValidator
- SectionPairValueValidator
- XmlAttribute
- XmlDeclaration
- XmlDocument
- XmlNode
- XmlParseParameter
- XmlParser
- XmlReader

### time

This package provides convenient time functionalities and data structures, like a Date class for representing a date or SystemTime for setting a systems local time.

#### Classes

- Date
- DateParameter
- DateParameterMapper
- JniDateParameterMapper
- PosixClock
- SystemTime
- SystemTimeParameter
- WindowsClock

## Classes

### boxing.Boolean

This class represents the primitive datatype bool and provides functionalities for boolean expressions and string representation.

### boxing.Double

This class represents the primitive datatype double and provides functionalities for arithmetic operations, accuracy and string representation.

### boxing.Float

This class represents the primitive datatype float and provides functionalities for arithmetic operations, accuracy and string representation.

### boxing.Integer

This class represents the primitive datatype int and provides functionalities for arithmetic operations and string representation.

### boxing.Long

This class represents the primitive datatype long and provides functionalities for arithmetic operations and string representation.

### boxing.String

This class represents a string and provides operations, like filling and searching.

### core.Class

This class represents a base class offering minimal reflection on the class name.

### core.ConditionalFunctionExecutor

This class can execute any method matching a specific signature based on a specific condition.

### core.LibraryVersion

This class provides the version information of this library.

### core.Version

This class represents a semantic versioning scheme.

### core.EmptyStringArgumentEvaluator

This class evaluates whether a passed string is empty.

### core.IndexOutOfBoundsEvaluator

This class evaluates whether a passed index is out of bounds.

### core.NullPointerArgumentEvaluator

This class evaluates whether a passed shared pointer argument is null.

### core.NullPointerEvaluator

This class evaluates whether a passed shared pointer reference is null.

### core.RawNullPointerArgumentEvaluator

This class evaluates whether a passed raw pointer argument is null.

### core.RawNullPointerEvaluator

This class evaluates whether a passed raw pointer reference is null.

### core.EventNotHandledException

This exception can be thrown in case an event is not handled.

### core.Exception

This a base exception that can be thrown in any scenario.

### core.ExceptionMessage

This is the message container being used by these libraries provided exceptions.

### core.FileNotFoundException

This exception can be thrown in case a file could not be found.

### core.FileOperationException

This exception can be thrown in case a file could not be processed, like opened or being read.

### core.IllegalArgumentException

This exception can be thrown in case a passed argument is illegal, which can be individually interpreted.

### core.IllegalArithmeticOperationException

This exception can be thrown in case an arithmetic operation is illegal. One example would be the division by zero.

### core.IncompleteJsonException

This exception can be thrown when a passed JSON is incomplete - e.g. if a key is missing.

### core.IndexOutOfBoundsException

This exception can be thrown in case an index of an array like structure is out of bounds.

### core.NotImplementedException

This exception can be thrown in case a called method is not implemented.

### core.NullPointerException

This exception can be thrown in case a called reference is null.

### core.JniApi

This class represents an API for the Java Native Interface (JNI) wrapping basic JNI end points.

### core.JniClass

This class represents a Java class within the Java Native Interface (JNI).

### core.JniClassParameter

This class holds important information for the usage of the Java Native Interface (JNI), like Java environment or a specific Java object.

### core.JniMethod

This class represents a class method within Java Native Interface (JNI) context.

### core.JniReturnValue

This class represents a method return value of a Java class within Java Native Interface (JNI) context.

### encoding.Base64

This class can encode and decode the Base64 format.

### event.Event

This class represents an event that can be invoked.

### event.EventListener

An instance of this class can listen to any event. Usually, this class is used as base class of any class that must listen to an event.

### event.EventManager

This class can invoke all events known by subscribed listeners.

### event.EventParameter

This class holds parameters which can be sent during event invocation.

### io.File

This class represents a file in the file system and provides functionalities for location, operations and fetching property information.

### io.FileOutputStream

This class can be used for writing to a file stream.

### io.FilePathSeparator

This class represents the OS specific separator withing file paths on either Windows- or Unix-like operating systems.

### io.FilePathSeparatorMatch

This class can filter file path separators.

### io.FileReader

This class can read the content of a file and return it as byte field.

### io.FileWriter

This class can write to a file.

### io.NewLine

This class can be used as new line based on the preferred operating system. Currently, Windows and Unix-like operating systems are supported.

### io.StandardOutputWriter

This class can be used to write a string to stdout.

### io.StorableFile

This class can be used to store any serialized information to a file.

### io.FileExistenceEvaluator

This class evaluates whether a file exists and throws an exception in case it does not.

### io.Logger

This is a logger which can log to any implemented target.

### io.LogLevel

This class represents the log level controlling how noisy a log should be.

### io.SectionPairMessageFormatter

This message formatter replaces new line sequences, which are OS specific, to a readable tag for error message formatting.

### io.SectionPairIdentifierArgumentEvaluator

This class checks whether an identifier argument is valid and throws an exception if that is not the case.

### io.SectionPairRowArgumentEvaluator

This class checks whether a row argument is valid and throws an exception if that is not the case.

### io.SectionPairRowListValueArgumentEvaluator

This class checks whether a row list value argument is valid and throws an exception if that is not the case.

### io.SectionPairRowSingleValueArgumentEvaluator

This class checks whether a single row value argument is valid and throws an exception if that is not the case.

### io.SectionPairSectionArgumentEvaluator

This class checks whether a whole section argument is valid and throws an exception if that is not the case.

### io.SectionPairValueArgumentEvaluator

This class checks whether a value argument is valid and throws an exception if that is not the case.

### io.SectionPairDocument

This class represents a whole Section Pair document.

### io.SectionPairRow

This class represents a Section Pair row.

### io.SectionPairRowListValue

This class represents a Section Pair row list value.

### io.SectionPairRowSingleValue

This class represents a Section Pair row single value.

### io.SectionPairRowValue

This class represents a Section Pair row value.

### io.SectionPairSection

This class represents a Section Pair section.

### io.SectionPairFileReader

This class reads a Section Pair file and writes it to a Section Pair document instance.

### io.SectionPairFileReaderParameter

This class holds evaluators and the document instance for Section Pair file reading.

### io.SerializableSectionPairDocument

This class can serialize a Section Pair document for file persistence.

### io.SerializableSectionPairParameter

This class is holding information for Section Pair serialization.

### io.SerializableSectionPairRow

This class can serialize a Section Pair row for file persistence.

### io.SerializableSectionPairRowListValue

This class can serialize a Section Pair row list value for file persistence.

### io.SerializableSectionPairRowSingleValue

This class can serialize a Section Pair single value for file persistence.

### io.SerializableSectionPairSection

This class can serialize a Section Pair section for file persistence.

### io.SectionPairDocumentValidator

This validator checks whether a content is a valid Section Pair document.

### io.SectionPairFileExtensionValidator

This validator checks whether a file name has a valid Section Pair file extension.

### io.SectionPairIdentifierValidator

This validator checks whether a string is a valid Section Pair identifier.

### io.SectionPairRowListValueValidator

This validator checks whether a content is a valid Section Pair row list value.

### io.SectionPairRowSingleValueValidator

This validator checks whether a content is a valid Section Pair row single value.

### io.SectionPairRowValidator

This validator checks whether a content is a valid Section Pair row.

### io.SectionPairSectionValidator

This validator checks whether a content is a valid Section Pair section.

### io.SectionPairValueValidator

This validator checks whether a content is a valid Section Pair value.

### io.XmlAttribute

This class represents an XML attribute and can be serialized to an XML tag.

### io.XmlDeclaration

This class represents an XML declaration and can be serialized to an XML tag.

### io.XmlDocument

This class represents a whole XML document and can be serialized to a whole XML tree.

### io.XmlNode

This class represents an XML node and can be serialized to an XML tree.

### io.XmlParseParameter

This class holds information regarding parsing an XML tree.

### io.XmlParser

This class parses a whole XML tree in form of an XML document.

### io.XmlReader

This class reads an XML file and returns an XML document.

### time.Date

This class represents a date and provides functionalities for string representation, arithmetic operations and time comparison.

### time.DateParameter

This class holds information of a date processed by this library.

### time.DateParameterMapper

This class maps date information to either an internal POSIX clock or an internal Windows clock, which can then be processed for setting the system time.

### time.JniDateParameterMapper

This mapper is converting a date Java class to a date model class of this library.

### time.PosixClock

This is a POSIX based internal time.

### time.SystemTime

This class represents the system time and can be set. This would require root privileges.

### time.SystemTimeParameter

This class holds information for setting the system time.

### time.WindowsClock

This is a Windows based internal time.