diff --git a/2025R2/modelCenter_java_api/Changelog.md b/2025R2/modelCenter_java_api/Changelog.md
new file mode 100644
index 0000000000..2b94dc5d42
--- /dev/null
+++ b/2025R2/modelCenter_java_api/Changelog.md
@@ -0,0 +1,4 @@
+# Changelog
+
+## 2025 R2
+- added ModelCenter JAVA API to developer page
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAlwaysWriteable.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAlwaysWriteable.md
new file mode 100644
index 0000000000..ccceec3853
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAlwaysWriteable.md
@@ -0,0 +1,16 @@
+# Interface: IPHXAlwaysWriteable
+
+**Package:** `com.phoenix_int.aserver`
+
+**Known Implementing Classes**
+- [`PHXReference`](../types/PHXReference.md), [`PHXReferenceArray`](../types/PHXReferenceArray.md)
+
+**Related Classes**
+- [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md)
+
+**Declaration**
+```java
+public interface IPHXAlwaysWriteable
+```
+
+This is a specialized interface for ModelCenter Remote Execution. If an object implements this interface, its writeable properties will be writeable regardless of whether any parent properties are writeable or not. Normally a property is only writeable if it is writeable and all of its parent objects are also writeable.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAnalysis.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAnalysis.md
new file mode 100644
index 0000000000..a8de8e218c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXAnalysis.md
@@ -0,0 +1,39 @@
+# Interface: IPHXAnalysis
+
+**Package:** `com.phoenix_int.aserver`
+
+**Superinterfaces**
+- [`IPHXComponent`](IPHXComponent.md)
+
+**Declaration**
+```java
+public interface IPHXAnalysis
+extends IPHXComponent
+```
+
+This is the interface that analyses managed by ModelCenter Remote Execution must implement.
+
+
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `execute()`
Executes the analysis. |
+
+### Methods inherited from interface [`com.phoenix_int.aserver.IPHXComponent`](IPHXComponent.md)
+`end`
+
+## Method Detail
+
+### execute
+```java
+void execute()
+ throws java.lang.Exception
+```
+Executes the analysis. If the analysis does not run successfully, e.g. the solution does not converge, then an exception should be thrown.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXComponent.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXComponent.md
new file mode 100644
index 0000000000..05ef058731
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXComponent.md
@@ -0,0 +1,48 @@
+# Interface: IPHXComponent
+
+**Package:** `com.phoenix_int.aserver`
+
+**Known Subinterfaces**
+- [`IPHXAnalysis`](IPHXAnalysis.md), [`IPHXDriver`](IPHXDriver.md)
+
+**Known Implementing Classes**
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+**Related Classes**
+- [`PHXComponentBranch`](PHXComponentBranch.md), [`PHXComponentDescription`](PHXComponentDescription.md), [`PHXComponentVersion`](PHXComponentVersion.md), [`PHXGroup`](PHXGroup.md), [`PHXMethodDescriptor`](PHXMethodDescriptor.md), [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md), [`PHXVariableInfo`](PHXVariableInfo.md), [`PHXDFTException`](PHXDFTException.md), [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md), [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md), [`PHXInvokeReturn`](PHXInvokeReturn.md), [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md), [`PHXInvalidNameException`](PHXInvalidNameException.md)
+
+**Declaration**
+```java
+public interface IPHXComponent
+```
+
+This is a common base interface for things served on the ModelCenter Remote Execution.
+
+In addition to the functions specified by this interface, the following static functions may also be defined to provide additional information about a component:
+
+- `public static String getVersion()` — retrieves the version of the component.
+- `public static String getAuthor()` — retrieves the author of the component.
+- `public static String getDescription()` — retrieves a one-line description of the component.
+- `public static String getHelpURL()` — retrieves a URL associated with the component.
+- `public static String getKeywords()` — retrieves keywords associated with the component.
+- `public static String getIconFile()` — retrieves the name of a 64x64 bmp file used to represent the component as an icon in graphical environments.
+
+The above functions are used by the "describe" command in ModelCenter Remote Execution. If not defined, default values are used. The functions are all static so that they may be called without instantiating the component.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `end()`
Notifies the driver that it has ended. |
+
+## Method Detail
+
+### end
+```java
+void end()
+ throws java.lang.Exception
+```
+Notifies the driver that it has ended. The driver should perform any necessary shutdown functions.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXDriver.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXDriver.md
new file mode 100644
index 0000000000..ff1587a4ce
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXDriver.md
@@ -0,0 +1,62 @@
+# Interface: IPHXDriver
+
+**Package:** `com.phoenix_int.aserver`
+
+**Superinterfaces**
+- [`IPHXComponent`](IPHXComponent.md)
+
+**Related Classes**
+- [`IPHXAnalysis`](IPHXAnalysis.md), [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md), [`PHXComponentBranch`](PHXComponentBranch.md), [`PHXComponentDescription`](PHXComponentDescription.md), [`PHXComponentVersion`](PHXComponentVersion.md), [`PHXGroup`](PHXGroup.md), [`PHXMethodDescriptor`](PHXMethodDescriptor.md), [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md), [`PHXVariableInfo`](PHXVariableInfo.md), [`PHXDFTException`](PHXDFTException.md), [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md), [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md), [`PHXInvokeReturn`](PHXInvokeReturn.md), [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md), [`PHXInvalidNameException`](PHXInvalidNameException.md)
+
+**Declaration**
+```java
+public interface IPHXDriver
+ extends IPHXComponent
+```
+
+This is the interface that drivers managed by ModelCenter Remote Execution must implement.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `boolean` | `endIteration()`
Performs the second step for an iteration of a driver. |
+| `void` | `initializeIterations()`
Initializes the driver to a starting state. |
+| `void` | `startIteration()`
Performs the first step for an iteration of a driver. |
+
+### Methods inherited from interface [`com.phoenix_int.aserver.IPHXComponent`](IPHXComponent.md)
+`end`
+
+## Method Detail
+
+### initializeIterations
+```java
+void initializeIterations()
+ throws java.lang.Exception
+```
+Initializes the driver to a starting state. This function will be called once before a series of step() calls will be made. The function should reset things like iteration counts to initial values.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
+
+### startIteration
+```java
+void startIteration()
+ throws java.lang.Exception
+```
+Performs the first step for an iteration of a driver. The driver should set values for all output reference variables. The client application will load these values and compute new values for the input references.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
+
+### endIteration
+```java
+boolean endIteration()
+ throws java.lang.Exception
+```
+Performs the second step for an iteration of a driver. Prior to calling this function, the client application will have set values for all input reference variables. The driver should use these values to determine the next iteration, if any.
+
+Returns true if another iteration needs to be performed, false if the driver is complete.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXHaltableComponent.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXHaltableComponent.md
new file mode 100644
index 0000000000..5107fa9041
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXHaltableComponent.md
@@ -0,0 +1,31 @@
+# Interface: IPHXHaltableComponent
+
+**Package:** `com.phoenix_int.aserver`
+
+**Related Interfaces and Classes**
+- [`IPHXComponent`](IPHXComponent.md), [`IPHXAnalysis`](IPHXAnalysis.md), [`IPHXDriver`](IPHXDriver.md), [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md), [`PHXComponentBranch`](PHXComponentBranch.md), [`PHXComponentDescription`](PHXComponentDescription.md), [`PHXComponentVersion`](PHXComponentVersion.md), [`PHXGroup`](PHXGroup.md), [`PHXMethodDescriptor`](PHXMethodDescriptor.md), [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md), [`PHXVariableInfo`](PHXVariableInfo.md), [`PHXDFTException`](PHXDFTException.md), [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md), [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md), [`PHXInvokeReturn`](PHXInvokeReturn.md), [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md), [`PHXInvalidNameException`](PHXInvalidNameException.md)
+
+**Declaration**
+```java
+public interface IPHXHaltableComponent
+```
+
+This is a specialized interface for ModelCenter Remote Execution. If a component implements this interface, the MCRE will call this method if a connection is lost prior to ending the component. The method is useful to halt components that are currently running when a connection is lost.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `halt()`
Notifies the component to stop doing whatever it is currently doing. |
+
+## Method Detail
+
+### halt
+```java
+void halt()
+ throws java.lang.Exception
+```
+Notifies the component to stop doing whatever it is currently doing.
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete successfully
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXMonitorable.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXMonitorable.md
new file mode 100644
index 0000000000..754de2e99e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXMonitorable.md
@@ -0,0 +1,59 @@
+# Interface: IPHXMonitorable
+
+**Package:** `com.phoenix_int.aserver`
+
+**Known Implementing Classes**
+- [`PHXRunShare`](PHXRunShare.md)
+
+**Related Interfaces and Classes**
+- [`IPHXComponent`](IPHXComponent.md), [`IPHXAnalysis`](IPHXAnalysis.md), [`IPHXDriver`](IPHXDriver.md), [`IPHXHaltableComponent`](IPHXHaltableComponent.md), [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md), [`PHXComponentBranch`](PHXComponentBranch.md), [`PHXComponentDescription`](PHXComponentDescription.md), [`PHXComponentVersion`](PHXComponentVersion.md), [`PHXGroup`](PHXGroup.md), [`PHXMethodDescriptor`](PHXMethodDescriptor.md), [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md), [`PHXVariableInfo`](PHXVariableInfo.md), [`PHXDFTException`](PHXDFTException.md), [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md), [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md), [`PHXInvokeReturn`](PHXInvokeReturn.md), [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md), [`PHXInvalidNameException`](PHXInvalidNameException.md)
+
+**Declaration**
+```java
+public interface IPHXMonitorable
+```
+
+This is the interface that analyses which provide information about running processes should implement.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.Object` | `getMonitor(java.lang.String monitorName)`
Gets a specified monitor. |
+| `java.lang.String[]` | `listMonitorableFiles()`
Lists all items that may be monitored for output as a component is running. |
+| `PHXProcessInfo[]` | `listProcesses()`
Lists all the running processes associated with a component. |
+
+## Method Detail
+
+### listProcesses
+```java
+PHXProcessInfo[] listProcesses()
+ throws java.io.IOException
+```
+Lists all the running processes associated with a component.
+
+**Throws:**
+- `java.io.IOException` - If there was a problem reading information about running processes
+
+### listMonitorableFiles
+```java
+java.lang.String[] listMonitorableFiles()
+ throws java.io.IOException
+```
+Lists all items that may be monitored for output as a component is running. Note that this is normally in addition to any PHXRawFile output variables that your component exposes. Because of this, these names must not conflict with any variable names.
+
+**Throws:**
+- `java.io.IOException`
+
+### getMonitor
+```java
+java.lang.Object getMonitor(java.lang.String monitorName)
+ throws PHXNoSuchObjectException
+```
+Gets a specified monitor. This method can return PHXRawFile objects to publish files for monitoring that don't appear as a regular variable, or PHXMonitorableStream objects to publish random streams of monitor data.
+
+**Returns:**
+- either a PHXRawFile or a PHXMonitorableStream object
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXRunQueue.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXRunQueue.md
new file mode 100644
index 0000000000..5137391df9
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXRunQueue.md
@@ -0,0 +1,38 @@
+# Interface: IPHXRunQueue
+
+**Package:** `com.phoenix_int.aserver`
+
+**Declaration**
+```java
+public interface IPHXRunQueue
+```
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `setRunQueue(java.lang.String connector, java.lang.String queue)`
Sets the run queue for a component. |
+
+## Method Detail
+
+### setRunQueue
+```java
+void setRunQueue(java.lang.String connector, java.lang.String queue)
+ throws java.lang.Exception
+```
+Sets the run queue for a component. It is important that this class throws [PHXNoSuchCategoryException](library/PHXNoSuchCategoryException.md) and [ClassNotFoundException](../util/PHXClassNotFoundException.md) in the appropriate cases as they are handled in special ways by the [PHXLibrarianMounter](library/PHXLibrarianMounter.md) and [PHXLibrarianCombiner](library/PHXLibrarianCombiner.md).
+
+**Parameters:**
+- `connector` - The name of the selected connector
+- `queue` - The name of the selected queue
+
+**Throws:**
+- [`ClassNotFoundException`](../util/PHXClassNotFoundException.md) - If compClass doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+- [`PHXNoSuchCategoryException`](library/PHXNoSuchCategoryException.md) - If an invalid category is specified
+
+**See Also:**
+- [PHXLibrarianMounter](library/PHXLibrarianMounter.md)
+- [PHXLibrarianCombiner](library/PHXLibrarianCombiner.md)
+- [PHXNoSuchCategoryException](library/PHXNoSuchCategoryException.md)
+- [PHXClassNotFoundException](../util/PHXClassNotFoundException.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager.md
new file mode 100644
index 0000000000..75e499d5d2
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager.md
@@ -0,0 +1,110 @@
+# Interface: IPHXSelfManager
+
+**Package:** `com.phoenix_int.aserver`
+
+**Known Subinterfaces**
+- [`IPHXSelfManager2`](IPHXSelfManager2.md), [`IPHXSelfManager3`](IPHXSelfManager3.md)
+
+**Known Implementing Classes**
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+**Declaration**
+```java
+public interface IPHXSelfManager
+```
+
+This interface is for components that determine their properties at runtime. These types of components do not know what variables they have until they are started. Examples include wrappers that communicate with external programs—once the wrapper starts up, it loads a file into the external program. The external program then can be queried for its variables, which are then relayed through the analysis object. To handle this type of situation, a component should implement the functions provided by this interface. When present, the ModelCenter Remote Execution will call these functions. If an object does not implement this interface, the MCRE will use the default Bean mechanisms for interacting with the object.
+
+**See Also:**
+- [`IPHXComponent`](IPHXComponent.md), [`IPHXAnalysis`](IPHXAnalysis.md), [`IPHXDriver`](IPHXDriver.md)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `PHXMethodDescriptor[]` | `getMethodDescriptors()`
Function for retrieving the methods of an object. |
+| `PHXPropertyDescriptor[]` | `getPropertyDescriptors(java.lang.String name)`
Function for retrieving the properties of an object. |
+| `java.lang.String` | `getValue(java.lang.String name)`
Function for retrieving a specified value. |
+| `java.lang.String` | `invoke(java.lang.String methodName)`
Invokes the named method. |
+| `void` | `setValue(java.lang.String name, java.lang.String value)`
Function for setting a specified value. |
+
+## Method Detail
+
+### getValue
+```java
+java.lang.String getValue(java.lang.String name)
+ throws PHXNoSuchObjectException, java.lang.Exception
+```
+Function for retrieving a specified value.
+
+**Parameters:**
+- `name` - the value to retrieve
+
+**Returns:**
+- a String representation of the value
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the specified name does not exist
+- `java.lang.Exception` - an exception that may occur
+
+### setValue
+```java
+void setValue(java.lang.String name, java.lang.String value)
+ throws PHXNoSuchObjectException, PHXNoSuchWriteableObjectException, java.lang.Exception
+```
+Function for setting a specified value.
+
+**Parameters:**
+- `name` - the value to retrieve
+- `value` - the String representation of the value to set
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the specified name does not exist
+- `PHXNoSuchWriteableObjectException` - thrown if the specified name cannot be modified
+- `java.lang.Exception` - an exception that may occur
+
+### getPropertyDescriptors
+```java
+PHXPropertyDescriptor[] getPropertyDescriptors(java.lang.String name)
+ throws PHXNoSuchObjectException, java.lang.Exception
+```
+Function for retrieving the properties of an object.
+
+**Parameters:**
+- `name` - the object to retrieve descriptors for
+
+**Returns:**
+- an array of PHXPropertyDescriptors
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the specified name does not exist
+- `java.lang.Exception` - an exception that may occur
+
+### getMethodDescriptors
+```java
+PHXMethodDescriptor[] getMethodDescriptors()
+ throws java.lang.Exception
+```
+Function for retrieving the methods of an object.
+
+**Returns:**
+- an array of MethodDescriptors
+
+**Throws:**
+- `java.lang.Exception` - an exception that may occur
+
+### invoke
+```java
+java.lang.String invoke(java.lang.String methodName)
+ throws java.lang.Exception
+```
+Invokes the named method.
+
+**Parameters:**
+- `methodName` - the name of the method to invoke on obj
+
+**Returns:**
+- the return value from the invocation
+
+**Throws:**
+- `java.lang.Exception` - an exception that may occur
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager2.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager2.md
new file mode 100644
index 0000000000..22d25359d4
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager2.md
@@ -0,0 +1,68 @@
+# Interface: IPHXSelfManager2
+
+**Package:** `com.phoenix_int.aserver`
+
+**Superinterfaces**
+- [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Known Subinterfaces**
+- [`IPHXSelfManager3`](IPHXSelfManager3.md)
+
+**Known Implementing Classes**
+- [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+**Declaration**
+```java
+public interface IPHXSelfManager2
+ extends IPHXSelfManager
+```
+
+This interface extends [`IPHXSelfManager`](IPHXSelfManager.md) and provides new get and set functions which provide better performance than the original.
+
+**See Also:**
+- `IPHXSelfManager`
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.Object` | `getValue2(java.lang.String name)`
Function for retrieving a specified value. |
+| `void` | `setValue2(java.lang.String name, PHXStringBuffer value)`
Function for setting a specified value. |
+
+### Methods inherited from interface `com.phoenix_int.aserver.IPHXSelfManager`
+`getMethodDescriptors`, `getPropertyDescriptors`, `getValue`, `invoke`, `setValue`
+
+## Method Detail
+
+### getValue2
+```java
+java.lang.Object getValue2(java.lang.String name)
+ throws PHXNoSuchObjectException, java.lang.Exception
+```
+Function for retrieving a specified value.
+
+**Parameters:**
+- `name` - the value to retrieve
+
+**Returns:**
+- The value to be returned as any type of java Object.
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the specified name does not exist
+- `java.lang.Exception` - an exception that may occur
+
+### setValue2
+```java
+void setValue2(java.lang.String name, PHXStringBuffer value)
+ throws PHXNoSuchObjectException, PHXNoSuchWriteableObjectException, java.lang.Exception
+```
+Function for setting a specified value.
+
+**Parameters:**
+- `name` - the value to retrieve
+- `value` - the String representation of the value to set
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the specified name does not exist
+- `PHXNoSuchWriteableObjectException` - thrown if the specified name cannot be modified
+- `java.lang.Exception` - an exception that may occur
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager3.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager3.md
new file mode 100644
index 0000000000..a406bfdada
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSelfManager3.md
@@ -0,0 +1,50 @@
+# Interface: IPHXSelfManager3
+
+**Package:** `com.phoenix_int.aserver`
+
+**Superinterfaces**
+- [`IPHXSelfManager`](IPHXSelfManager.md), [`IPHXSelfManager2`](IPHXSelfManager2.md)
+
+**Known Implementing Classes**
+- [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+**Declaration**
+```java
+public interface IPHXSelfManager3
+ extends IPHXSelfManager2
+```
+
+This interface extends [`IPHXSelfManager2`](IPHXSelfManager2.md) and provides a new invoke that enables getting more information back from invoked methods.
+
+**See Also:**
+- [`IPHXSelfManager`](IPHXSelfManager.md)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `PHXInvokeReturn` | `invoke2(java.lang.String methodName)`
Invokes the named method. |
+
+### Methods inherited from interface `com.phoenix_int.aserver.IPHXSelfManager2`
+`getValue2`, `setValue2`
+
+### Methods inherited from interface `com.phoenix_int.aserver.IPHXSelfManager`
+`getMethodDescriptors`, `getPropertyDescriptors`, `getValue`, `invoke`, `setValue`
+
+## Method Detail
+
+### invoke2
+```java
+PHXInvokeReturn invoke2(java.lang.String methodName)
+ throws java.lang.Exception
+```
+Invokes the named method.
+
+**Parameters:**
+- `methodName` - the name of the method to invoke on obj
+
+**Returns:**
+- the return object from the invocation
+
+**Throws:**
+- `java.lang.Exception` - an exception that may occur
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSetupFromFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSetupFromFile.md
new file mode 100644
index 0000000000..9b451cd06f
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/IPHXSetupFromFile.md
@@ -0,0 +1,39 @@
+# Interface: IPHXSetupFromFile
+
+**Package:** `com.phoenix_int.aserver`
+
+**Interface Hierarchy**
+```
+↳ com.phoenix_int.aserver.IPHXSetupFromFile
+```
+
+**Declaration**
+```java
+public interface IPHXSetupFromFile
+```
+
+This interface defines the contract for components that can be set up or initialized from a file. Implementing classes provide mechanisms to configure themselves using external file-based data.
+
+**Known Implementing Classes**
+- [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `setupFromFile(java.lang.String fileName)`
Set up the component using the specified file. |
+
+## Method Detail
+
+### setupFromFile
+```
+public void setupFromFile(java.lang.String fileName)
+ throws java.io.IOException
+```
+Sets up the component using the specified file. The file should contain the necessary configuration or data required for initialization.
+
+**Parameters:**
+- `fileName` - The path to the file used for setup.
+
+**Throws:**
+- `java.io.IOException` - If an I/O error occurs while reading the file.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentBranch.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentBranch.md
new file mode 100644
index 0000000000..7b0f76f2d5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentBranch.md
@@ -0,0 +1,150 @@
+# Class: PHXComponentBranch
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXComponentBranch
+```
+
+**Declaration**
+```java
+public class PHXComponentBranch
+extends java.lang.Object
+```
+
+This class represents a branch on a revision history tree for a version controlled component. Includes functionality for reading/writing XML branch descriptions.
+
+## Constructor Summary
+| Constructor and Description |
+|----------------------------|
+| `PHXComponentBranch()`
Constructs an empty branch |
+| `PHXComponentBranch(org.w3c.dom.Element branchElement)`
Constructs a branch based on an XML branch node |
+| `PHXComponentBranch(java.lang.String name)`
Constructs an empty named branch |
+
+## Method Summary
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addVersion(PHXComponentVersion v)`
Adds a version to this branch |
+| `PHXComponentBranch` | `findBranch(java.lang.String name)`
Finds any sub-branch that is part of any version in this branch by name |
+| `PHXComponentVersion` | `findVersion(java.lang.String name)`
Finds a sub-version by the specified name |
+| `void` | `fromXML(java.lang.String xmlString)`
Reads in an XML description of a branch into this object |
+| `java.lang.String` | `getName()`
Gets the name of this branch |
+| `int` | `getNumVersions()`
Returns how many versions there are in this branch |
+| `PHXComponentVersion` | `getParent()`
Retrieves the parent version |
+| `PHXComponentVersion` | `getVersion(int i)`
Gets the i'th version |
+| `java.util.Iterator` | `getVersions()`
Returns an Iterator over the sub-versions |
+| `void` | `insertVersion(PHXComponentVersion v, int location)`
Inserts a version to this branch at a particular location |
+| `void` | `setName(java.lang.String name)`
Changes the branch name |
+| `java.lang.String` | `toXML()`
Converts this branch into an XML String |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXComponentBranch
+```java
+public PHXComponentBranch()
+```
+Constructs an empty branch
+
+### PHXComponentBranch
+```java
+public PHXComponentBranch(java.lang.String name)
+```
+Constructs an empty named branch
+
+### PHXComponentBranch
+```java
+public PHXComponentBranch(org.w3c.dom.Element branchElement)
+ throws java.io.IOException
+```
+Constructs a branch based on an XML branch node
+
+**Throws:**
+- `java.io.IOException`
+
+## Method Detail
+
+### getParent
+```java
+public PHXComponentVersion getParent()
+```
+Retrieves the parent version
+
+### setName
+```java
+public void setName(java.lang.String name)
+```
+Changes the branch name
+
+### getName
+```java
+public java.lang.String getName()
+```
+Gets the name of this branch
+
+### addVersion
+```java
+public void addVersion(PHXComponentVersion v)
+```
+Adds a version to this branch
+
+### insertVersion
+```java
+public void insertVersion(PHXComponentVersion v,
+ int location)
+```
+Inserts a version to this branch at a particular location
+
+### getNumVersions
+```java
+public int getNumVersions()
+```
+Returns how many versions there are in this branch
+
+### getVersions
+```java
+public java.util.Iterator getVersions()
+```
+Returns an Iterator over the sub-versions
+
+### getVersion
+```java
+public PHXComponentVersion getVersion(int i)
+```
+Gets the i'th version
+
+### findVersion
+```java
+public PHXComponentVersion findVersion(java.lang.String name)
+```
+Finds a sub-version by the specified name
+
+### findBranch
+```java
+public PHXComponentBranch findBranch(java.lang.String name)
+```
+Finds any sub-branch that is part of any version in this branch by name
+
+### fromXML
+```java
+public void fromXML(java.lang.String xmlString)
+ throws javax.xml.parsers.ParserConfigurationException,
+ org.xml.sax.SAXException,
+ java.io.IOException
+```
+Reads in an XML description of a branch into this object
+
+**Throws:**
+- `javax.xml.parsers.ParserConfigurationException`
+- `org.xml.sax.SAXException`
+- `java.io.IOException`
+
+### toXML
+```java
+public java.lang.String toXML()
+```
+Converts this branch into an XML String
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentDescription.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentDescription.md
new file mode 100644
index 0000000000..f580c2eb29
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentDescription.md
@@ -0,0 +1,253 @@
+# Class: PHXComponentDescription
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXComponentDescription
+```
+
+**Declaration**
+```java
+public class PHXComponentDescription
+extends java.lang.Object
+```
+
+A class for holding description information about a component class.
+
+## Field Summary
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static int` | `VI_AVAILABLE` |
+| `static int` | `VI_UNAVAILABLE` |
+| `static int` | `VI_UNKNOWN` |
+
+## Constructor Summary
+| Constructor and Description |
+|----------------------------|
+| `PHXComponentDescription()` |
+
+## Method Summary
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getAuthor()` |
+| `long` | `getChecksum()` |
+| `boolean` | `getDelayLoadSetupAllowed()` |
+| `java.lang.String` | `getDescription()` |
+| `boolean` | `getDriver()` |
+| `boolean` | `getHasIcon()` |
+| `int` | `getHasVersionInfo()` |
+| `java.lang.String` | `getHelpURL()` |
+| `PHXIcon` | `getIcon()` |
+| `java.lang.String` | `getKeywords()` |
+| `java.lang.String` | `getRedirectURL()` |
+| `java.lang.String` | `getRequirements()`
Get the comma separated list of unquoted requirements. |
+| `java.util.Date` | `getTimeStamp()` |
+| `java.lang.String` | `getVersion()` |
+| `void` | `setAuthor(java.lang.String a)` |
+| `void` | `setChecksum(long d)` |
+| `void` | `setDelayLoadSetupAllowed(boolean f)` |
+| `void` | `setDescription(java.lang.String d)` |
+| `void` | `setDriver(boolean f)` |
+| `void` | `setHasIcon(boolean f)` |
+| `void` | `setHasVersionInfo(int vi)` |
+| `void` | `setHelpURL(java.lang.String v)` |
+| `void` | `setIcon(PHXIcon i)` |
+| `void` | `setIconFile(java.lang.String i)` |
+| `void` | `setKeywords(java.lang.String v)` |
+| `void` | `setRedirectURL(java.lang.String r)` |
+| `void` | `setRequirements(java.lang.String v)`
Set the requirements via comma separated list. |
+| `void` | `setTimeStamp(java.util.Date d)` |
+| `void` | `setVersion(java.lang.String v)` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### VI_UNKNOWN
+```
+public static final int VI_UNKNOWN
+```
+
+**See Also:**
+[Constant Field Values](../../../constant-values.html#com.phoenix_int.aserver.PHXComponentDescription.VI_UNKNOWN)
+
+### VI_AVAILABLE
+```
+public static final int VI_AVAILABLE
+```
+
+**See Also:**
+[Constant Field Values](../../../constant-values.html#com.phoenix_int.aserver.PHXComponentDescription.VI_AVAILABLE)
+
+### VI_UNAVAILABLE
+```
+public static final int VI_UNAVAILABLE
+```
+
+**See Also:**
+[Constant Field Values](../../../constant-values.html#com.phoenix_int.aserver.PHXComponentDescription.VI_UNAVAILABLE)
+
+## Constructor Detail
+
+### PHXComponentDescription
+```java
+public PHXComponentDescription()
+```
+
+## Method Detail
+
+### setRedirectURL
+```java
+public void setRedirectURL(java.lang.String r)
+```
+
+### getRedirectURL
+```java
+public java.lang.String getRedirectURL()
+```
+
+### setDescription
+```java
+public void setDescription(java.lang.String d)
+```
+
+### getDescription
+```java
+public java.lang.String getDescription()
+```
+
+### setAuthor
+```java
+public void setAuthor(java.lang.String a)
+```
+
+### getAuthor
+```java
+public java.lang.String getAuthor()
+```
+
+### setVersion
+```java
+public void setVersion(java.lang.String v)
+```
+
+### getVersion
+```java
+public java.lang.String getVersion()
+```
+
+### setHelpURL
+```java
+public void setHelpURL(java.lang.String v)
+```
+
+### getHelpURL
+```java
+public java.lang.String getHelpURL()
+```
+
+### setKeywords
+```java
+public void setKeywords(java.lang.String v)
+```
+
+### getKeywords
+```java
+public java.lang.String getKeywords()
+```
+
+### setRequirements
+```java
+public void setRequirements(java.lang.String v)
+```
+Set the requirements via comma separated list.
+
+**Parameters:**
+: `v`- comma separated list of requirements
+
+### getRequirements
+```java
+public java.lang.String getRequirements()
+```
+Get the comma separated list of unquoted requirements.
+
+**Returns:**
+- comma separated list of unquoted requirements
+
+### setDriver
+```java
+public void setDriver(boolean f)
+```
+
+### getDriver
+```java
+public boolean getDriver()
+```
+
+### setHasIcon
+```java
+public void setHasIcon(boolean f)
+```
+
+### getHasIcon
+```java
+public boolean getHasIcon()
+```
+
+### setIconFile
+```java
+public void setIconFile(java.lang.String i)
+```
+
+### getIcon
+```java
+public PHXIcon getIcon()
+```
+
+### setIcon
+```java
+public void setIcon(PHXIcon i)
+```
+
+### getTimeStamp
+```java
+public java.util.Date getTimeStamp()
+```
+
+### setTimeStamp
+```java
+public void setTimeStamp(java.util.Date d)
+```
+
+### getChecksum
+```java
+public long getChecksum()
+```
+
+### setChecksum
+```java
+public void setChecksum(long d)
+```
+
+### setHasVersionInfo
+```java
+public void setHasVersionInfo(int vi)
+```
+
+### getHasVersionInfo
+```java
+public int getHasVersionInfo()
+```
+
+### setDelayLoadSetupAllowed
+```java
+public void setDelayLoadSetupAllowed(boolean f)
+```
+
+### getDelayLoadSetupAllowed
+```java
+public boolean getDelayLoadSetupAllowed()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentVersion.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentVersion.md
new file mode 100644
index 0000000000..8a868472d6
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXComponentVersion.md
@@ -0,0 +1,74 @@
+# Class: PHXComponentVersion
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXComponentVersion
+```
+
+**Declaration**
+```java
+public class PHXComponentVersion
+extends java.lang.Object
+```
+
+This class represents a version on a revision history tree for a version controlled component. Includes functionality for reading/writing XML version descriptions.
+
+## Constructor Summary
+| Constructor and Description |
+|----------------------------|
+| `PHXComponentVersion(org.w3c.dom.Element versionNode)`
Constructs a version based on information in an XML Element |
+| `PHXComponentVersion(java.lang.String name)`
Constructs a version with a given name |
+| `PHXComponentVersion(java.lang.String name, java.lang.String author, java.lang.String description, java.util.Date date)`
Constructs a version with the specified meta data |
+
+## Method Summary
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addBranch(PHXComponentBranch b)`
Adds a sub-branch to this version. |
+| `java.lang.String` | `getAuthor()`
Gets the version author |
+| `PHXComponentBranch` | `getBranch(int i)`
Returns the i'th sub-branch |
+| `java.util.Iterator` | `getBranches()`
Returns an Iterator over the sub-branches |
+| `java.util.Date` | `getDate()`
Gets the version date |
+| `java.lang.String` | `getDescription()`
Gets the version description |
+| `java.lang.String` | `getName()`
Gets the version name |
+| `int` | `getNumBranches()`
Gets the number of sub-branches |
+| `PHXComponentBranch` | `getParent()`
Gets our parent branch |
+| `void` | `setAuthor(java.lang.String author)`
Sets the version author |
+| `void` | `setDate(java.util.Date date)`
Sets the version date |
+| `void` | `setDescription(java.lang.String description)`
Sets the version description |
+| `void` | `setName(java.lang.String name)`
Sets the version name |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXComponentVersion
+```java
+public PHXComponentVersion(java.lang.String name)
+```
+Constructs a version with a given name
+
+### PHXComponentVersion
+```java
+public PHXComponentVersion(java.lang.String name, java.lang.String author, java.lang.String description, java.util.Date date)
+```
+Constructs a version with the specified meta data
+
+**Parameters:**
+- `name` - The version name
+- `author` - The version author
+- `description` - The version description
+- `date` - The date of the version
+
+### PHXComponentVersion
+```java
+public PHXComponentVersion(org.w3c.dom.Element versionNode)
+ throws java.io.IOException
+```
+Constructs a version based on information in an XML Element
+
+**Throws:**
+- `java.io.IOException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXDFTException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXDFTException.md
new file mode 100644
index 0000000000..66433678d5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXDFTException.md
@@ -0,0 +1,40 @@
+# Class: PHXDFTException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.PHXDFTException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Declaration**
+```java
+public class PHXDFTException
+extends java.lang.Exception
+```
+
+This exception is thrown for errors related to Direct File Transfer (DFT) operations in the ModelCenter server environment.
+
+## Constructor Summary
+| Constructor and Description |
+|----------------------------|
+| `PHXDFTException(java.lang.String msg)` |
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXDFTException
+```java
+public PHXDFTException(java.lang.String msg)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXGroup.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXGroup.md
new file mode 100644
index 0000000000..97e0ac7c7e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXGroup.md
@@ -0,0 +1,306 @@
+# Class: PHXGroup
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXGroup
+```
+
+**Declaration**
+```java
+public class PHXGroup
+extends java.lang.Object
+```
+
+A utility class for holding sub-variables. Internally used to manage groups of variables within the [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md) class. To create your own groups, use the [`PHXSimpleSelfManager.addVariable`](PHXSimpleSelfManager.md) function.
+
+**See Also:**
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md)
+
+## Constructor Summary
+| Constructor and Description |
+|----------------------------|
+| `PHXGroup(java.lang.String name)` |
+
+## Method Summary
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addGroup(PHXGroup group)`
Adds a child group to the group |
+| `void` | `addVariable(PHXVariableInfo varInfo)`
Stores a variable in the group. |
+| `boolean` | `contains(PHXVariableInfo varInfo)`
Checks to see if a variable exists in this group |
+| `boolean` | `contains(java.lang.String varName)`
Checks to see if a variable exists in this group. |
+| [`PHXGroup`](PHXGroup.md) | `getGroup(java.lang.String childName)`
Retrieves a child group. |
+| [`PHXGroup`](PHXGroup.md) | `getGroup2(java.lang.String childName)`
Retrieves a child group. |
+| `java.util.Enumeration` | `getGroups()`
Retrieves the Enumeration of subgroups in the group. |
+| `java.util.Iterator` | `getGroups2()`
Retrieves all the subgroups in the group |
+| `java.lang.String` | `getName()`
Retrieves the name of the group |
+| `int` | `getNumGroups()`
Retrieves the number of subgroups in the group. |
+| `int` | `getNumVariables()`
Retrieves the number of variables in the group. |
+| [`PHXVariableInfo`](PHXVariableInfo.md) | `getVariableInfo(java.lang.String varName)`
Retrieves a variable from the group. |
+| [`PHXVariableInfo`](PHXVariableInfo.md) | `getVariableInfo2(java.lang.String varName)`
Retrieves a variable from the group. |
+| `java.util.Enumeration` | `getVariables()`
Retrieves the Enumeration of variables in the group. |
+| `java.util.Iterator` | `getVariables2()`
Retrieves all of the variables in the group. |
+| [`PHXGroup`](PHXGroup.md) | `makeGroup(java.lang.String childName)`
Creates a child group. |
+| `void` | `removeAllGroups()`
Removes all groups from the group |
+| `void` | `removeAllVariables()`
Removes all variables from the group |
+| `void` | `removeGroup(java.lang.String childName)`
Removes a child group. |
+| `void` | `removeVariable(PHXVariableInfo varInfo)`
Removes a variable |
+| `java.lang.String` | `toString()`
Converts this to a string |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXGroup
+```java
+public PHXGroup(java.lang.String name)
+ throws PHXInvalidNameException
+```
+
+**Parameters:**
+- `name` - the name of the group
+
+**Throws:**
+- `PHXInvalidNameException`
+
+## Method Detail
+
+### getName
+```java
+public java.lang.String getName()
+```
+retrieves the name of the group
+
+**Returns:**
+- the name of the group
+
+### addGroup
+```java
+public void addGroup(PHXGroup group)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a child group to the group
+
+**Parameters:**
+- `group`- the child group
+
+**Throws:**
+- PHXNameAlreadyInUseException
+- PHXInvalidNameException
+
+### getGroup
+```java
+public PHXGroup getGroup(java.lang.String childName)
+ throws PHXNoSuchObjectException
+```
+retrieves a child group.
+
+**Parameters:**
+- `childName`- the name of the child group
+
+**Returns:**
+- the child group
+
+**Throws:**
+- `PHXNoSuchObjectException` - thrown if the child group is not found
+
+### getGroup2
+```java
+public PHXGroup getGroup2(java.lang.String childName)
+```
+retrieves a child group. Does not throw an exception on failure.
+
+**Parameters:**
+- `childName`- the name of the child group
+
+**Returns:**
+- the child group. Returns null on failure
+
+### makeGroup
+```java
+public PHXGroup makeGroup(java.lang.String childName)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+creates a child group. If the group already exists, it is retrieved
+
+**Parameters:**
+- `childName`- the name of the child group
+
+**Returns:**
+- the child group
+
+**Throws:**
+- `PHXNameAlreadyInUseException`
+- `PHXInvalidNameException`
+
+### removeGroup
+```java
+public void removeGroup(java.lang.String childName)
+ throws java.lang.Exception
+```
+remove a child group. If the group doesn't exist, it just returns
+
+**Parameters:**
+- `childName`- the name of the child group
+
+**Throws:**
+- `java.lang.Exception`
+
+### getNumGroups
+```java
+public int getNumGroups()
+```
+retrieves the number of subgroups in the group.
+
+**Returns:**
+- the number of subgroups
+
+### getGroups
+```java
+public java.util.Enumeration getGroups()
+```
+retrieves the Enumeration of subgroups in the group.
+
+**Returns:**
+- an Enumeration of [`PHXGroup`](PHXGroup.md) objects
+
+### getGroups2
+```java
+public java.util.Iterator getGroups2()
+```
+retrieves all the subgroups in the group
+
+**Returns:**
+- an Iterator of all the [`PHXGroup`](PHXGroup.md) objects.
+
+### addVariable
+```java
+public void addVariable(PHXVariableInfo varInfo)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+stores a variable in the group.
+
+**Parameters:**
+- `varInfo`- the variable info structure
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](PHXInvalidNameException.md)
+
+### getVariableInfo
+```java
+public PHXVariableInfo getVariableInfo(java.lang.String varName)
+ throws PHXNoSuchObjectException
+```
+retrieves a variable from the group.
+
+**Parameters:**
+- `varName`- the name of the variable to get
+
+**Returns:**
+- the variable info structure
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified variable is not found
+
+### getVariableInfo2
+```java
+public PHXVariableInfo getVariableInfo2(java.lang.String varName)
+```
+retrieves a variable from the group. Does not throw an Exception on failure.
+
+**Parameters:**
+- `varName`- the name of the variable to get
+
+**Returns:**
+- the variable info structure, or null if not found
+
+### contains
+```java
+public boolean contains(PHXVariableInfo varInfo)
+```
+checks to see if a variable exists in this group
+
+**Parameters:**
+- `varInfo`- the variable to check, must be an exact match (not just name)
+
+**Returns:**
+- true if the variable is in this group
+
+### contains
+```java
+public boolean contains(java.lang.String varName)
+```
+Checks to see if a variable exists in this group.
+
+**Parameters:**
+- `varName`- the name of the variable to check.
+
+**Returns:**
+- true if the variable is in this group.
+
+### getNumVariables
+```java
+public int getNumVariables()
+```
+retrieves the number of variables in the group.
+
+**Returns:**
+- the number of variables
+
+### getVariables
+```java
+public java.util.Enumeration getVariables()
+```
+retrieves the Enumeration of variables in the group.
+
+**Returns:**
+- an Enumeration of [`PHXVariableInfo`](PHXVariableInfo.md) objects
+
+### getVariables2
+```java
+public java.util.Iterator getVariables2()
+```
+retrieves all of the variables in the group.
+
+**Returns:**
+- an Iterator of all the [`PHXVariableInfo`](PHXVariableInfo.md) objects
+
+### removeAllVariables
+```java
+public void removeAllVariables()
+```
+removes all variables from the group
+
+### removeAllGroups
+```java
+public void removeAllGroups()
+```
+remove all groups from the group
+
+### removeVariable
+```java
+public void removeVariable(PHXVariableInfo varInfo)
+```
+removes a variable
+
+**Parameters:**
+- `varInfo`- the variable structure to remove
+
+### toString
+```java
+public java.lang.String toString()
+```
+Converts this to a string
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- the string "Group: " with the name of the group appended.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvalidNameException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvalidNameException.md
new file mode 100644
index 0000000000..486e085be0
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvalidNameException.md
@@ -0,0 +1,64 @@
+# Class: PHXInvalidNameException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.PHXInvalidNameException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Declaration**
+```java
+public class PHXInvalidNameException
+extends java.lang.Exception
+```
+
+An exception that is thrown when trying to create a new object using an invalid name.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXInvalidNameException(java.lang.String name)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static void` | `checkGroup(java.lang.String name)`
Checks a name to see if it's valid. |
+| `static void` | `checkName(java.lang.String name)`
Checks a name to see if it's valid. |
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXInvalidNameException
+```java
+public PHXInvalidNameException(java.lang.String name)
+```
+**Parameters:**
+- `name` - the name that was already in use
+
+## Method Detail
+
+### checkName
+```java
+public static void checkName(java.lang.String name)
+ throws PHXInvalidNameException
+```
+Checks a name to see if it's valid.
+
+### See Also
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md)
+- [`PHXGroup`](PHXGroup.md)
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvokeReturn.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvokeReturn.md
new file mode 100644
index 0000000000..48c87d876a
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXInvokeReturn.md
@@ -0,0 +1,98 @@
+# Class: PHXInvokeReturn
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXInvokeReturn
+```
+
+**Declaration**
+```java
+public class PHXInvokeReturn
+extends java.lang.Object
+```
+
+A utility class for holding return information from an invoked function. It's used to capture additional return information such as whether all variable values should be retrieved after invocation, and can easily be extended for future needs in this vein.
+
+To use this class, simply return it from a method defined on a [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md).
+
+**See Also:**
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md)
+- [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md)
+- [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+- [`PHXGroup`](PHXGroup.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXInvokeReturn()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `boolean` | `getDownloadInputs()`
Retrieves whether the invocation should trigger a redownloading of input values. |
+| `java.lang.String` | `getReturnString()`
Retrieves the return string for the custom method. |
+| `void` | `setDownloadInputs(boolean downloadInputs)`
Set whether input values should be redownloaded after the invocation. |
+| `void` | `setReturnString(java.lang.String returnStr)`
Sets the return string for the custom method. |
+| `java.lang.String` | `toString()`
Handle converting this class to a string in XML format. |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXInvokeReturn
+```java
+public PHXInvokeReturn()
+```
+
+## Method Detail
+
+### getReturnString
+```java
+public java.lang.String getReturnString()
+```
+Retrieves the return string for the custom method.
+
+**Returns:**
+- the return string
+
+### setReturnString
+```java
+public void setReturnString(java.lang.String returnStr)
+```
+Sets the return string for the custom method.
+
+**Parameters:**
+- `returnStr` - the return string
+
+### getDownloadInputs
+```java
+public boolean getDownloadInputs()
+```
+Retrieves whether the invocation should trigger a redownloading of input values.
+
+**Returns:**
+- should the input values be redownloaded after the invocation?
+
+### setDownloadInputs
+```java
+public void setDownloadInputs(boolean downloadInputs)
+```
+Set whether input values should be redownloaded after the invocation.
+
+**Parameters:**
+- `downloadInputs` - Sends a hint to the client as to whether input values should be re-downloaded after the invocation.
+
+### toString
+```java
+public java.lang.String toString()
+```
+Handle converting this class to a string in XML format.
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXMethodDescriptor.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXMethodDescriptor.md
new file mode 100644
index 0000000000..af5898e735
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXMethodDescriptor.md
@@ -0,0 +1,128 @@
+# Class: PHXMethodDescriptor
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXMethodDescriptor
+```
+
+**Declaration**
+```java
+public class PHXMethodDescriptor
+extends java.lang.Object
+```
+
+A utility class used by [`PHXSelfManager`](PHXSelfManager.md) to indicate which methods it can invoke. Also used by [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md), [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), and [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md).
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXMethodDescriptor()` |
+| `PHXMethodDescriptor(java.lang.String name)` |
+| `PHXMethodDescriptor(java.lang.String name, java.lang.String fullName)` |
+| `PHXMethodDescriptor(java.lang.String name, java.lang.String fullName, boolean downloadInputs)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static PHXMethodDescriptor` | `fromString(java.lang.String str)` |
+| `boolean` | `getDownloadInputs()` |
+| `java.lang.String` | `getFullName()` |
+| `java.lang.String` | `getName()` |
+| `void` | `setDownloadInputs(boolean di)` |
+| `void` | `setFullName(java.lang.String fullName)` |
+| `void` | `setName(java.lang.String name)` |
+| `java.lang.String` | `toString()` |
+| `java.lang.String` | `toString2()` |
+| `java.lang.String` | `toString3()` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXMethodDescriptor
+```java
+public PHXMethodDescriptor()
+```
+
+### PHXMethodDescriptor
+```java
+public PHXMethodDescriptor(java.lang.String name)
+```
+
+### PHXMethodDescriptor
+```java
+public PHXMethodDescriptor(java.lang.String name, java.lang.String fullName)
+```
+
+### PHXMethodDescriptor
+```java
+public PHXMethodDescriptor(java.lang.String name, java.lang.String fullName, boolean downloadInputs)
+```
+
+## Method Detail
+
+### getDownloadInputs
+```java
+public boolean getDownloadInputs()
+```
+
+### setDownloadInputs
+```java
+public void setDownloadInputs(boolean di)
+```
+
+### getFullName
+```java
+public java.lang.String getFullName()
+```
+
+### setFullName
+```java
+public void setFullName(java.lang.String fullName)
+```
+
+### getName
+```java
+public java.lang.String getName()
+```
+
+### setName
+```java
+public void setName(java.lang.String name)
+```
+
+### toString3
+```java
+public java.lang.String toString3()
+```
+
+### toString2
+```java
+public java.lang.String toString2()
+```
+
+### toString
+```java
+public java.lang.String toString()
+```
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+### fromString
+```java
+public static PHXMethodDescriptor fromString(java.lang.String str)
+```
+
+### See Also
+- [`PHXSelfManager`](PHXSelfManager.md)
+- [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md)
+- [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md)
+- [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+- [`PHXInvokeReturn`](PHXInvokeReturn.md)
+- [`PHXGroup`](PHXGroup.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNameAlreadyInUseException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNameAlreadyInUseException.md
new file mode 100644
index 0000000000..63309f5e68
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNameAlreadyInUseException.md
@@ -0,0 +1,45 @@
+# Class: PHXNameAlreadyInUseException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.PHXNameAlreadyInUseException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Declaration**
+```java
+public class PHXNameAlreadyInUseException
+extends java.lang.Exception
+```
+
+An exception that is thrown when trying to create a new object with a name that already exists.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXNameAlreadyInUseException(java.lang.String name)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXNameAlreadyInUseException
+```java
+public PHXNameAlreadyInUseException(java.lang.String name)
+```
+**Parameters:**
+- `name` - the name that was already in use
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchObjectException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchObjectException.md
new file mode 100644
index 0000000000..fc837022cf
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchObjectException.md
@@ -0,0 +1,69 @@
+# Class: PHXNoSuchObjectException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.PHXNoSuchObjectException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Direct Known Subclasses:**
+- [PHXNoSuchWriteableObjectException](PHXNoSuchWriteableObjectException.md)
+
+**Declaration**
+```java
+public class PHXNoSuchObjectException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an object cannot be found.
+
+## Constructor Summary
+
+| Modifier | Constructor and Description |
+|-------------|----------------------------|
+| `protected` | `PHXNoSuchObjectException(int i, java.lang.String msg)` |
+| | `PHXNoSuchObjectException(java.lang.String object)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|---------------------|----------------------|
+| `java.lang.String` | `getInvalidObject()`
Retrieves the object name that was invalid. |
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchObjectException
+```java
+protected PHXNoSuchObjectException(int i, java.lang.String msg)
+```
+
+### PHXNoSuchObjectException
+```java
+public PHXNoSuchObjectException(java.lang.String object)
+```
+**Parameters:**
+- `object` - the object name that caused the exception.
+
+## Method Detail
+
+### getInvalidObject
+```java
+public java.lang.String getInvalidObject()
+```
+Retrieves the object name that was invalid.
+
+**Returns:**
+- the invalid object name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchWriteableObjectException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchWriteableObjectException.md
new file mode 100644
index 0000000000..cbf0442152
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXNoSuchWriteableObjectException.md
@@ -0,0 +1,49 @@
+# Class: PHXNoSuchWriteableObjectException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.PHXNoSuchObjectException
+ ↳ com.phoenix_int.aserver.PHXNoSuchWriteableObjectException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Declaration**
+```java
+public class PHXNoSuchWriteableObjectException
+extends PHXNoSuchObjectException
+```
+
+An exception that the PHXObjectManager throws when it can't find an object.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXNoSuchWriteableObjectException(java.lang.String object)` |
+
+## Method Summary
+
+### Methods inherited from class com.phoenix_int.aserver.[PHXNoSuchObjectException](PHXNoSuchObjectException.md)
+`getInvalidObject`
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchWriteableObjectException
+```java
+public PHXNoSuchWriteableObjectException(java.lang.String object)
+```
+**Parameters:**
+- `object` - the object name that caused the exception.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXPropertyDescriptor.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXPropertyDescriptor.md
new file mode 100644
index 0000000000..6b1e43a392
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXPropertyDescriptor.md
@@ -0,0 +1,283 @@
+# Class: PHXPropertyDescriptor
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXPropertyDescriptor
+```
+
+**Declaration**
+```java
+public class PHXPropertyDescriptor
+extends java.lang.Object
+```
+
+A utility class used by [PHXSimpleSelfManager](PHXSimpleSelfManager.md), [PHXSimpleSelfManager2](PHXSimpleSelfManager2.md), and [PHXSimpleSelfManager3](PHXSimpleSelfManager3.md) to indicate which properties it manages.
+
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXPropertyDescriptor()`
Creates a property descriptor with all values set to "unknown" |
+| `PHXPropertyDescriptor(java.beans.PropertyDescriptor prop)` |
+| `PHXPropertyDescriptor(java.beans.PropertyDescriptor prop, java.lang.Object parent)` |
+| `PHXPropertyDescriptor(java.lang.String name, java.lang.Object object, boolean canSet, boolean canGet)` |
+| `PHXPropertyDescriptor(java.lang.String name, java.lang.String type, boolean canSet, boolean canGet)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static void` | `asPropertyDescriptor(java.lang.StringBuffer out, java.lang.String name, java.lang.String type, boolean canSet, boolean canGet)`
Stringify the property descriptor data. |
+| `java.lang.String` | `asValueDescriptor()`
Converts the property to a machine-readable format. |
+| `static void` | `asValueDescriptor(java.lang.StringBuffer out, java.lang.String name, java.lang.String type, boolean canSet, boolean canGet, java.lang.String value)`
Stringify the value descriptor data. |
+| `void` | `asValueDescriptor2([util/PHXStringBuffer](util/PHXStringBuffer.md) out)`
Converts the property to a readable format. |
+| `void` | `asValueDescriptor3([util/PHXStringBuffer](util/PHXStringBuffer.md) out)`
Converts the property to a readable format. |
+| `boolean` | `getCanGet()`
Determines if the property can be retrieved. |
+| `boolean` | `getCanSet()`
Determines if the property can be modified. |
+| `java.lang.String` | `getName()`
Retrieves the property name. |
+| `java.lang.Object` | `getSource()` |
+| `java.lang.String` | `getType()`
Retrieves the type of the property as a string. |
+| `java.lang.Class` | `getTypeClass()`
Retrieves the type of the property as a Class object. |
+| `java.lang.String` | `getValue()` |
+| `[util/PHXStringBuffer](util/PHXStringBuffer.md)` | `getValue2()` |
+| `[util/PHXStringBuffer](util/PHXStringBuffer.md)` | `getValue3()` |
+| `void` | `setCanGet(boolean flag)`
Sets whether the property can be retrieved. |
+| `void` | `setCanSet(boolean flag)`
Sets whether the property can be modified. |
+| `java.lang.String` | `toString()`
Converts the property to a readable format. |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`
+
+## Constructor Detail
+
+### PHXPropertyDescriptor
+```java
+public PHXPropertyDescriptor()
+```
+Creates a property descriptor with all values set to "unknown".
+
+### PHXPropertyDescriptor
+```java
+public PHXPropertyDescriptor(java.beans.PropertyDescriptor prop)
+```
+**Parameters:**
+- `prop` - the PropertyDescriptor
+
+### PHXPropertyDescriptor
+```java
+public PHXPropertyDescriptor(java.lang.String name,
+ java.lang.String type,
+ boolean canSet,
+ boolean canGet)
+```
+**Parameters:**
+- `name` - the name of the property
+- `type` - the property type
+- `canGet` - true if the property is readable
+- `canSet` - true if the property is writeable
+
+### PHXPropertyDescriptor
+```java
+public PHXPropertyDescriptor(java.lang.String name,
+ java.lang.Object object,
+ boolean canSet,
+ boolean canGet)
+```
+**Parameters:**
+- `name` - the name of the property
+- `object` - the property
+- `canGet` - true if the property is readable
+- `canSet` - true if the property is writeable
+
+### PHXPropertyDescriptor
+```java
+public PHXPropertyDescriptor(java.beans.PropertyDescriptor prop,
+ java.lang.Object parent)
+ throws java.lang.IllegalArgumentException
+```
+**Parameters:**
+- `prop` - the PropertyDescriptor
+- `parent` - the parent object - used to retrieve the actual object for prop if prop is an array (so that the array length can be determined). May be null.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+## Method Detail
+
+### getCanGet
+```java
+public boolean getCanGet()
+```
+Determines if the property can be retrieved.
+
+**Returns:**
+- true if the property can be retrieved
+
+### setCanGet
+```java
+public void setCanGet(boolean flag)
+```
+Sets whether the property can be retrieved.
+
+**Parameters:**
+- `flag` - true if the property can be retrieved
+
+### getCanSet
+```java
+public boolean getCanSet()
+```
+Determines if the property can be modified.
+
+**Returns:**
+- true if the property can be modified
+
+### setCanSet
+```java
+public void setCanSet(boolean flag)
+```
+Sets whether the property can be modified.
+
+**Parameters:**
+- `flag` - true if the property can be modified
+
+### getName
+```java
+public java.lang.String getName()
+```
+Retrieves the property name.
+
+**Returns:**
+- the name of the property
+
+### getType
+```java
+public java.lang.String getType()
+```
+Retrieves the type of the property as a string.
+
+**Returns:**
+- the type of the property as a String
+
+### getTypeClass
+```java
+public java.lang.Class getTypeClass()
+```
+Retrieves the type of the property as a Class object.
+
+**Returns:**
+- the type of the property as a Class object
+
+### getValue
+```java
+public java.lang.String getValue()
+```
+
+### getValue2
+```java
+public PHXStringBuffer getValue2()
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### getValue3
+```java
+public PHXStringBuffer getValue3()
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### getSource
+```java
+public java.lang.Object getSource()
+```
+
+### toString
+```java
+public java.lang.String toString()
+```
+Converts the property to a readable format.
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- the property in String format
+
+### asValueDescriptor
+```java
+public java.lang.String asValueDescriptor()
+```
+Converts the property to a machine-readable format.
+
+**Returns:**
+- the property in String format
+
+### asValueDescriptor2
+```java
+public void asValueDescriptor2(PHXStringBuffer out)
+ throws java.io.IOException
+```
+Converts the property to a readable format. Returns a [util/PHXStringBuffer](util/PHXStringBuffer.md) for performance.
+
+**Parameters:**
+- `out` - a buffer for the method to use to store the property in String format
+
+**Throws:**
+- `java.io.IOException`
+
+### asValueDescriptor3
+```java
+public void asValueDescriptor3(PHXStringBuffer out)
+ throws java.io.IOException
+```
+Converts the property to a readable format. Returns a [util/PHXStringBuffer](util/PHXStringBuffer.md) for performance.
+
+**Parameters:**
+- `out` - a buffer for the method to use to store the property in String format
+
+**Throws:**
+- `java.io.IOException`
+
+### asPropertyDescriptor
+```java
+public static void asPropertyDescriptor(java.lang.StringBuffer out,
+ java.lang.String name,
+ java.lang.String type,
+ boolean canSet,
+ boolean canGet)
+```
+Stringify the property descriptor data.
+
+**Parameters:**
+- `out` - the buffer to write to
+- `name` - the property name
+- `type` - the property type
+- `canSet` - whether the property can be set
+- `canGet` - whether the property can be read
+
+### asValueDescriptor
+```java
+public static void asValueDescriptor(java.lang.StringBuffer out,
+ java.lang.String name,
+ java.lang.String type,
+ boolean canSet,
+ boolean canGet,
+ java.lang.String value)
+```
+Stringify the value descriptor data.
+
+**Parameters:**
+- `out` - the buffer to write to
+- `name` - the property name
+- `type` - the property type
+- `canSet` - whether the property can be set
+- `canGet` - whether the property can be read
+- `value` - the value to write
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.RunInfo.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.RunInfo.md
new file mode 100644
index 0000000000..efed227b51
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.RunInfo.md
@@ -0,0 +1,60 @@
+# Class: PHXRunShare.RunInfo
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXRunShare.RunInfo
+```
+
+**Enclosing class:**
+[PHXRunShare](PHXRunShare.md)
+
+**Declaration**
+```java
+public class PHXRunShare.RunInfo
+extends java.lang.Object
+```
+
+Data structure used to hold info about a currently running command.
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|---------------------|----------------------|
+| `java.lang.String` | `cmd` |
+| `java.io.File` | `runFolder` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `RunInfo(java.lang.String cmd, java.lang.String runFolder)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### cmd
+```java
+public java.lang.String cmd
+```
+
+### runFolder
+```java
+public java.io.File runFolder
+```
+
+## Constructor Detail
+
+### RunInfo
+```java
+public RunInfo(java.lang.String cmd, java.lang.String runFolder)
+```
+
+See also: [PHXRunShare](PHXRunShare.md)
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.md
new file mode 100644
index 0000000000..b8bc69863e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXRunShare.md
@@ -0,0 +1,519 @@
+# Class: PHXRunShare
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXRunShare
+```
+
+**Implemented Interfaces**
+- [`IPHXMonitorable`](IPHXMonitorable.md), `com.phoenix_int.aserver.trace.IPHXTraceGenerator`
+
+**Declaration**
+```java
+public class PHXRunShare
+extends java.lang.Object
+implements IPHXMonitorable, com.phoenix_int.aserver.trace.IPHXTraceGenerator
+```
+
+This class handles runshare capabilities for any component which needs it. It can create temp directories, deal w/ auto-copy and auto-delete of important files, return errors and block until it is safe to run. It also handles providing monitors for stdout and stderr as well as for monitoring started processes.
+
+This class can only handle one single process running at a time. If you need to run multiple processes, use multiple instances of this class. You can use this same object over and over by calling `lock()` and `unlock()` multiple times.
+
+## Nested Class Summary
+
+| Modifier and Type | Class and Description |
+|------------------|----------------------|
+| class | [`PHXRunShare.RunInfo`](PHXRunShare.RunInfo.md)
Data structure used to hold info about a currently running command |
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static int` | `DEL_AUTO`
delete the directory only if an error did not occur while running the wrapper. |
+| `static int` | `DEL_FALSE`
do not delete the directory. |
+| `static int` | `DEL_TRUE`
delete the directory. |
+| `static int` | `MODE_ERROR`
When a user tries to run a component that is already running, this option generates an error message and instructs the user to try again later. |
+| `static int` | `MODE_NONE`
This option performs no run sharing. |
+| `static int` | `MODE_SHARE`
When two or more users attempt to run a component simultaneously, the FileWrapper creates separate directories that hold unique input and output files for every user. |
+| `static int` | `MODE_WAIT`
When the component is running, this option ensures that no one else will be able to run it. |
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXRunShare(java.lang.String baseDir, java.lang.String wrapperID)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addFileToCopy(java.lang.String file)` |
+| `void` | `addRunDirChangedListener(com.phoenix_int.aserver.IPHXRunDirChangedListener rdl)`
Adds a listener which will receive events when the run directory is changed. |
+| `void` | `addTraceListener(com.phoenix_int.aserver.trace.IPHXTraceListener listener)`
Adds a listener to trace events |
+| `void` | `cleanTempDir()`
cleans up the temporary run directory if one has been created. |
+| `void` | `finalize()` |
+| `boolean` | `getAutoChangeDir()`
Gets the `AutoChangeDir` flag |
+| `int` | `getAutoDelete()`
Gets the auto-delete mode |
+| `java.lang.String` | `getBaseDirectory()`
Gets the base dir which was passed in to the constructor. |
+| `java.util.Map` | `getDictionary()` |
+| `java.lang.String` | `getDirectory()`
Returns the current directory being used by the runshare system. |
+| `boolean` | `getIgnoreErrors()`
Gets the `IgnoreErrors` flag |
+| `int` | `getMode()`
Gets the runshare mode |
+| `java.lang.Object` | `getMonitor(java.lang.String m)`
Returns any available monitors by name. |
+| `java.lang.String` | `getShell()`
Gets the shell used to execute commands. |
+| `java.lang.String` | `getWrapperID()`
Returns the wrapper ID being used for locking. |
+| `void` | `halt()`
halts any running process |
+| `java.lang.String[]` | `listMonitorableFiles()`
Lists available "monitors". |
+| `PHXProcessInfo[]` | `listProcesses()`
Lists any running processes |
+| `void` | `lock()`
Causes the run-share mode to be implemented. |
+| `void` | `removeRunDirChangedListener(com.phoenix_int.aserver.IPHXRunDirChangedListener rdl)`
Removes a listener for run directory changed events. |
+| `void` | `removeTraceListener(com.phoenix_int.aserver.trace.IPHXTraceListener listener)`
Removes a listener from trace events |
+| `void` | `reset()`
Reset the `ProcessStruct` back to initial state for possible use in another run request. |
+| `void` | `run(java.lang.String cmd)`
Runs a command. |
+| `void` | `run(java.lang.String cmd, boolean ignoreErrors, boolean autoChangeDir, java.lang.String shell)`
Runs a command. |
+| `void` | `run(java.lang.String cmd, boolean ignoreErrors, java.lang.String autoChangeDir, java.lang.String shell)`
Runs a command. |
+| `int` | `run2(java.lang.String cmd, boolean ignoreErrors, java.lang.String autoChangeDir, java.lang.String shell)`
Runs a command. |
+| `void` | `setAutoChangeDir(boolean flag)`
Sets the `AutoChangeDir` flag. |
+| `void` | `setAutoDelete(int autoDelete)`
Sets the auto-delete mode for runshare mode MODE_SHARE. |
+| `PHXRunShare` | `setDictionary(java.util.Map dict)` |
+| `void` | `setDirectTransfer(boolean flag)`
Set whether or not this runShare is involved in direct transfer of files |
+| `void` | `setFilesToCopy(java.lang.String files)`
Sets the files which need to be copied when runshare mode is MODE_SHARE. |
+| `void` | `setIgnoreErrors(boolean flag)`
Sets the `IgnoreErrors` flag. |
+| `void` | `setMode(int mode)`
Sets the runshare mode. |
+| `void` | `setRunDirectory(java.lang.String runDirectory)` |
+| `void` | `setRunReplacer(com.phoenix_int.aserver.util.PHXRunReplacer replacer)`
Sets the run replacer object which is used to transform $VAR type specifications before running commands |
+| `void` | `setShell(java.lang.String shell)`
Sets the shell used to execute commands. |
+| `void` | `timeout()`
Cleans up a run that has timed out |
+| `void` | `unlock()`
Unlocks the runshare mechanisms. |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### MODE_NONE
+```
+public static final int MODE_NONE
+```
+This option performs no run sharing. This means that when two users attempt to run the same component simultaneously, ModelCenter Remote Execution will take no action to ensure that input and output files are not overwritten.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.MODE_NONE)
+
+### MODE_ERROR
+```
+public static final int MODE_ERROR
+```
+When a user tries to run a component that is already running, this option generates an error message and instructs the user to try again later.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.MODE_ERROR)
+
+### MODE_WAIT
+```
+public static final int MODE_WAIT
+```
+When the component is running, this option ensures that no one else will be able to run it. A second user will not be able to read or write files until the first user is done with them. When the first user's object has retrieved all of the output information it needs from the component's files, the second user's object can now run; it overwrites the current input and output files in doing so. This is the default run sharing mechanism of FileWrapper components.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.MODE_WAIT)
+
+### MODE_SHARE
+```
+public static final int MODE_SHARE
+```
+When two or more users attempt to run a component simultaneously, the FileWrapper creates separate directories that hold unique input and output files for every user. Thus, all users can run the component simultaneously without file conflicts.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.MODE_SHARE)
+
+### DEL_AUTO
+```
+public static final int DEL_AUTO
+```
+delete the directory only if an error did not occur while running the wrapper. If an error did occur, then the directory is preserved and a file named exception.log is created in the directory to record the error. If no error occurs, the directory is deleted when the component is ended or when it's run again. This the default setting.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.DEL_AUTO)
+
+### DEL_FALSE
+```
+public static final int DEL_FALSE
+```
+do not delete the directory.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.DEL_FALSE)
+
+### DEL_TRUE
+```
+public static final int DEL_TRUE
+```
+delete the directory.
+
+**See Also:**
+
+[`Constant Field Values`](../../../constant-values.html#com.phoenix_int.aserver.PHXRunShare.DEL_TRUE)
+
+## Constructor Detail
+
+### PHXRunShare
+```
+public PHXRunShare(java.lang.String baseDir,
+ java.lang.String wrapperID)
+```
+**Parameters:**
+- `baseDir` - The directory on disk where the files associated w/ this component are located.
+- `wrapperID` - A unique ID which identifies this component. This is used to synchronize runshare access across multiple instances of the same component. Typically the full path on disk to the component's main file is used for this ID.
+
+## Method Detail
+
+### finalize
+```
+public void finalize()
+```
+**Overrides::**
+- `finalize` in class `java.lang.Object`
+
+### getWrapperID
+```
+public java.lang.String getWrapperID()
+```
+Returns the wrapper ID being used for locking. This ID should be the full path to the main file on disk for the associated wrapper.
+
+### setDictionary
+```
+public PHXRunShare setDictionary(java.util.Map dict)
+```
+
+### getDictionary
+```
+public java.util.Map getDictionary()
+```
+
+### setRunReplacer
+```
+public void setRunReplacer(com.phoenix_int.aserver.util.PHXRunReplacer replacer)
+```
+Sets the run replacer object which is used to transform $VAR type specifications before running commands
+
+### addRunDirChangedListener
+```
+public void addRunDirChangedListener(com.phoenix_int.aserver.IPHXRunDirChangedListener rdl)
+```
+Adds a listener which will receive events when the run directory is changed.
+
+### removeRunDirChangedListener
+```
+public void removeRunDirChangedListener(com.phoenix_int.aserver.IPHXRunDirChangedListener rdl)
+```
+Removes a listener for run directory changed events.
+
+### getBaseDirectory
+```
+public java.lang.String getBaseDirectory()
+```
+Gets the base dir which was passed in to the constructor.
+
+### getDirectory
+```
+public java.lang.String getDirectory()
+```
+Returns the current directory being used by the runshare system. This may be the base directory, or it may be a temp directory created underneath there to implement run sharing.
+
+### lock
+```
+public void lock()
+ throws java.io.IOException
+```
+Causes the run-share mode to be implemented. This creates sub-dirs, waits or errors as appropriate.
+
+Once in "locked" mode, calling `lock()` again has no effect.
+
+**Throws:**
+- `java.io.IOException`
+
+### unlock
+```
+public void unlock()
+```
+Unlocks the runshare mechanisms. This will unblock other components which are waiting for us to finish.
+
+Calling `unlock()` when not in "locked" mode has no effect.
+
+### setDirectTransfer
+```
+public void setDirectTransfer(boolean flag)
+```
+Set whether or not this runShare is involved in direct transfer of files
+
+**Parameters:**
+- `flag` - boolean flag
+
+### cleanTempDir
+```
+public void cleanTempDir()
+ throws java.io.IOException
+```
+cleans up the temporary run directory if one has been created. In general, wrappers and end users should **not** use this function unless you have manually created your own runshare object. Doing so will prevent proper delayed transfer of direct file transfer (DFT) files.
+
+**Throws:**
+- `java.io.IOException`
+
+### setRunDirectory
+```
+public void setRunDirectory(java.lang.String runDirectory)
+ throws com.phoenix_int.aserver.PHXCannotSetRunDirectoryException
+```
+**Throws:**
+- `com.phoenix_int.aserver.PHXCannotSetRunDirectoryException`
+
+### setMode
+```
+public void setMode(int mode)
+```
+Sets the runshare mode.
+
+### getMode
+```
+public int getMode()
+```
+Gets the runshare mode
+
+### addFileToCopy
+```
+public void addFileToCopy(java.lang.String file)
+```
+
+### setFilesToCopy
+```
+public void setFilesToCopy(java.lang.String files)
+```
+Sets the files which need to be copied when runshare mode is MODE_SHARE.
+
+### setAutoDelete
+```
+public void setAutoDelete(int autoDelete)
+```
+Sets the auto-delete mode for runshare mode MODE_SHARE. If DEL_TRUE, the created sub-dir is always deleted. If DEL_FALSE, it is never deleted. If DEL_AUTO, it is only deleted when no errors occur during the run. Deletion occurs when the component is ended or when the component is run again.
+
+### getAutoDelete
+```
+public int getAutoDelete()
+```
+Gets the auto-delete mode
+
+### setIgnoreErrors
+```
+public void setIgnoreErrors(boolean flag)
+```
+Sets the `IgnoreErrors` flag. By default this code will throw an exception if the spawned process returns a non-zero errorlevel. Occasionally a program will return an errorlevel even if it succeeds. This option allows you to igore the errorlevel.
+
+**Parameters:**
+- `flag` - true to ignore errors
+
+### getIgnoreErrors
+```
+public boolean getIgnoreErrors()
+```
+Gets the `IgnoreErrors` flag
+
+**Returns:**
+- the `IgnoreErrors` flag
+
+### setAutoChangeDir
+```
+public void setAutoChangeDir(boolean flag)
+```
+Sets the `AutoChangeDir` flag. This flag indicates whether to change the current working directory to the run directory (see `getDirectory`) before running the code. Changing directories occasionally causes problems with other command line programs. True by default.
+
+**Parameters:**
+- `flag` - false to not change folders.
+
+### getAutoChangeDir
+```
+public boolean getAutoChangeDir()
+```
+Gets the `AutoChangeDir` flag
+
+**Returns:**
+- the `AutoChangeDir` flag
+
+### setShell
+```
+public void setShell(java.lang.String shell)
+```
+Sets the shell used to execute commands. This only applies to UNIX hosts. By default "sh" is used.
+
+**Parameters:**
+- `shell` - The shell used to invoke the run command
+
+### getShell
+```
+public java.lang.String getShell()
+```
+Gets the shell used to execute commands.
+
+**Returns:**
+- the command shell
+
+### run
+```
+public void run(java.lang.String cmd)
+ throws java.lang.Exception
+```
+Runs a command. Command may be relative to the run directory, see getDirectory().
+
+This function will not return until the sub-process has finished. It will collect stdout and stderr and provide progress monitors.
+
+If the command is halted (via [`halt()`](#halt) or [`timeout()`](#timeout)) and `ignoreError` is `false`, this method will throw a [`ProcessHaltedException`](ProcessHaltedException.md).
+
+**Parameters:**
+- `cmd` - The command to run.
+
+**Throws:**
+- `java.io.IOException` - Either the command cannot be executed, or an I/O error occurred while reading standard error or standard out from the command
+- [`ProcessHaltedException`](ProcessHaltedException.md) - The running script was halted via the [`halt()`](#halt) or [`timeout()`](#timeout).
+- `java.lang.Exception`
+
+### run
+```
+public void run(java.lang.String cmd,
+ boolean ignoreErrors,
+ boolean autoChangeDir,
+ java.lang.String shell)
+ throws java.lang.Exception
+```
+Runs a command. Command may be relative to the run directory, see getDirectory().
+
+This function will not return until the sub-process has finished. It will collect stdout and stderr and provide progress monitors.
+
+If the command is halted (via [`halt()`](../../../com/phoenix_int/aserver/PHXRunShare.html#halt--) or [`timeout()`](../../../com/phoenix_int/aserver/PHXRunShare.html#timeout--)) and `ignoreError` is `false`, this method will throw a [`ProcessHaltedException`](../../../com/phoenix_int/aserver/ProcessHaltedException.html "class in com.phoenix_int.aserver").
+
+**Parameters:**
+- `cmd` - The command to run.
+
+**Throws:**
+- `java.io.IOException` - Either the command cannot be executed, or an I/O error occurred while reading standard error or standard out from the command
+- [`ProcessHaltedException`](../../../com/phoenix_int/aserver/ProcessHaltedException.html "class in com.phoenix_int.aserver") - The running script was halted via the [`halt()`](../../../com/phoenix_int/aserver/PHXRunShare.html#halt--) or [`timeout()`](../../../com/phoenix_int/aserver/PHXRunShare.html#timeout--).
+- `java.lang.Exception`
+
+### run
+```
+public void run(java.lang.String cmd,
+ boolean ignoreErrors,
+ java.lang.String autoChangeDir,
+ java.lang.String shell)
+ throws java.lang.Exception
+```
+Runs a command. Command may be relative to the run directory, see `getDirectory()`.
+
+This function will not return until the sub-process has finished. It will collect stdout and stderr and provide progress monitors.
+
+If the command is halted (via `halt()` or `timeout()`) and `ignoreError` is false, this method will throw a `ProcessHaltedException`. If `ignoreError` is true, this method will return one (1).
+
+**Parameters:**
+- `cmd` - The command to run.
+- `ignoreErrors` - By default this code will throw an exception if the spawned process returns a non-zero errorlevel. Occasionally a program will return an errorlevel even if it succeeds. This option allows you to ignore the errorlevel.
+- `autoChangeDir` - If non-empty, the directory will be changed to this before running the program.
+- `shell` - On UNIX you can specify which shell to use to launch the program. By default "sh" is used.
+
+**Returns:**
+- the cmd exit status (`errorlevel`). Will be 0 unless `ignoreErrors` is true
+
+**Throws:**
+- `java.io.IOException` - Either the command cannot be executed, or an I/O error occurred while reading standard error or standard out from the command
+- `ProcessHaltedException` - The running script was halted via the `halt()` or `timeout()`.
+- `java.lang.Exception`
+
+### halt
+```
+public void halt()
+```
+halts any running process
+
+### timeout
+```
+public void timeout()
+```
+Cleans up a run that has timed out
+
+### reset
+```
+public void reset()
+```
+Reset the `ProcessStruct` back to initial state for possible use in another run request.
+
+### listProcesses
+```
+public PHXProcessInfo[] listProcesses() throws java.io.IOException
+```
+Lists any running processes
+
+**Specified by:**
+- `listProcesses` in interface `IPHXMonitorable`
+
+**Throws:**
+- `java.io.IOException` - If there was a problem reading information about running processes
+
+### listMonitorableFiles
+```
+public java.lang.String[] listMonitorableFiles()
+ throws java.io.IOException
+```
+Lists available "monitors". This will be "stdout" and "stderr".
+
+**Specified by:**
+- `listMonitorableFiles` in interface `IPHXMonitorable`
+
+**Throws:**
+- `java.io.IOException`
+
+### getMonitor
+```
+public java.lang.Object getMonitor(java.lang.String m)
+ throws PHXNoSuchObjectException
+```
+Returns any available monitors by name.
+
+**Specified by:**
+- `getMonitor` in interface [`IPHXMonitorable`](IPHXMonitorable.md)
+
+**Returns:**
+- either a PHXRawFile or a PHXMonitorableStream object
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md)
+
+### addTraceListener
+```
+public void addTraceListener(com.phoenix_int.aserver.trace.IPHXTraceListener listener)
+```
+Adds a listener to trace events
+
+**Specified by:**
+- `addTraceListener` in interface `com.phoenix_int.aserver.trace.IPHXTraceGenerator`
+
+**Parameters:**
+- `listener` - the listener
+
+### removeTraceListener
+```
+public void removeTraceListener(com.phoenix_int.aserver.trace.IPHXTraceListener listener)
+```
+Removes a listener from trace events
+
+**Specified by:**
+- `removeTraceListener` in interface `com.phoenix_int.aserver.trace.IPHXTraceGenerator`
+
+**Parameters:**
+- `listener` - the listener
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager.md
new file mode 100644
index 0000000000..b70fc58456
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager.md
@@ -0,0 +1,600 @@
+# Class: PHXSimpleSelfManager
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager
+```
+
+**Implemented Interfaces**
+- [`IPHXSelfManager`](IPHXSelfManager.md), [`IPHXComponent`](IPHXComponent.md)
+
+**Direct Known Subclasses:**
+- [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md)
+
+**Declaration**
+```java
+public class PHXSimpleSelfManager
+extends java.lang.Object
+implements IPHXSelfManager, IPHXComponent
+```
+
+This is a class that implements most of the functionality of a self-managing component. The class provides utility functions for storing variables. These variables are then served to ModelCenter Remote Execution automatically through the `listProperties`, `getValue`, and `setValue` functions.
+
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXSimpleSelfManager()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `addMethod(java.lang.String name)`
Relay function for addMethod(String name, boolean isVisible=true) |
+| `protected void` | `addMethod(java.lang.String name, boolean isVisible)`
Relay function for addMethod(String name, String fullName = name, boolean isVisible) |
+| `protected void` | `addMethod(java.lang.String name, java.lang.String fullName)`
Relay function for addMethod(String name, String fullName, boolean isVisible=true) |
+| `protected void` | `addMethod(java.lang.String name, java.lang.String fullName, boolean isVisible)`
Relay function for addMethod(String name, String fullName, boolean isVisible, boolean downloadInputs = false) |
+| `protected void` | `addMethod(java.lang.String name, java.lang.String fullName, boolean isVisible, boolean downloadInputs)`
Adds a method name to the object |
+| `protected void` | `addVariable(PHXVariableInfo varInfo)`
Adds a variable information object to the manager |
+| `protected void` | `addVariable(java.lang.String varName, boolean isInput, java.lang.Object var)`
Adds a variable object to the manager |
+| `protected void` | `addVariable(java.lang.String groupName, PHXVariableInfo varInfo)`
Adds a variable information object to the manager |
+| `protected void` | `addVariable(java.lang.String groupName, java.lang.String varName, boolean isInput, java.lang.Object var)`
Adds a variable object to the manager |
+| `void` | `end()`
Notifies the driver that it has ended. |
+| `void` | `forceSetValue(java.lang.String name, java.lang.String value)`
Sets the value for a variable regardless of whether it's an input or an output |
+| `protected PHXGroup` | `getGroup(java.lang.String group)`
Retrieves a group. |
+| `protected PHXGroup` | `getGroup2(java.lang.String group)`
Retrieves a group. |
+| `protected PHXMethodDescriptor` | `getMethodDescriptor(java.lang.String name)`
Find the Method Descriptor associated with a given name |
+| `PHXMethodDescriptor[]` | `getMethodDescriptors()`
Retrieves a set of method descriptors for this object |
+| `PHXPropertyDescriptor[]` | `getPropertyDescriptors(java.lang.String name)`
Retrieves a set of property descriptors for the variables managed by this object or one of its subobjects |
+| `PHXGroup` | `getRootGroup()`
Retrieves the root group |
+| `java.lang.String` | `getValue(java.lang.String name)`
Retrieves the value for the appropriate variable |
+| `java.lang.Object` | `getValue2(java.lang.String name)`
Retrieves the value for the appropriate variable |
+| `java.lang.String` | `getVariableFullName(java.lang.Object var)`
Gets the name of a variable |
+| `PHXVariableInfo` | `getVariableInfo(java.lang.Object var)`
Gets the information about a variable |
+| `protected PHXVariableInfo` | `getVariableInfo(java.lang.String fullVarName)`
Retrieves a variable information object from the manager |
+| `protected PHXVariableInfo` | `getVariableInfo(java.lang.String groupName, java.lang.String varName)`
Retrieves a variable information object from the manager |
+| `protected PHXVariableInfo` | `getVariableInfo2(java.lang.String fullVarName)`
Retrieves a variable information object from the manager |
+| `protected PHXVariableInfo` | `getVariableInfo2(java.lang.String groupName, java.lang.String varName)`
Retrieves a variable information object from the manager |
+| `java.lang.String` | `invoke(java.lang.String methodName)`
Invokes a named method. |
+| `PHXInvokeReturn` | `invoke2(java.lang.String methodName)`
Invokes a named method. |
+| `protected PHXGroup` | `makeGroup(java.lang.String group)`
Creates a group. |
+| `protected boolean` | `removeVariable(PHXVariableInfo varInfo)`
Removes a variable. |
+| `void` | `setValue(java.lang.String name, java.lang.String value)`
Stores a value into the appropriate variable |
+| `void` | `setValue2(java.lang.String name, PHXStringBuffer value)`
Stores a value into the appropriate variable |
+| `void` | `setValueActual(java.lang.String name, java.lang.Object value)` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXSimpleSelfManager
+```java
+public PHXSimpleSelfManager()
+```
+
+## Method Detail
+
+### addVariable
+```java
+protected void addVariable(java.lang.String groupName,
+ java.lang.String varName,
+ boolean isInput,
+ java.lang.Object var)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a variable object to the manager
+
+**Parameters:**
+- `groupName` - the group to store the variable in. May be a dot-separated list of groups
+- `varName` - the name of the variable
+- `isInput` - true if the variable is an input
+- `var` - the variable information to add
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addVariable
+```java
+protected void addVariable(java.lang.String varName,
+ boolean isInput,
+ java.lang.Object var)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a variable object to the manager
+
+**Parameters:**
+- `varName` - the name of the variable
+- `isInput` - true if the variable is an input
+- `var` - the variable information to add
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addVariable
+```java
+protected void addVariable(PHXVariableInfo varInfo)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a variable information object to the manager
+
+**Parameters:**
+- `varInfo` - the variable information object
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addVariable
+```java
+protected void addVariable(java.lang.String groupName,
+ PHXVariableInfo varInfo)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a variable information object to the manager
+
+**Parameters:**
+- `groupName` - the group to store the variable in. May be a dot-separated list of groups
+- `varInfo` - the variable information object
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### removeVariable
+```java
+protected boolean removeVariable(PHXVariableInfo varInfo)
+```
+removes a variable. The groups will be searched for the matching variable.
+
+**Parameters:**
+- `varInfo` - the variable structure to remove
+
+**Returns:**
+- `false` if the variable was not found
+
+### addMethod
+```java
+protected void addMethod(java.lang.String name,
+ java.lang.String fullName,
+ boolean isVisible,
+ boolean downloadInputs)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+adds a method name to the object
+
+**Parameters:**
+- `name` - the name of the method
+- `fullName` - the human readable name
+- `isVisible` - if `true`, the method is displayed using the `listMethods` command. Invoking is handled by the derived class, so it is up to it whether invisible methods may be invoked.
+- `downloadInputs` - if `true`, signal calling application that input variable values need to be reread
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### getMethodDescriptor
+```java
+protected PHXMethodDescriptor getMethodDescriptor(java.lang.String name)
+```
+find the Method Descriptor associated with a given name
+
+**Returns:**
+- The [`PHXMethodDescriptor`](PHXMethodDescriptor.md), or null if not found.
+
+### addMethod
+```java
+protected void addMethod(java.lang.String name,
+ java.lang.String fullName,
+ boolean isVisible)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+relay function for `addMethod( String name, String fullName, boolean isVisible, boolean downloadInputs = false )`
+
+**Parameters:**
+- `name` - the name of the method
+- `fullName` - the human readable name
+- `isVisible` - if `true`, the method is displayed using the `listMethods` command. Invoking is handled by the derived class, so it is up to it whether invisible methods may be invoked.
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addMethod
+```java
+protected void addMethod(java.lang.String name,
+ boolean isVisible)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+relay function for `addMethod( String name, String fullName = name, boolean isVisible )`
+
+**Parameters:**
+- `name` - the name of the method
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addMethod
+```java
+protected void addMethod(java.lang.String name,
+ java.lang.String fullName)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+relay function for `addMethod( String name, String fullName, boolean isVisible=true )`
+
+**Parameters:**
+- `name` - the name of the method
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### addMethod
+```java
+protected void addMethod(java.lang.String name)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+relay function for `addMethod( String name, boolean isVisible=true )`
+
+**Parameters:**
+- `name` - the name of the method
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### makeGroup
+```java
+protected PHXGroup makeGroup(java.lang.String group)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+creates a group. If the group already exists, it is just returned
+
+**Parameters:**
+- `group` - the name of the group. This name follows the dot-syntax format for the parent-child relationship
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) - thrown if the name is already in use
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name has invalid characters
+
+### getVariableFullName
+```java
+public java.lang.String getVariableFullName(java.lang.Object var)
+ throws PHXNoSuchObjectException
+```
+gets the name of a variable
+
+**Parameters:**
+- `var` - the variable object
+
+**Returns:**
+- the name of the variable or null if not found
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md)
+
+### getVariableInfo
+```java
+public PHXVariableInfo getVariableInfo(java.lang.Object var)
+ throws PHXNoSuchObjectException
+```
+gets the information about a variable
+
+**Parameters:**
+- `var` - the variable object
+
+**Returns:**
+- the [`PHXVariableInfo`](PHXVariableInfo.md) object associated with the variable
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified variable is not found
+
+### getVariableInfo
+```java
+protected PHXVariableInfo getVariableInfo(java.lang.String fullVarName)
+ throws PHXNoSuchObjectException
+```
+retrieves a variable information object from the manager
+
+**Parameters:**
+- `fullVarName` - The var name in format "group.group.name"
+
+**Returns:**
+- the associated `variableInfo` object
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified variable is not found
+
+### getVariableInfo2
+```java
+protected PHXVariableInfo getVariableInfo2(java.lang.String fullVarName)
+```
+retrieves a variable information object from the manager
+
+**Parameters:**
+- `fullVarName` - The var name in format "group.group.name"
+
+**Returns:**
+- the associated `variableInfo` object or null if it doesn't exist.
+
+### getVariableInfo
+```java
+protected PHXVariableInfo getVariableInfo(java.lang.String groupName,
+ java.lang.String varName)
+ throws PHXNoSuchObjectException
+```
+retrieves a variable information object from the manager
+
+**Parameters:**
+- `groupName` - the group to store the variable in. May be a dot-separated list of groups
+- `varName` - the name of the variable information object
+
+**Returns:**
+- the associated `variableInfo` object
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified variable is not found
+
+### getVariableInfo2
+```java
+protected PHXVariableInfo getVariableInfo2(java.lang.String groupName,
+ java.lang.String varName)
+```
+retrieves a variable information object from the manager
+
+**Parameters:**
+- `groupName` - the group to store the variable in. May be a dot-separated list of groups
+- `varName` - the name of the variable information object
+
+**Returns:**
+- the associated `variableInfo` object or null if not found
+
+### getGroup
+```java
+protected PHXGroup getGroup(java.lang.String group)
+ throws PHXNoSuchObjectException
+```
+retrieves a group.
+
+**Parameters:**
+- `group` - the name of the group. This name follows the dot-syntax format for the parent-child relationship
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified group is not found
+
+### getGroup2
+```java
+protected PHXGroup getGroup2(java.lang.String group)
+```
+retrieves a group.
+
+**Parameters:**
+- `group` - the name of the group. This name follows the dot-syntax format for the parent-child relationship
+
+**Returns:**
+- The [`PHXGroup`](PHXGroup.md) object, or null if not found.
+
+### getRootGroup
+```java
+public PHXGroup getRootGroup()
+```
+retrieves the root group
+
+**Returns:**
+- the root group
+
+### setValue
+```java
+public void setValue(java.lang.String name,
+ java.lang.String value)
+ throws PHXNoSuchObjectException,
+ PHXNoSuchWriteableObjectException,
+ java.lang.Exception
+```
+stores a value into the appropriate variable
+
+**Specified by:**
+- `setValue` in interface [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Parameters:**
+- `name` - the name of the variable
+- `value` - the value to store
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md) - thrown if the specified object cannot be written to
+- `java.lang.Exception` - thrown if the value cannot be set
+
+### setValue2
+```java
+public void setValue2(java.lang.String name,
+ PHXStringBuffer value)
+ throws PHXNoSuchObjectException,
+ PHXNoSuchWriteableObjectException,
+ java.lang.Exception
+```
+stores a value into the appropriate variable
+
+**Parameters:**
+- `name` - the name of the variable
+- `value` - the value to store
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md) - thrown if the specified object cannot be written to
+- `java.lang.Exception` - thrown if the value cannot be set
+
+### forceSetValue
+```java
+public void forceSetValue(java.lang.String name,
+ java.lang.String value)
+ throws PHXNoSuchObjectException,
+ java.lang.Exception
+```
+sets the value for a variable regardless of whether it's an input or an output
+
+**Parameters:**
+- `name` - the name of the variable
+- `value` - the value to store
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- `java.lang.Exception` - thrown if the value cannot be set
+
+### setValueActual
+```java
+public void setValueActual(java.lang.String name,
+ java.lang.Object value)
+ throws PHXNoSuchObjectException,
+ PHXNoSuchWriteableObjectException,
+ java.lang.IllegalAccessException,
+ java.lang.reflect.InvocationTargetException
+```
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md)
+- [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.reflect.InvocationTargetException`
+
+### getValue
+```java
+public java.lang.String getValue(java.lang.String name)
+ throws PHXNoSuchObjectException,
+ java.lang.Exception
+```
+retrieves the value for the appropriate variable
+
+**Specified by:**
+- `getValue` in interface [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Parameters:**
+- `name` - the name of the variable
+
+**Returns:**
+- a String reprentation of the value
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- `java.lang.Exception` - thrown if the value cannot be retrieved
+
+### getValue2
+```java
+public java.lang.Object getValue2(java.lang.String name)
+ throws PHXNoSuchObjectException,
+ java.lang.Exception
+```
+retrieves the value for the appropriate variable
+
+**Parameters:**
+- `name` - the name of the variable
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- `java.lang.Exception` - thrown if the value cannot be retrieved
+
+### getPropertyDescriptors
+```java
+public PHXPropertyDescriptor[] getPropertyDescriptors(java.lang.String name)
+ throws PHXNoSuchObjectException,
+ java.lang.Exception
+```
+retrieves a set of property descriptors for the variables managed by this object or one of its subobjects
+
+**Specified by:**
+- `getPropertyDescriptors` in interface [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Parameters:**
+- `name` - the name of the object to retrieve the property descriptors. If the value is null, then the top level is searched.
+
+**Returns:**
+- an array of [`PHXPropertyDescriptors`](PHXPropertyDescriptors.md)
+
+**Throws:**
+- [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) - thrown if the specified object does not exist
+- `java.lang.Exception` - thrown if the properties cannot be retrieved
+
+### getMethodDescriptors
+```java
+public PHXMethodDescriptor[] getMethodDescriptors()
+ throws java.lang.Exception
+```
+retrieves a set of method descriptors for this object
+
+**Specified by:**
+- `getMethodDescriptors` in interface [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Returns:**
+- an array of `MethodDescriptors`
+
+**Throws:**
+- `java.lang.Exception` - thrown if the properties cannot be retrieved
+
+### invoke
+```java
+public java.lang.String invoke(java.lang.String methodName)
+ throws java.lang.Exception
+```
+Invokes a named method.
+
+**Specified by:**
+- `invoke` in interface [`IPHXSelfManager`](IPHXSelfManager.md)
+
+**Parameters:**
+- `methodName` - the name of the method to invoke on obj
+
+**Returns:**
+- the return value from the invocation
+
+**Throws:**
+- `java.lang.Exception` - thrown if a problem occurs invoking the method
+
+### invoke2
+```java
+public PHXInvokeReturn invoke2(java.lang.String methodName)
+ throws java.lang.Exception
+```
+Invokes a named method.
+
+**Parameters:**
+- `methodName` - the name of the method to invoke on obj
+
+**Returns:**
+- the return value from the invocation
+
+**Throws:**
+- `java.lang.Exception` - thrown if a problem occurs invoking the method
+
+### end
+```java
+public void end()
+ throws java.lang.Exception
+```
+Description copied from interface: [`IPHXComponent`](IPHXComponent.md)
+
+Notifies the driver that it has ended. The driver should perform any necesary shutdown functions.
+
+**Specified by:**
+- `end` in interface [`IPHXComponent`](IPHXComponent.md)
+
+**Throws:**
+- `java.lang.Exception` - thrown if the function does not complete succesfully
+
+**See also:** [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md), [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md), [`PHXRunShare`](PHXRunShare.md), [`PHXRunShare.RunInfo`](PHXRunShare.RunInfo.md), [`PHXDFTException`](PHXDFTException.md), [`PHXComponentDescription`](PHXComponentDescription.md), [`PHXComponentVersion`](PHXComponentVersion.md), [`PHXComponentBranch`](PHXComponentBranch.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager2.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager2.md
new file mode 100644
index 0000000000..328026c17b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager2.md
@@ -0,0 +1,52 @@
+# Class: PHXSimpleSelfManager2
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager2
+```
+
+**Implemented Interfaces**
+- [`IPHXComponent`](IPHXComponent.md), [`IPHXSelfManager`](IPHXSelfManager.md), [`IPHXSelfManager2`](IPHXSelfManager2.md)
+
+**Direct Known Subclasses:**
+- [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md)
+
+**Declaration**
+```java
+public class PHXSimpleSelfManager2
+ extends PHXSimpleSelfManager
+ implements IPHXSelfManager2
+```
+
+This class implements most of the functionality of a self-managing component. It provides utility functions for storing variables, which are then served to ModelCenter Remote Execution automatically through the listProperties, getValue, and setValue functions. This second iteration provides new functions for setValue and getValue capable of streaming large files and strings without loading them into memory via the [`PHXStringBuffer`](types/PHXStringBuffer.md) and [`PHXRawFile`](types/PHXRawFile.md) classes.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXSimpleSelfManager2()` |
+
+## Method Summary
+
+### Methods inherited from class com.phoenix_int.aserver.[PHXSimpleSelfManager](PHXSimpleSelfManager.md)
+`addMethod`, `addVariable`, `end`, `forceSetValue`, `getGroup`, `getGroup2`, `getMethodDescriptor`, `getMethodDescriptors`, `getPropertyDescriptors`, `getRootGroup`, `getValue`, `getValue2`, `getVariableFullName`, `getVariableInfo`, `invoke`, `invoke2`, `makeGroup`, `removeVariable`, `setValue`, `setValue2`, `setValueActual`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.[IPHXSelfManager2](IPHXSelfManager2.md)
+`getValue2`, `setValue2`
+
+### Methods inherited from interface com.phoenix_int.aserver.[IPHXSelfManager](IPHXSelfManager.md)
+`getMethodDescriptors`, `getPropertyDescriptors`, `getValue`, `invoke`, `setValue`
+
+## Constructor Detail
+
+### PHXSimpleSelfManager2
+```java
+public PHXSimpleSelfManager2()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager3.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager3.md
new file mode 100644
index 0000000000..e525c19a9b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXSimpleSelfManager3.md
@@ -0,0 +1,104 @@
+# Class: PHXSimpleSelfManager3
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager2
+ ↳ com.phoenix_int.aserver.PHXSimpleSelfManager3
+```
+
+**Implemented Interfaces**
+- [`IPHXComponent`](IPHXComponent.md), com.phoenix_int.aserver.IPHXConnector, [`IPHXSelfManager`](IPHXSelfManager.md), [`IPHXSelfManager2`](IPHXSelfManager2.md), [`IPHXSelfManager3`](IPHXSelfManager3.md)
+
+**Declaration**
+```java
+public class PHXSimpleSelfManager3
+ extends PHXSimpleSelfManager2
+ implements IPHXSelfManager3, com.phoenix_int.aserver.IPHXConnector
+```
+
+This class implements most of the functionality of a self-managing component. It provides utility functions for storing variables, which are then served to ModelCenter Remote Execution automatically through the listProperties, getValue, and setValue functions. This iteration provides new functions for setValue and getValue capable of streaming large files and strings without loading them into memory via the [`PHXStringBuffer`](util/PHXStringBuffer.md) and [`PHXRawFile`](types/PHXRawFile.md) classes. The third iteration adds a function for getting info from the user on invoked methods to determine things like whether input values should be read in again.
+
+When extending this class, it may be worth investigating other interfaces to see which of them should also be implemented, such as:
+- [IPHXSetupFromFile](IPHXSetupFromFile.md)
+- IPHXFilteredWrapper
+- IPHXAthenaAnalysis
+- [IPHXHaltableComponent](IPHXHaltableComponent.md)
+- [IPHXSelfManager2](IPHXSelfManager2.md)
+- [IPHXMonitorable](../aserver/IPHXMonitorable.md)
+- IPHXTraceListener
+- IPHXTraceGenerator
+- ILazyLoadComponent
+- AutoCloseable
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXSimpleSelfManager3()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| com.phoenix_int.aserver.ascore.PHXConnection | `getConnection()`
Gets the connection object |
+| [`PHXRunShare`](PHXRunShare.md) | `getRunShare2()`
Return the run share object |
+| void | `setConnection(com.phoenix_int.aserver.ascore.PHXConnection c)`
Sets the connection object |
+| void | `setRunShare2(PHXRunShare rs)`
Sets the run share object |
+
+### Methods inherited from class com.phoenix_int.aserver.[PHXSimpleSelfManager](PHXSimpleSelfManager.md)
+`addMethod`, `addVariable`, `end`, `forceSetValue`, `getGroup`, `getGroup2`, `getMethodDescriptor`, `getMethodDescriptors`, `getPropertyDescriptors`, `getRootGroup`, `getValue`, `getValue2`, `getVariableFullName`, `getVariableInfo`, `invoke`, `invoke2`, `makeGroup`, `removeVariable`, `setValue`, `setValue2`, `setValueActual`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.[IPHXSelfManager3](IPHXSelfManager3.md)
+`invoke2`
+
+### Methods inherited from interface com.phoenix_int.aserver.[IPHXSelfManager2](IPHXSelfManager2.md)
+`getValue2`, `setValue2`
+
+### Methods inherited from interface com.phoenix_int.aserver.[IPHXSelfManager](IPHXSelfManager.md)
+`getMethodDescriptors`, `getPropertyDescriptors`, `getValue`, `invoke`, `setValue`
+
+## Constructor Detail
+
+### PHXSimpleSelfManager3
+```java
+public PHXSimpleSelfManager3()
+```
+
+## Method Detail
+
+### getRunShare2
+```java
+public PHXRunShare getRunShare2()
+```
+Return the run share object
+
+### setRunShare2
+```java
+public void setRunShare2(PHXRunShare rs)
+```
+Sets the run share object
+
+### setConnection
+```java
+public void setConnection(com.phoenix_int.aserver.ascore.PHXConnection c)
+```
+Sets the connection object
+
+**Specified by:**
+- `setConnection` in interface `com.phoenix_int.aserver.IPHXConnector`
+
+### getConnection
+```java
+public com.phoenix_int.aserver.ascore.PHXConnection getConnection()
+```
+Gets the connection object
+
+**Specified by:**
+- `getConnection` in interface `com.phoenix_int.aserver.IPHXConnector`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXVariableInfo.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXVariableInfo.md
new file mode 100644
index 0000000000..e56fea0440
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/PHXVariableInfo.md
@@ -0,0 +1,99 @@
+# Class: PHXVariableInfo
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXVariableInfo
+```
+
+**Declaration**
+```java
+public class PHXVariableInfo
+ extends java.lang.Object
+```
+
+This is a utility class for holding parsing information about a variable.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXVariableInfo()`
Creates an uninitialized object. |
+| `PHXVariableInfo(java.lang.String name, boolean input, java.lang.Object var)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getName()` |
+| `java.lang.String` | `getType()` |
+| `java.lang.Object` | `getVariable()` |
+| `void` | `initialize(java.lang.String name, boolean input, java.lang.Object var)`
Initializes the variable |
+| `boolean` | `isInput()` |
+| `void` | `setVariable(java.lang.Object var)` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXVariableInfo
+```java
+public PHXVariableInfo()
+```
+Creates an uninitialized object. Initialize must be called before any of the methods will work properly.
+
+### PHXVariableInfo
+```java
+public PHXVariableInfo(java.lang.String name, boolean input, java.lang.Object var)
+ throws PHXInvalidNameException
+```
+**Parameters:**
+- `name` - the name of the variable
+- `input` - true if the variable is an input, false if an output
+- `var` - the actual variable
+**Throws:**
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name contains invalid characters
+
+## Method Detail
+
+### initialize
+```java
+public void initialize(java.lang.String name, boolean input, java.lang.Object var)
+ throws PHXInvalidNameException
+```
+Initializes the variable
+**Parameters:**
+- `name` - the name of the variable
+- `input` - true if the variable is an input, false if an output
+- `var` - the actual variable
+
+**Throws:**
+- [`PHXInvalidNameException`](PHXInvalidNameException.md) - thrown if the name contains invalid characters
+
+### getName
+```java
+public java.lang.String getName()
+```
+
+### isInput
+```java
+public boolean isInput()
+```
+
+### getVariable
+```java
+public java.lang.Object getVariable()
+```
+
+### setVariable
+```java
+public void setVariable(java.lang.Object var)
+```
+
+### getType
+```java
+public java.lang.String getType()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/ProcessHaltedException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/ProcessHaltedException.md
new file mode 100644
index 0000000000..a30bde17d7
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/ProcessHaltedException.md
@@ -0,0 +1,31 @@
+# Class: ProcessHaltedException
+
+**Package:** `com.phoenix_int.aserver`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ java.io.IOException
+ ↳ com.phoenix_int.aserver.ProcessHaltedException
+```
+
+**Implemented Interfaces**
+- `java.io.Serializable`
+
+**Declaration**
+```java
+public class ProcessHaltedException
+ extends java.io.IOException
+```
+
+Exception indicating that the request cannot be handled because the associated process was halted.
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/IPHXAnalysisClientListener.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/IPHXAnalysisClientListener.md
new file mode 100644
index 0000000000..a0375aeedc
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/IPHXAnalysisClientListener.md
@@ -0,0 +1,44 @@
+# Interface: IPHXAnalysisClientListener
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+```
+↳ java.util.EventListener
+ ↳ com.phoenix_int.aserver.client.IPHXAnalysisClientListener
+```
+
+**Declaration**
+```java
+public interface IPHXAnalysisClientListener
+ extends java.util.EventListener
+```
+
+This interface is used by the [`PHXAnalysisClient`](PHXAnalysisClient.md) class. The `onResponse()` method is called each time a new response is received from the server.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `onException(PHXAnalysisClientExceptionEvent e)`
Called each time an exception occurs while reading from the connection to the ModelCenter Remote Execution. |
+| `void` | `onResponse(PHXAnalysisClientEvent e)`
Called each time a new response is received from the ModelCenter Remote Execution. |
+
+## Method Detail
+
+### onResponse
+```java
+void onResponse(PHXAnalysisClientEvent e)
+```
+Called each time a new response is received from ModelCenter Remote Execution.
+
+**Parameters:**
+- `e` - The event structure holding the response object and event id.
+
+### onException
+```java
+void onException(PHXAnalysisClientExceptionEvent e)
+```
+Called each time an exception occurs while reading from the connection to ModelCenter Remote Execution.
+
+**Parameters:**
+- `e` - The event structure holding the Exception object and event id.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClient.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClient.md
new file mode 100644
index 0000000000..3eba743903
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClient.md
@@ -0,0 +1,2258 @@
+# Class: PHXAnalysisClient
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.PHXAnalysisClient
+```
+
+**Declaration**
+```java
+@Deprecated
+public class PHXAnalysisClient
+ extends java.lang.Object
+```
+
+This class automates communications with ModelCenter Remote Execution. Communication can be performed asynchronously or synchronously. Synchronous communication is performed by calling any of the direct access functions, e.g. `start()` or `listProperties()`. Asynchronous communication is performed by calling a `sendXXXRequest()` function and then calling the matching `getXXXResponse()` when the response is ready. Listener methods are provided for notification of responses.
+
+Sample Usage:
+
+```java
+ // this code connects to the ModelCenter Remote Execution and performs serveral
+ // functions
+ String host = "phoenix-int.com";
+ try
+ {
+ PHXAnalysisClient client = new PHXAnalysisClient( host );
+
+ // list all the classes
+ String classes[] = client.listClasses( null );
+ System.out.println( classes.length + " classes found:" );
+ for ( int i = 0; i < classes.length; i++ )
+ {
+ System.out.println( " Class: " + classes[i] );
+
+ PHXComponentDescription d = client.describe( classes[i] );
+
+ System.out.println( " Author: " + d.getAuthor() );
+ System.out.println( " Version: " + d.getVersion() );
+ System.out.println( " HasIcon: " + d.getHasIcon() );
+ System.out.println( " Description: " + d.getDescription() );
+ }
+
+ // start up the block analysis
+ String msg = client.start( "Block", "b" );
+
+ // query for it's props
+ PHXPropertyDescriptor props[] = client.listProperties( "b" );
+ System.out.println( props.length + " properties found:" );
+ for ( int i = 0; i < props.length; i++ )
+ {
+ System.out.println( " Prop: " + props[i].getName() );
+ System.out.println( " type: " + props[i].getType() );
+ System.out.println( " canGet: " + props[i].getCanGet() );
+ System.out.println( " canSet: " + props[i].getCanSet() );
+ }
+
+ // perform a bunch of operations
+ client.set( "b.height", Double.toString( 3.141593 ) );
+ for ( int i = 0; i < 10; i++ )
+ {
+ msg = client.set( "b.width", Integer.toString( i ) );
+ msg = client.execute( "b" );
+
+ System.out.println( "when width = " + client.get( "b.width" ) +
+ ", area = " + client.get( "b.area" ) );
+ }
+
+ // end the analysis
+ client.end( "b" );
+
+ client.close();
+ }
+ catch ( Exception e )
+ {
+ System.out.println( e );
+ }
+
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static int` | `ADD_PROXY_CLIENTS_REQUEST`
Deprecated. |
+| `static int` | `ARBITRARY_REQUEST`
Deprecated. |
+| `static int` | `DELETE_RUN_SHARE_REQUEST`
Deprecated. |
+| `static int` | `DESCRIBE_REQUEST`
Deprecated. |
+| `static int` | `END_REQUEST`
Deprecated. |
+| `static int` | `EXECUTE_REQUEST`
Deprecated. |
+| `static int` | `GET_BY_URL_REQUEST`
Deprecated. |
+| `static int` | `GET_HIERARCHY_REQUEST`
Deprecated. |
+| `static int` | `GET_ICON_REQUEST`
Deprecated. |
+| `static int` | `GET_REQUEST`
Deprecated. |
+| `static int` | `HISTORY_REQUEST`
Deprecated. |
+| `static int` | `INVOKE_REQUEST`
Deprecated. |
+| `static int` | `LIST_ARRAY_VALUES_REQUEST`
Deprecated. |
+| `static int` | `LIST_CATEGORIES_REQUEST`
Deprecated. |
+| `static int` | `LIST_CLASSES_REQUEST`
Deprecated. |
+| `static int` | `LIST_METHODS_REQUEST`
Deprecated. |
+| `static int` | `LIST_PROPERTIES_REQUEST`
Deprecated. |
+| `static int` | `LIST_REQUEST`
Deprecated. |
+| `static int` | `LIST_VALUES_REQUEST`
Deprecated. |
+| `static int` | `LIST_VALUES_URL_REQUEST`
Deprecated. |
+| `static int` | `SET_BY_URL_REQUEST`
Deprecated. |
+| `static int` | `SET_DICTIONARY_REQUEST`
Deprecated. |
+| `static int` | `SET_HIERARCHY_REQUEST`
Deprecated. |
+| `static int` | `SET_REQUEST`
Deprecated. |
+| `static int` | `START_REQUEST`
Deprecated. |
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXAnalysisClient()`
Deprecated. |
+| `PHXAnalysisClient(java.lang.String host)`
Deprecated. Creates a client to the ModelCenter Remote Execution and connects it to the specified host. |
+| `PHXAnalysisClient(java.lang.String host, int port)`
Deprecated. Creates a client to the MCRE and connects it to the specified host. |
+| `PHXAnalysisClient(java.lang.String host, int port, int timeout)`
Deprecated. Creates a client to the MCRE and connects it to the specified host. |
+| `PHXAnalysisClient(java.lang.String host, int timeout, java.lang.String username, java.lang.String password)`
Deprecated. Creates a client to the MCRE and connects it to the specified host. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addListener(IPHXAnalysisClientListener l)`
Deprecated. Adds a listener. |
+| `java.lang.String` | `addProxyClients(java.lang.String clients)`
Deprecated. Tells the server to add other hosts as part of the proxy chain. |
+| `void` | `close()`
Deprecated. Closes the connection to the server. |
+| `void` | `connect(java.lang.String host)`
Deprecated. Connects to the MCRE on the specified host. |
+| `void` | `connect(java.lang.String host, int port)`
Deprecated. Connects to the MCRE on the specified host. |
+| `void` | `connect(java.lang.String host, int port, boolean useSSL)`
Deprecated. Connects to the MCRE on the specified host. |
+| `void` | `connect(java.lang.String host, int port, boolean useSSL, int timeout)`
Deprecated. Connects to the MCRE on the specified host. |
+| `void` | `connect(java.lang.String host, int port, boolean useSSL, int timeout, java.lang.String username, java.lang.String password)`
Deprecated. Connects to the MCRE on the specified host. |
+| `void` | `connectExternal(java.lang.String host, int timeout, java.lang.String username, java.lang.String password)`
Deprecated. Connects to the MCRE via external tool. |
+| `void` | `connectLocal(java.lang.String userName, java.lang.String password)`
Deprecated. Makes a virtual connection to the ModelCenter Remote Execution inside of this process. |
+| `void` | `connectLocal(java.lang.String userName, java.lang.String password, java.util.Map initialProps)`
Deprecated. Makes a virtual connection to the MCRE inside of this process. |
+| `void` | `connectProcess(java.lang.String userName, java.lang.String password, java.lang.String asRoot, java.lang.String asConfig)`
Deprecated. Makes a virtual connection to the MCRE by calling a new java process. |
+| `void` | `connectURL(java.lang.String url)`
Deprecated. Connects to the MCRE using the specified URL, such as mcre://hostname. |
+| `void` | `connectURL(java.lang.String url, int timeout, java.lang.String user, java.lang.String password)`
Deprecated. Connects to the ModelCenter Remote Execution using the specified URL, such as mcre://hostname. |
+| `java.lang.String` | `deleteRunShare(java.lang.Long key)`
Deprecated. Handle cleaning up a runShare in a local client. |
+| `PHXComponentDescription` | `describe(java.lang.String analysis)`
Deprecated. Describes an analysis. |
+| `java.lang.String` | `end(java.lang.String analysis)`
Deprecated. Ends an analysis. |
+| `java.lang.String` | `execute(java.lang.String analysis)`
Deprecated. Executes an analysis. |
+| `protected void` | `finalize()`
Deprecated. |
+| `java.lang.String` | `get(java.lang.String property)`
Deprecated. Get the value of a property. |
+| `PHXStringBuffer` | `get2(java.lang.String property)`
Deprecated. Get the value of a property. |
+| `java.lang.String` | `getAddProxyClientsResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXStringBuffer` | `getByUrl(java.lang.String propertyName, java.lang.String url)`
Deprecated. Get the value of a property. |
+| `PHXComponentBranch` | `getComponentHistory(java.lang.String analysis)`
Deprecated. Gets the component history for a particular component. |
+| `java.lang.String` | `getDeleteRunShareResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXComponentDescription` | `getDescribeResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getEndResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getExecuteResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXStringBuffer` | `getGetByUrlResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXComponentBranch` | `getGetComponentHistoryResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXStringBuffer` | `getGetHierarchyResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXIcon` | `getGetIconResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getGetResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXStringBuffer` | `getGetResponse2(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXStringBuffer` | `getHierarchy(java.lang.String analysis)`
Deprecated. Retrieve the hierarchy for the component. |
+| `java.lang.String` | `getHostName()`
Deprecated. Retrieves the host name of the server. |
+| `PHXIcon` | `getIcon(java.lang.String analysis)`
Deprecated. Retrieves an icon for an analysis. |
+| `java.lang.String` | `getInvokeResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String[]` | `getListArrayValuesResponse(java.lang.String id, boolean wait)`
Deprecated. |
+| `java.lang.String[]` | `getListCategoriesResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String[]` | `getListClassesResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXMethodDescriptor[]` | `getListMethodsResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXPropertyDescriptor[]` | `getListPropertiesResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String[]` | `getListResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `PHXPropertyValue[]` | `getListValuesResponse(java.lang.String id, boolean wait)`
Deprecated. |
+| `PHXStringBuffer` | `getResponseAsPHXStringBuffer(java.lang.String id, int type, boolean wait)`
Deprecated. Retrieves a low-level response from the server in String format. |
+| `java.lang.String` | `getResponseAsText(java.lang.String id, int type, boolean wait)`
Deprecated. Retrieves a low-level response from the server in String format. |
+| `PHXStringBuffer` | `getSetByUrlResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getSetDictionaryResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getSetHierarchyResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getSetResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `java.lang.String` | `getStartResponse(java.lang.String id, boolean wait)`
Deprecated. Retrieves a response from the server. |
+| `static void` | `handleLogin(java.io.InputStream in, java.io.OutputStream out, java.lang.String username, java.lang.String password)`
Deprecated. |
+| `java.lang.String` | `invoke(java.lang.String method)`
Deprecated. Invokes a method. |
+| `boolean` | `isConnected()`
Deprecated. Determines if the client is currently connected to a server. |
+| `boolean` | `isResponseReady(java.lang.String id)`
Deprecated. Indicates whether a response is ready. |
+| `java.lang.String[]` | `list()`
Deprecated. Lists the running objects. |
+| `java.lang.String[]` | `listArrayValues(java.lang.String analysis)`
Deprecated. |
+| `java.lang.String[]` | `listCategories(java.lang.String category)`
Deprecated. Lists the categories within a category. |
+| `java.lang.String[]` | `listClasses(java.lang.String category)`
Deprecated. Lists the classes within a category. |
+| `PHXMethodDescriptor[]` | `listMethods(java.lang.String analysis)`
Deprecated. Lists the methods of an analysis. |
+| `PHXPropertyDescriptor[]` | `listProperties(java.lang.String analysis)`
Deprecated. Lists the properties of an analysis. |
+| `PHXPropertyValue[]` | `listValues(java.lang.String analysis)`
Deprecated. |
+| `static void` | `main(java.lang.String[] args)`
Deprecated. |
+| `void` | `removeListener(IPHXAnalysisClientListener l)`
Deprecated. Removes a listener. |
+| `java.lang.String` | `sendAddProxyClientsRequest(java.lang.String clients)`
Deprecated. Tells the server to add other hosts as part of the proxy chain. |
+| `java.lang.String` | `sendArbitraryRequest(PHXStringBuffer request)`
Deprecated. Sends an arbitrary request to the server. |
+| `java.lang.String` | `sendArbitraryRequest(java.lang.String request)`
Deprecated. Sends an arbitrary request to the server. |
+| `java.lang.String` | `sendDeleteRunShareRequest(java.lang.Long key)`
Deprecated. Sends a request to delete a runShare. |
+| `java.lang.String` | `sendDescribeRequest(java.lang.String analysis)`
Deprecated. Sends a request to describe an analysis. |
+| `java.lang.String` | `sendEndRequest(java.lang.String analysis)`
Deprecated. Sends a request to end an analysis. |
+| `java.lang.String` | `sendExecuteRequest(java.lang.String analysis)`
Deprecated. Sends a request to execute an analysis. |
+| `java.lang.String` | `sendGetByUrlRequest(java.lang.String propertyName, java.lang.String url)`
Deprecated. Sends a request to get the value of a property. |
+| `java.lang.String` | `sendGetComponentHistoryRequest(java.lang.String analysis)`
Deprecated. Sends a request to get the version history of a component. |
+| `java.lang.String` | `sendGetHierarchyRequest(java.lang.String analysis)`
Deprecated. Sends a request to retrieve a hierarchy for a component. |
+| `java.lang.String` | `sendGetHierarchyRequest(java.lang.String analysis, com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode)`
Deprecated. Sends a request to retrieve a hierarchy for a component. |
+| `java.lang.String` | `sendGetIconRequest(java.lang.String analysis)`
Deprecated. Sends a request to retrieve an icon. |
+| `java.lang.String` | `sendGetRequest(java.lang.String property)`
Deprecated. Sends a request to get the value of a property. |
+| `java.lang.String` | `sendInvokeRequest(java.lang.String method)`
Deprecated. Sends a request to invoke a method. |
+| `java.lang.String` | `sendListArrayValuesRequest(java.lang.String analysis)`
Deprecated. |
+| `java.lang.String` | `sendListCategoriesRequest(java.lang.String category)`
Deprecated. Sends a request to list the categories. |
+| `java.lang.String` | `sendListClassesRequest(java.lang.String category)`
Deprecated. Sends a request to list the classes. |
+| `java.lang.String` | `sendListMethodsRequest(java.lang.String analysis)`
Deprecated. Sends a request to list the methods of an analysis. |
+| `java.lang.String` | `sendListPropertiesRequest(java.lang.String analysis)`
Deprecated. Sends a request to list the properties of an analysis. |
+| `java.lang.String` | `sendListRequest()`
Deprecated. Sends a request to list the running objects. |
+| `java.lang.String` | `sendListValuesRequest(java.lang.String analysis)`
Deprecated. |
+| `java.lang.String` | `sendListValuesURLRequest(java.lang.String analysis)`
Deprecated. |
+| `java.lang.String` | `sendSetByUrlRequest(java.lang.String varName, java.lang.String url)`
Deprecated. Sends a request to get the value of a property. |
+| `java.lang.String` | `sendSetDictionaryRequest(java.lang.String dictionary)`
Deprecated. Sends a request to set a dictionary. |
+| `java.lang.String` | `sendSetHierarchyRequest(java.lang.String analysis, PHXStringBuffer xml)`
Deprecated. Sends a request to set a hierarchy for a component. |
+| `java.lang.String` | `sendSetRequest(java.lang.String property, java.lang.Object value)`
Deprecated. Sends a request to set the value of a property. |
+| `java.lang.String` | `sendStartRequest(java.lang.String analysis, java.lang.String instanceName)`
Deprecated. Sends a request to start an analysis. |
+| `java.lang.String` | `set(java.lang.String property, java.lang.Object value)`
Deprecated. Set the value of a property. |
+| `void` | `setByUrl(java.lang.String varName, java.lang.String url)`
Deprecated. Set the value of a variable. |
+| `void` | `setDeleteDFT(boolean delete)`
Deprecated. Set whether the analysis client should auto-delete Direct File Transfer run shares or not. |
+| `java.lang.String` | `setDictionary(java.lang.String dictionary)`
Deprecated. Tries to set the dictionary by sending a set dictionary request. |
+| `java.lang.String` | `setHierarchy(java.lang.String analysis, PHXStringBuffer xml)`
Deprecated. Sends a request to set a hierarchy for a component. |
+| `java.lang.String` | `start(java.lang.String analysis, java.lang.String instanceName)`
Deprecated. Starts an analysis. |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### START_REQUEST
+```
+public static final int START_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### END_REQUEST
+```
+public static final int END_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### GET_REQUEST
+```
+public static final int GET_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### SET_REQUEST
+```
+public static final int SET_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_REQUEST
+```
+public static final int LIST_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_CLASSES_REQUEST
+```
+public static final int LIST_CLASSES_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_PROPERTIES_REQUEST
+```
+public static final int LIST_PROPERTIES_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_CATEGORIES_REQUEST
+```
+public static final int LIST_CATEGORIES_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### EXECUTE_REQUEST
+```
+public static final int EXECUTE_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### DESCRIBE_REQUEST
+```
+public static final int DESCRIBE_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### GET_ICON_REQUEST
+```
+public static final int GET_ICON_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_VALUES_REQUEST
+```
+public static final int LIST_VALUES_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_ARRAY_VALUES_REQUEST
+```
+public static final int LIST_ARRAY_VALUES_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_METHODS_REQUEST
+```
+public static final int LIST_METHODS_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### INVOKE_REQUEST
+```
+public static final int INVOKE_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### ADD_PROXY_CLIENTS_REQUEST
+```
+public static final int ADD_PROXY_CLIENTS_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### HISTORY_REQUEST
+```
+public static final int HISTORY_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### GET_BY_URL_REQUEST
+```
+public static final int GET_BY_URL_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### GET_HIERARCHY_REQUEST
+```
+public static final int GET_HIERARCHY_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### SET_HIERARCHY_REQUEST
+```
+public static final int SET_HIERARCHY_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### DELETE_RUN_SHARE_REQUEST
+```
+public static final int DELETE_RUN_SHARE_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### SET_DICTIONARY_REQUEST
+```
+public static final int SET_DICTIONARY_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### SET_BY_URL_REQUEST
+```
+public static final int SET_BY_URL_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### ARBITRARY_REQUEST
+```
+public static final int ARBITRARY_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+### LIST_VALUES_URL_REQUEST
+```
+public static final int LIST_VALUES_URL_REQUEST
+```
+Deprecated.
+
+**See Also:**
+- Constant Field Values
+
+## Constructor Detail
+
+### PHXAnalysisClient
+```
+public PHXAnalysisClient()
+```
+Deprecated.
+
+### PHXAnalysisClient
+```
+public PHXAnalysisClient(java.lang.String host)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+**Parameters:**
+- host - the MCRE host to connect to, or the full URL style host specification (`mcre://hostname:port`)
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### PHXAnalysisClient
+```
+public PHXAnalysisClient(java.lang.String host,
+ int port)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+**Parameters:**
+- host - the MCRE host to connect to
+- port - the port to use for the MCRE (default is 1835)
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### PHXAnalysisClient
+```
+public PHXAnalysisClient(java.lang.String host,
+ int port,
+ int timeout)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+**Parameters:**
+- host - the MCRE host to connect to
+- port - the port to use for the MCRE (default is 1835)
+- timeout - the number of seconds to wait during the connect
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### PHXAnalysisClient
+```
+public PHXAnalysisClient(java.lang.String host,
+ int timeout,
+ java.lang.String username,
+ java.lang.String password)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+**Parameters:**
+- host - the MCRE host to connect to
+- timeout - the number of seconds to wait during the connect
+- username
+- password
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+## Method Detail
+
+### connect
+```
+public void connect(java.lang.String host)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+connects to MCRE on the specified host
+
+**Parameters:**
+- host - MCRE host to connect to, or the full URL style host specification (`mcre://hostname:port`)
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### connectURL
+```
+public void connectURL(java.lang.String url)
+ throws java.io.IOException,
+ java.net.UnknownHostException,
+ java.net.URISyntaxException
+```
+Deprecated.
+
+connects to MCRE using the specified URL, such as `mcre://hostname`.
+
+**Parameters:**
+- url - MCRE URL style host specification (`mcre://hostname:port`). May include path part, which will be ignored.
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+- `java.net.URISyntaxException`
+
+### connectURL
+```
+public void connectURL(java.lang.String url,
+ int timeout,
+ java.lang.String user,
+ java.lang.String password)
+ throws java.io.IOException,
+ java.net.UnknownHostException,
+ java.net.URISyntaxException
+```
+Deprecated.
+
+connects to ModelCenter Remote Execution using the specified URL, such as `mcre://hostname`. Note that if you are using mcre+local style connections, you must have previously instantiated MCRE Engine as described in `connectLocal()`.
+
+**Parameters:**
+- url - MCRE URL style host specification (`mcre://hostname:port`). May include path part, which will be ignored.
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+- `java.net.URISyntaxException`
+
+### connectLocal
+```
+public void connectLocal(java.lang.String userName,
+ java.lang.String password)
+ throws java.io.IOException
+```
+Deprecated.
+
+Makes a virtual connection to ModelCenter Remote Execution inside of this process. MCRE must have been previously instantiated using this method:
+```
+ PHXAnalysisServer.doInitialization(
+ new String[] {"-aee", "-noSManager",
+ "-base", "c:\\users\\nsharp\\vers\\MCAS\\ASERVER\\install"});
+```
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+
+### connectLocal
+```
+public void connectLocal(java.lang.String userName,
+ java.lang.String password,
+ java.util.Map initialProps)
+ throws java.io.IOException
+```
+Deprecated.
+
+Makes a virtual connection to MCRE inside of this process. MCRE must have been previously instantiated using this method:
+```
+ PHXAnalysisServer.doInitialization(
+ new String[] {"-aee", "-noSManager",
+ "-base", "c:\\users\\nsharp\\vers\\MCAS\\ASERVER\\install"});
+```
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+
+### connectProcess
+```
+public void connectProcess(java.lang.String userName,
+ java.lang.String password,
+ java.lang.String asRoot,
+ java.lang.String asConfig)
+ throws java.io.IOException
+```
+Deprecated.
+
+Makes a virtual connection to MCRE by calling a new java process. MCRE must have been previously instantiated using this method:
+```
+ PHXAnalysisServer.doInitialization(
+ new String[] {"-aee", "-noSManager",
+ "-base", "c:\\users\\nsharp\\vers\\MCAS\\ASERVER\\install"});
+```
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+
+### connect
+```
+public void connect(java.lang.String host,
+ int port)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+connects to MCRE on the specified host
+
+**Parameters:**
+- host - MCRE host to connect to
+- port - the port to use for MCRE (default is 1835)
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### connect
+```
+public void connect(java.lang.String host,
+ int port,
+ boolean useSSL)
+ throws java.io.IOException, java.net.UnknownHostException
+```
+Deprecated.
+
+connects to MCRE on the specified host
+
+**Parameters:**
+- host - MCRE host to connect to
+- port - the port to use for MCRE (default is 1835)
+- useSSL - Whether to connect using SSL
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### connectExternal
+```
+public void connectExternal(java.lang.String host,
+ int timeout,
+ java.lang.String username,
+ java.lang.String password)
+ throws java.io.IOException
+```
+Deprecated.
+
+connects to MCRE via external tool
+
+**Parameters:**
+- host - MCRE host to connect to
+- timeout - the number of seconds to wait during the connect
+- username - the username to use in the external tool
+- password - the password to use in the external tool
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### connect
+```
+public void connect(java.lang.String host,
+ int port,
+ boolean useSSL,
+ int timeout)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+connects to MCRE on the specified host
+
+**Parameters:**
+- host - MCRE host to connect to
+- port - the port to use for MCRE (default is 1835)
+- useSSL - Whether to connect using SSL
+- timeout - the number of seconds to wait during the connect
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### connect
+```
+public void connect(java.lang.String host,
+ int port,
+ boolean useSSL,
+ int timeout,
+ java.lang.String username,
+ java.lang.String password)
+ throws java.io.IOException,
+ java.net.UnknownHostException
+```
+Deprecated.
+
+connects to MCRE on the specified host
+
+**Parameters:**
+- host - MCRE host to connect to
+- port - the port to use for MCRE (default is 1835)
+- useSSL - Whether to connect using SSL
+- timeout - the number of seconds to wait during the connect
+- username - the username for authentication
+- password - the password for authentication
+
+**Throws:**
+- `java.io.IOException` - thrown if a connection cannot be established
+- `java.net.UnknownHostException` - thrown if the host does not match a valid host
+
+### handleLogin
+```
+public static void handleLogin(java.io.InputStream in,
+ java.io.OutputStream out,
+ java.lang.String username,
+ java.lang.String password)
+ throws java.io.IOException
+```
+Deprecated.
+
+**Throws:**
+- `java.io.IOException`
+
+### isConnected
+```
+public boolean isConnected()
+```
+Deprecated.
+
+determines if the client is currently connected to a server
+
+**Returns:**
+- true if currently connected
+
+### setDeleteDFT
+```
+public void setDeleteDFT(boolean delete)
+```
+Deprecated.
+
+Set whether the analysis client should auto-delete Direct File Transfer run shares or not
+
+### getHostName
+```
+public java.lang.String getHostName()
+```
+Deprecated.
+
+retrieves the host name of the server
+
+**Returns:**
+- the host name, or "not connected" if not currently connected to the server
+
+### close
+```
+public void close()
+```
+Deprecated.
+
+closes the connection to the server
+
+### finalize
+```
+protected void finalize()
+ throws java.lang.Throwable
+```
+Deprecated.
+
+Overrides:
+- finalize in class `java.lang.Object`
+
+**Throws:**
+- `java.lang.Throwable`
+
+### addListener
+```
+public void addListener(IPHXAnalysisClientListener l)
+```
+Deprecated.
+
+adds a listener
+
+**Parameters:**
+- l - the listener
+
+### removeListener
+```
+public void removeListener(IPHXAnalysisClientListener l)
+```
+Deprecated.
+
+removes a listener
+
+**Parameters:**
+- l - the listener
+
+### isResponseReady
+```
+public boolean isResponseReady(java.lang.String id)
+```
+Deprecated.
+
+indicates whether a response is ready
+
+**Parameters:**
+- id - the id of the response
+
+**Returns:**
+- true if the response is ready
+
+### sendStartRequest
+```
+public java.lang.String sendStartRequest(java.lang.String analysis,
+ java.lang.String instanceName)
+```
+Deprecated.
+
+sends a request to start an analysis
+
+**Parameters:**
+- analysis - the analysis to start
+- instanceName - the name for the analysis
+
+**Returns:**
+- the id for the response
+
+### getStartResponse
+```
+public java.lang.String getStartResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### start
+```
+public java.lang.String start(java.lang.String analysis,
+ java.lang.String instanceName)
+ throws PHXServerSideException
+```
+Deprecated.
+
+starts an analysis
+
+**Parameters:**
+- analysis - the snalyais to start
+- instanceName - the name for the analysis
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendEndRequest
+```
+public java.lang.String sendEndRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to end an analysis
+
+**Parameters:**
+- analysis - the analysis to start
+
+**Returns:**
+- the id for the response
+
+### getEndResponse
+```
+public java.lang.String getEndResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### end
+```
+public java.lang.String end(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+ends an analysis
+
+**Parameters:**
+- analysis - the snalyais to end
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendListClassesRequest
+```
+public java.lang.String sendListClassesRequest(java.lang.String category)
+```
+Deprecated.
+
+sends a request to list the classes
+
+**Parameters:**
+- category - the category to search. If null, then the root category is searched
+
+**Returns:**
+- the id for the response
+
+### getListClassesResponse
+```
+public java.lang.String[] getListClassesResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an array of classes
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### listClasses
+```
+public java.lang.String[] listClasses(java.lang.String category)
+ throws PHXServerSideException
+```
+Deprecated.
+
+lists the classes within a category
+
+**Parameters:**
+- category - the category to search. If null, then the root category is searched
+
+**Returns:**
+- an array of classes
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendExecuteRequest
+```
+public java.lang.String sendExecuteRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to execute an analysis
+
+**Parameters:**
+- analysis - the analysis to execute
+
+**Returns:**
+- the id for the response
+
+### getExecuteResponse
+```
+public java.lang.String getExecuteResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### execute
+```
+public java.lang.String execute(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+exectutes an analysis
+
+**Parameters:**
+- analysis - the analyais to start
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendAddProxyClientsRequest
+```
+public java.lang.String sendAddProxyClientsRequest(java.lang.String clients)
+```
+Deprecated.
+
+Tells the server to add other hosts as part of the proxy chain
+
+**Parameters:**
+- clients - The comma separated list of hosts
+
+**Returns:**
+- the id for the response
+
+### getAddProxyClientsResponse
+```
+public java.lang.String getAddProxyClientsResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### addProxyClients
+```
+public java.lang.String addProxyClients(java.lang.String clients)
+ throws PHXServerSideException
+```
+Deprecated.
+
+Tells the server to add other hosts as part of the proxy chain
+
+**Parameters:**
+- clients - The comma separated list of hosts
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendGetRequest
+```
+public java.lang.String sendGetRequest(java.lang.String property)
+```
+Deprecated.
+
+sends a request to get the value of a property
+
+**Parameters:**
+- property - the property to retrieve a value for
+
+**Returns:**
+- the id for the response
+
+### getGetResponse
+```
+public java.lang.String getGetResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getGetResponse2
+```
+public PHXStringBuffer getGetResponse2(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### get
+```
+public java.lang.String get(java.lang.String property)
+ throws PHXServerSideException
+```
+Deprecated.
+
+get the value of a property
+
+**Parameters:**
+- property - the property to retrieve a value for
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### get2
+```
+public PHXStringBuffer get2(java.lang.String property)
+ throws PHXServerSideException
+```
+Deprecated.
+
+get the value of a property
+
+**Parameters:**
+- property - the property to retrieve a value for
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### sendGetByUrlRequest
+```
+public java.lang.String sendGetByUrlRequest(java.lang.String propertyName,
+ java.lang.String url)
+```
+Deprecated.
+
+sends a request to get the value of a property
+
+**Parameters:**
+- url - The url requested
+
+**Returns:**
+- the id for the response
+
+### getGetByUrlResponse
+```
+public PHXStringBuffer getGetByUrlResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getByUrl
+```
+public PHXStringBuffer getByUrl(java.lang.String propertyName,
+ java.lang.String url)
+ throws PHXServerSideException
+```
+Deprecated.
+
+get the value of a property
+
+**Parameters:**
+- url - the url to get the file contents of
+
+**Returns:**
+- the contents of the file
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### sendSetByUrlRequest
+```
+public java.lang.String sendSetByUrlRequest(java.lang.String varName,
+ java.lang.String url)
+```
+Deprecated.
+
+sends a request to get the value of a property
+
+**Parameters:**
+- url - The url requested
+
+**Returns:**
+- the id for the response
+
+### getSetByUrlResponse
+```
+public PHXStringBuffer getSetByUrlResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### setByUrl
+```
+public void setByUrl(java.lang.String varName,
+ java.lang.String url)
+ throws PHXServerSideException
+```
+Deprecated.
+
+set the value of a variable
+
+**Parameters:**
+- varName - the variable to set
+- url - the url to set the variable at
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendSetRequest
+```
+public java.lang.String sendSetRequest(java.lang.String property,
+ java.lang.Object value)
+```
+Deprecated.
+
+sends a request to set the value of a property
+
+**Parameters:**
+- property - the property to retrieve a value for
+
+**Returns:**
+- the id for the response
+
+### getSetResponse
+```
+public java.lang.String getSetResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### set
+```
+public java.lang.String set(java.lang.String property,
+ java.lang.Object value)
+ throws PHXServerSideException
+```
+Deprecated.
+
+set the value of a property
+
+**Parameters:**
+- property - the property to retrieve a value for
+- value - the value of the property
+
+**Returns:**
+- the response from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### sendGetComponentHistoryRequest
+```
+public java.lang.String sendGetComponentHistoryRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to get the version history of a component
+
+**Parameters:**
+- analysis - the analysis to query
+
+**Returns:**
+- the id for the response
+
+### getGetComponentHistoryResponse
+```
+public PHXComponentBranch getGetComponentHistoryResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- a description object for the analysis
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getComponentHistory
+```
+public PHXComponentBranch getComponentHistory(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+Gets the component history for a particular component.
+
+**Parameters:**
+- analysis - The full path to the component
+
+**Returns:**
+- The top level branch object which represents the main development branch.
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the server reports any problems.
+
+### sendDescribeRequest
+```
+public java.lang.String sendDescribeRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to describe an analysis
+
+**Parameters:**
+- analysis - the analysis to start
+
+**Returns:**
+- the id for the response
+
+### getDescribeResponse
+```
+public PHXComponentDescription getDescribeResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- a description object for the analysis
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### describe
+```
+public PHXComponentDescription describe(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+describes an analysis
+
+**Parameters:**
+- analysis - the full path to the component
+
+**Returns:**
+- a description object
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendListPropertiesRequest
+```
+public java.lang.String sendListPropertiesRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to list the properties of an analysis
+
+**Parameters:**
+- analysis - the analysis to query
+
+**Returns:**
+- the id for the response
+
+### getListPropertiesResponse
+```
+public PHXPropertyDescriptor[] getListPropertiesResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- a property descriptor object for the analysis
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### listProperties
+```
+public PHXPropertyDescriptor[] listProperties(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+lists the properties of an analysis
+
+**Parameters:**
+- analysis - the analyais to list properties for
+
+**Returns:**
+- a property descriptor for the object
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendListMethodsRequest
+```
+public java.lang.String sendListMethodsRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to list the methods of an analysis
+
+**Parameters:**
+- analysis - the analysis to query
+
+**Returns:**
+- the id for the response
+
+### getListMethodsResponse
+```
+public PHXMethodDescriptor[] getListMethodsResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- a property descriptor object for the analysis
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### listMethods
+```
+public PHXMethodDescriptor[] listMethods(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+lists the methods of an analysis
+
+**Parameters:**
+- analysis - the analyais to list methods for
+
+**Returns:**
+- an array of method descriptors for the object
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendInvokeRequest
+```
+public java.lang.String sendInvokeRequest(java.lang.String method)
+```
+Deprecated.
+
+sends a request to invoke a method
+
+**Parameters:**
+- method - the method to invoke
+
+**Returns:**
+- the id for the response
+
+### getInvokeResponse
+```
+public java.lang.String getInvokeResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### invoke
+```
+public java.lang.String invoke(java.lang.String method)
+ throws PHXServerSideException
+```
+Deprecated.
+
+invokes a method
+
+**Parameters:**
+- method - the method to invoke
+
+**Returns:**
+- the results of the invocation
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendListValuesRequest
+```
+public java.lang.String sendListValuesRequest(java.lang.String analysis)
+```
+Deprecated.
+
+### sendListValuesURLRequest
+```
+public java.lang.String sendListValuesURLRequest(java.lang.String analysis)
+```
+Deprecated.
+
+### getListValuesResponse
+```
+public PHXPropertyValue[] getListValuesResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException,
+ java.io.IOException,
+ java.lang.NumberFormatException
+```
+Deprecated.
+
+**Throws:**
+- `PHXResponseTypeMismatchException`
+- `PHXNoSuchResponseException`
+- `PHXServerSideException`
+- `java.io.IOException`
+- `java.lang.NumberFormatException`
+
+### listValues
+```
+public PHXPropertyValue[] listValues(java.lang.String analysis)
+ throws PHXServerSideException,
+ java.io.IOException
+```
+Deprecated.
+
+**Throws:**
+- `PHXServerSideException`
+- `java.io.IOException`
+
+### sendListArrayValuesRequest
+```
+public java.lang.String sendListArrayValuesRequest(java.lang.String analysis)
+```
+Deprecated.
+
+### getListArrayValuesResponse
+```
+public java.lang.String[] getListArrayValuesResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException
+```
+Deprecated.
+
+**Throws:**
+- `PHXResponseTypeMismatchException`
+- `PHXNoSuchResponseException`
+
+### listArrayValues
+```
+public java.lang.String[] listArrayValues(java.lang.String analysis)
+ throws PHXServerSideException,
+ java.io.IOException
+```
+Deprecated.
+
+**Throws:**
+- []`PHXServerSideException`](PHXServerSideException.md)
+- `java.io.IOException`
+
+### sendListCategoriesRequest
+```
+public java.lang.String sendListCategoriesRequest(java.lang.String category)
+```
+Deprecated.
+
+sends a request to list the categories
+
+**Parameters:**
+- category - the category to search. If null, then the root category is searched
+
+**Returns:**
+- the id for the response
+
+### getListCategoriesResponse
+```
+public java.lang.String[] getListCategoriesResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an array of categories
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### listCategories
+```
+public java.lang.String[] listCategories(java.lang.String category)
+ throws PHXServerSideException
+```
+Deprecated.
+
+lists the categories within a category
+
+**Parameters:**
+- category - the category to search. If null, then the root category is searched
+
+**Returns:**
+- an array of categories
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendListRequest
+```
+public java.lang.String sendListRequest()
+```
+Deprecated.
+
+sends a request to list the running objects
+
+**Returns:**
+- the id for the response
+
+### getListResponse
+```
+public java.lang.String[] getListResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an array of objects
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### list
+```
+public java.lang.String[] list()
+ throws PHXServerSideException
+```
+Deprecated.
+
+lists the running objects
+
+**Returns:**
+- an array of objects
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendGetHierarchyRequest
+```
+public java.lang.String sendGetHierarchyRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to retrieve a hierarchy for a component
+
+**Parameters:**
+- analysis - the analysis class to retrieve the icon for
+
+**Returns:**
+- the id for the response
+
+### sendGetHierarchyRequest
+```
+public java.lang.String sendGetHierarchyRequest(java.lang.String analysis,
+ com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode)
+```
+Deprecated.
+
+sends a request to retrieve a hierarchy for a component
+
+**Parameters:**
+- analysis - the analysis class to retrieve the icon for
+- fileMode - how to retrieve files
+
+**Returns:**
+- the id for the response
+
+### getGetHierarchyResponse
+```
+public PHXStringBuffer getGetHierarchyResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an icon Image
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getHierarchy
+```
+public PHXStringBuffer getHierarchy(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+retrievethe hierarchy for the component
+
+**Parameters:**
+- analysis - the analysis class to retrieve the icon for
+
+**Returns:**
+- the string buffer containing the hierarchy
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendSetHierarchyRequest
+```
+public java.lang.String sendSetHierarchyRequest(java.lang.String analysis,
+ PHXStringBuffer xml)
+```
+Deprecated.
+
+Sends a request to set a hierarchy for a component
+
+**Parameters:**
+- analysis - the analysis object or parameter name to set data into
+- xml - The XML data structure containing the data to be set.
+
+**Returns:**
+- the id for the response
+
+### getSetHierarchyResponse
+```
+public java.lang.String getSetHierarchyResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the result from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### setHierarchy
+```
+public java.lang.String setHierarchy(java.lang.String analysis,
+ PHXStringBuffer xml)
+ throws PHXServerSideException
+```
+Deprecated.
+
+Sends a request to set a hierarchy for a component
+
+**Parameters:**
+- analysis - the analysis object or parameter name to set data into
+- xml - The XML data structure containing the data to be set.
+
+**Returns:**
+- the result from the server
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendDeleteRunShareRequest
+```
+public java.lang.String sendDeleteRunShareRequest(java.lang.Long key)
+```
+Deprecated.
+
+Sends a request to delete a runShare
+
+**Parameters:**
+- key - the key for the runShare to delete
+
+**Returns:**
+- the id for the response
+
+### getDeleteRunShareResponse
+```
+public java.lang.String getDeleteRunShareResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the result from the server
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### deleteRunShare
+```
+public java.lang.String deleteRunShare(java.lang.Long key)
+ throws PHXServerSideException
+```
+Deprecated.
+
+Handle cleaning up a runShare in a local client
+
+**Throws:**
+- PHXServerSideException
+
+### sendGetIconRequest
+```
+public java.lang.String sendGetIconRequest(java.lang.String analysis)
+```
+Deprecated.
+
+sends a request to retrieve an icon
+
+**Parameters:**
+- analysis - the analysis class to retrieve the icon for
+
+**Returns:**
+- the id for the response
+
+### getGetIconResponse
+```
+public PHXIcon getGetIconResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an icon Image
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getIcon
+```
+public PHXIcon getIcon(java.lang.String analysis)
+ throws PHXServerSideException
+```
+Deprecated.
+
+retrieves an icon for an analysis
+
+**Parameters:**
+- analysis - the analysis class to retrieve the icon for
+
+**Returns:**
+- an icon Image
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendSetDictionaryRequest
+```
+public java.lang.String sendSetDictionaryRequest(java.lang.String dictionary)
+```
+Deprecated.
+
+sends a request to set a dictionary
+
+**Parameters:**
+- dictionary - the desired dictionary
+
+**Returns:**
+- the id for the response
+
+### getSetDictionaryResponse
+```
+public java.lang.String getSetDictionaryResponse(java.lang.String id,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a response from the server
+
+**Parameters:**
+- id - the id for the response
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- an icon Image
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### setDictionary
+```
+public java.lang.String setDictionary(java.lang.String dictionary)
+ throws PHXServerSideException
+```
+Deprecated.
+
+Tries to set the dictionary by sending a set dictionary request.
+
+**Parameters:**
+- dictionary - the desired dictionary
+
+**Returns:**
+- the response from the server, or a blank string for invalid responses
+
+**Throws:**
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if something goes wrong. The exception message will contain the response from the server
+
+### sendArbitraryRequest
+```
+public java.lang.String sendArbitraryRequest(java.lang.String request)
+```
+Deprecated.
+
+sends an arbitrary request to the server
+
+**Parameters:**
+- request - MCRE api command to send
+
+**Returns:**
+- the id for the response
+
+### sendArbitraryRequest
+```
+public java.lang.String sendArbitraryRequest(PHXStringBuffer request)
+```
+Deprecated.
+
+sends an arbitrary request to the server
+
+**Parameters:**
+- request - MCRE api command to send
+
+**Returns:**
+- the id for the response
+
+### getResponseAsText
+```
+public java.lang.String getResponseAsText(java.lang.String id,
+ int type,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a low-level response from the server in String format.
+
+**Parameters:**
+- id - the id for the response
+- type - the type of response to expect.
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### getResponseAsPHXStringBuffer
+```
+public PHXStringBuffer getResponseAsPHXStringBuffer(java.lang.String id,
+ int type,
+ boolean wait)
+ throws PHXResponseTypeMismatchException,
+ PHXNoSuchResponseException,
+ PHXServerSideException
+```
+Deprecated.
+
+retrieves a low-level response from the server in String format.
+
+**Parameters:**
+- id - the id for the response
+- type - the type of response to expect.
+- wait - if true, the function blocks until the response is ready
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXResponseTypeMismatchException`](PHXResponseTypeMismatchException.md) - thrown if the response type is not what was expected for this function.
+- [`PHXNoSuchResponseException`](PHXNoSuchResponseException.md) - thrown if the response does not exist (may not have been returned from server yet).
+- [`PHXServerSideException`](PHXServerSideException.md) - thrown if the the server returned an error
+
+### main
+```
+public static void main(java.lang.String[] args)
+```
+Deprecated.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientEvent.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientEvent.md
new file mode 100644
index 0000000000..19a38018a5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientEvent.md
@@ -0,0 +1,56 @@
+# Class: PHXAnalysisClientEvent
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.util.EventObject
+ ↳ com.phoenix_int.aserver.client.PHXAnalysisClientEvent
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXAnalysisClientEvent
+extends java.util.EventObject
+```
+
+This class is an event for the [`PHXAnalysisClient`](PHXAnalysisClient.md) class. The event is generated each time a new response is received from the server.
+
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.html#com.phoenix_int.aserver.client.PHXAnalysisClientEvent)
+
+## Field Summary
+
+### Fields inherited from class java.util.EventObject
+`source`
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `com.phoenix_int.aserver.client.PHXResponse` | `getResponse()`
retrieves the response |
+
+### Methods inherited from class java.util.EventObject
+`getSource, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Method Detail
+
+### getResponse
+```
+public com.phoenix_int.aserver.client.PHXResponse getResponse()
+```
+retrieves the response
+
+**Returns:**
+- the response object
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientExceptionEvent.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientExceptionEvent.md
new file mode 100644
index 0000000000..4bbbb27769
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXAnalysisClientExceptionEvent.md
@@ -0,0 +1,55 @@
+# Class: PHXAnalysisClientExceptionEvent
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.util.EventObject
+ ↳ com.phoenix_int.aserver.client.PHXAnalysisClientExceptionEvent
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXAnalysisClientExceptionEvent
+extends java.util.EventObject
+```
+
+This class is an event for the [`PHXAnalysisClient`](PHXAnalysisClient.md) class. The event is generated when an exception occurs on the read thread.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.html#com.phoenix_int.aserver.client.PHXAnalysisClientExceptionEvent)
+
+## Field Summary
+
+### Fields inherited from class java.util.EventObject
+`source`
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.Exception` | `getException()`
retrieves the Exception object |
+
+### Methods inherited from class java.util.EventObject
+`getSource, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Method Detail
+
+### getException
+```
+public java.lang.Exception getException()
+```
+retrieves the Exception object
+
+**Returns:**
+- the Exception object.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXNoSuchResponseException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXNoSuchResponseException.md
new file mode 100644
index 0000000000..a01fe6f434
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXNoSuchResponseException.md
@@ -0,0 +1,51 @@
+# Class: PHXNoSuchResponseException
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.client.PHXNoSuchResponseException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXNoSuchResponseException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an invalid response is specified.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.html#com.phoenix_int.aserver.client.PHXNoSuchResponseException)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getInvalidID()`
retrieves the id that didn't have a response |
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Method Detail
+
+### getInvalidID
+```
+public java.lang.String getInvalidID()
+```
+retrieves the id that didn't have a response
+
+**Returns:**
+- the invalid id
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXPropertyValue.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXPropertyValue.md
new file mode 100644
index 0000000000..fcb4ad7fb4
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXPropertyValue.md
@@ -0,0 +1,81 @@
+# Class: PHXPropertyValue
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.PHXPropertyValue
+```
+
+**Declaration**
+
+```java
+public class PHXPropertyValue
+extends java.lang.Object
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `PHXPropertyDescriptor` | `_prop` |
+| `PHXPropertyValue[]` | `subProps` |
+
+### Fields inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXPropertyValue()` |
+| `PHXPropertyValue(PHXPropertyDescriptor prop, java.lang.String val)` |
+| `PHXPropertyValue(PHXPropertyValue val)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getValue()` |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Field Detail
+
+### _prop
+```
+public PHXPropertyDescriptor _prop
+```
+
+### subProps
+```
+public PHXPropertyValue[] subProps
+```
+
+## Constructor Detail
+
+### PHXPropertyValue
+```
+public PHXPropertyValue()
+```
+
+### PHXPropertyValue
+```
+public PHXPropertyValue(PHXPropertyValue val)
+```
+
+### PHXPropertyValue
+```
+public PHXPropertyValue(PHXPropertyDescriptor prop,
+ java.lang.String val)
+```
+
+## Method Detail
+
+### getValue
+```
+public java.lang.String getValue()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXResponseTypeMismatchException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXResponseTypeMismatchException.md
new file mode 100644
index 0000000000..4be462528c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXResponseTypeMismatchException.md
@@ -0,0 +1,52 @@
+# Class: PHXResponseTypeMismatchException
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ java.lang.RuntimeException
+ ↳ com.phoenix_int.aserver.client.PHXResponseTypeMismatchException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXResponseTypeMismatchException
+extends java.lang.RuntimeException
+```
+
+An exception that is thrown when an invalid response is specified.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.html#com.phoenix_int.aserver.client.PHXResponseTypeMismatchException)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getInvalidID()`
retrieves the id that didn't have a response |
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Method Detail
+
+### getInvalidID
+```
+public java.lang.String getInvalidID()
+```
+retrieves the id that didn't have a response
+
+**Returns:**
+- the invalid id
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXServerSideException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXServerSideException.md
new file mode 100644
index 0000000000..018fe8a499
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/PHXServerSideException.md
@@ -0,0 +1,53 @@
+# Class: PHXServerSideException
+
+**Package:** `com.phoenix_int.aserver.client`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.client.PHXServerSideException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXServerSideException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an error is returned from the server.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.html#com.phoenix_int.aserver.client.PHXServerSideException)
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXServerSideException(java.lang.String msg)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Constructor Detail
+
+### PHXServerSideException
+```
+public PHXServerSideException(java.lang.String msg)
+```
+Constructor
+
+**Parameters:**
+- `msg` - the error text from the server
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-summary.md
new file mode 100644
index 0000000000..cfcc65a5d1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-summary.md
@@ -0,0 +1,29 @@
+# Package com.phoenix_int.aserver.client
+
+Provides a client package for programmatically invoking ModelCenter Remote Execution remotely from the Java language.
+
+## Interface Summary
+| Interface | Description |
+| --- | --- |
+| [IPHXAnalysisClientListener](IPHXAnalysisClientListener.md) | This interface is used by the [PHXAnalysisClient](PHXAnalysisClient.md) class. |
+
+## Class Summary
+| Class | Description |
+| --- | --- |
+| [PHXAnalysisClient](PHXAnalysisClient.md) | Deprecated. Use [AnalysisServerClient](v2/AnalysisServerClient.md) instead. |
+| [PHXAnalysisClientEvent](PHXAnalysisClientEvent.md) | This class is an event for the [PHXAnalysisClient](PHXAnalysisClient.md) class. |
+| [PHXAnalysisClientExceptionEvent](PHXAnalysisClientExceptionEvent.md) | This class is an event for the [PHXAnalysisClient](PHXAnalysisClient.md) class. |
+| [PHXPropertyValue](PHXPropertyValue.md) | |
+
+## Exception Summary
+| Exception | Description |
+| --- | --- |
+| [PHXNoSuchResponseException](PHXNoSuchResponseException.md) | An exception that is thrown when an invalid response is specified. |
+| [PHXResponseTypeMismatchException](PHXResponseTypeMismatchException.md) | An exception that is thrown when an invalid response is specified. |
+| [PHXServerSideException](PHXServerSideException.md) | An exception that is thrown when an error is returned from the server. |
+
+## Package com.phoenix_int.aserver.client Description
+Provides a client package for programmatically invoking ModelCenter Remote Execution remotely from the Java language. Start with the [PHXAnalysisClient](PHXAnalysisClient.md) class.
+
+**See Also:**
+- [PHXAnalysisClient](PHXAnalysisClient.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-tree.md
new file mode 100644
index 0000000000..90cb87338f
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/package-tree.md
@@ -0,0 +1,24 @@
+# Hierarchy For Package com.phoenix_int.aserver.client
+
+**Package Hierarchies:**
+- [All Packages](../../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - java.util.EventObject (implements java.io.Serializable)
+ - com.phoenix_int.aserver.client.[PHXAnalysisClientEvent](PHXAnalysisClientEvent.md)
+ - com.phoenix_int.aserver.client.[PHXAnalysisClientExceptionEvent](PHXAnalysisClientExceptionEvent.md)
+ - com.phoenix_int.aserver.client.[PHXAnalysisClient](PHXAnalysisClient.md)
+ - com.phoenix_int.aserver.client.[PHXPropertyValue](PHXPropertyValue.md)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.client.[PHXNoSuchResponseException](PHXNoSuchResponseException.md)
+ - com.phoenix_int.aserver.client.[PHXServerSideException](PHXServerSideException.md)
+ - java.lang.RuntimeException
+ - com.phoenix_int.aserver.client.[PHXResponseTypeMismatchException](PHXResponseTypeMismatchException.md)
+
+## Interface Hierarchy
+
+- java.util.EventListener
+ - com.phoenix_int.aserver.client.[IPHXAnalysisClientListener](IPHXAnalysisClientListener.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerClient.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerClient.md
new file mode 100644
index 0000000000..650a17e840
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerClient.md
@@ -0,0 +1,1690 @@
+# Class: AnalysisServerClient
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerClient
+```
+
+**Implemented Interfaces**
+
+- `java.lang.AutoCloseable`
+
+**Declaration**
+
+```java
+public class AnalysisServerClient
+extends java.lang.Object
+implements java.lang.AutoCloseable
+```
+
+ModelCenter Remote Execution client object.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---|
+| `AnalysisServerClient()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|---|---|
+| `void` | `addProxyClients(java.lang.Iterable clientHosts)` Add a list of allowed proxy client hosts. |
+| `void` | `addProxyClientsAsync(java.lang.Iterable clientHosts, IAnalysisServerCallback callback)` Add a list of allowed proxy client hosts. |
+| `void` | `close()` Close the connection to the server. |
+| `void` | `connect(java.net.URI uri)` Connect to ModelCenter Remote Execution at a specified URI with no timeout. |
+| `void` | `connect(java.net.URI uri, int timeout)` Connect to ModelCenter Remote Execution at a specified URI. |
+| `void` | `connect(java.net.URI uri, java.lang.String username, java.lang.String password)` Connect to ModelCenter Remote Execution with optional authentication and no timeout. |
+| `void` | `connect(java.net.URI uri, java.lang.String username, java.lang.String password, int timeout)` Connect to ModelCenter Remote Execution with optional authentication. |
+| `void` | `connectEmbedded()` Connect to the in-process (embedded) ModelCenter Remote Execution instance. |
+| `void` | `connectEmbedded(java.util.Map initialProperties)` Connect to the in-process (embedded) ModelCenter Remote Execution instance. |
+| `void` | `connectEmbedded(java.util.Map initialProperties, java.lang.String username, java.lang.String password)` Connect to the in-process (embedded) ModelCenter Remote Execution instance. |
+| `void` | `connectEmbedded(java.lang.String username, java.lang.String password)` Connect to the in-process (embedded) ModelCenter Remote Execution instance. |
+| `void` | `connectSsh(java.lang.String host, java.io.InputStream inputStream, java.io.OutputStream outputStream, java.io.InputStream errorStream)` Connect to ModelCenter Remote Execution via arbitrary input and output streams. |
+| `void` | `deleteRunShare(java.lang.String key)` Delete a run share. |
+| `void` | `deleteRunShareAsync(java.lang.String key, IAnalysisServerCallback callback)` Delete a run share. |
+| `PHXComponentDescription` | `describe(java.lang.String analysis)` Get the description of an analysis. |
+| `void` | `describeAsync(java.lang.String analysis, IAnalysisServerCallback callback)` Get the description history of an analysis. |
+| `void` | `end(java.lang.String instanceName)` End an analysis. |
+| `void` | `endAsync(java.lang.String instanceName, IAnalysisServerCallback callback)` End an analysis. |
+| `void` | `execute(java.lang.String instanceName, boolean background)` Execute an analysis. |
+| `void` | `executeAsync(java.lang.String instanceName, boolean background, IAnalysisServerCallback callback)` Execute an analysis. |
+| `protected void` | `finalize()` Clean up during finalization. |
+| `java.lang.String` | `get(java.lang.String fullPropertyName)` Request the value of a property. |
+| `void` | `getAsync(java.lang.String fullPropertyName, IAnalysisServerCallback callback)` Request the value of a property. |
+| `void` | `getByUrl(java.io.File destFile, java.lang.String url, boolean isBinaryFile)` Convenience overload of getByUrl(File, String, String, boolean). |
+| `void` | `getByUrl(java.io.File destFile, java.lang.String fullPropertyName, java.lang.String url, boolean isBinaryFile)` Get a file by URL. |
+| `void` | `getByUrlAsync(java.io.File destFile, java.lang.String fullPropertyName, java.lang.String url, boolean isBinaryFile, IAnalysisServerCallback callback)` Fetch the contents of a file by URL. |
+| `int[]` | `getDimensions(java.lang.String fullPropertyName)` Set the dimensions of an array. |
+| `void` | `getDimensionsAsync(java.lang.String fullPropertyName, IAnalysisServerCallback callback)` Set the dimensions of an array. |
+| `void` | `getFile(java.io.File destFile, java.lang.String fullPropertyName, boolean isBinaryFile)` Get a file by property name. |
+| `void` | `getFileAsync(java.io.File destFile, java.lang.String fullPropertyName, boolean isBinaryFile, IAnalysisServerCallback callback)` Fetch the contents of a file by property name. |
+| `java.util.Map` | `getHierarchy(java.lang.String instanceName, com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode)` Get the variable hierarchy of a running instance. |
+| `void` | `getHierarchyAsync(java.lang.String instanceName, com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode, IAnalysisServerCallback callback)` Get the variable hierarchy of a running instance. |
+| `java.lang.String` | `getHostname()` Returns the currently-connected host, or null if none. |
+| `PHXIcon` | `getIcon(java.lang.String analysis)` Retrieve an icon. |
+| `void` | `getIconAsync(java.lang.String analysis, IAnalysisServerCallback callback)` Retrieve an icon. |
+| `java.lang.String` | `getScratchDirectory()` Request for the server's scratch directory. |
+| `void` | `getScratchDirectoryAsync(IAnalysisServerCallback callback)` Request for the server's scratch directory. |
+| `java.lang.String` | `getSystemProperty(java.lang.String key)` Request for the server's system property. |
+| `void` | `getSystemPropertyAsync(java.lang.String key, IAnalysisServerCallback callback)` Request for the server's system property. |
+| `java.net.URI` | `getUri()` Get the currently-connected URI, or null if none. |
+| `AnalysisServerVersion` | `getVersion()` Get the MCRE version. |
+| `PHXComponentBranch` | `getVersionHistory(java.lang.String analysis)` Get the version history of an analysis. |
+| `void` | `getVersionHistoryAsync(java.lang.String analysis, IAnalysisServerCallback callback)` Get the version history of an analysis. |
+| `java.lang.String` | `invoke(java.lang.String instanceName, java.lang.String methodName)` Invoke a method on a component instance. |
+| `void` | `invokeAsync(java.lang.String instanceName, java.lang.String methodName, IAnalysisServerCallback callback)` Invoke a method on a component instance. |
+| `boolean` | `isConnected()` Is the server connected? |
+| `java.util.List` | `listAnalyses(java.lang.String folderPath)` List the analyses on the server. |
+| `void` | `listAnalysesAsync(java.lang.String folderPath, IAnalysisServerCallback callback)` List the analyses on the server. |
+| `java.util.List` | `listFolders(java.lang.String folderPath)` List the sub-folders of a folder on the server. |
+| `void` | `listFoldersAsync(java.lang.String folderPath, IAnalysisServerCallback callback)` List the sub-folders of a folder on the server. |
+| `java.util.List` | `listInstances()` List running instances on the server. |
+| `void` | `listInstancesAsync(IAnalysisServerCallback callback)` List running instances on the server. |
+| `java.util.List` | `listMethods(java.lang.String analysis)` List the methods of an analysis. |
+| `void` | `listMethodsAsync(java.lang.String analysis, IAnalysisServerCallback callback)` List the methods of an analysis. |
+| `java.util.List` | `listProperties(java.lang.String analysis)` List the properties of an analysis. |
+| `void` | `listPropertiesAsync(java.lang.String analysis, IAnalysisServerCallback callback)` List the properties of an analysis. |
+| `java.util.List` | `listValues(java.lang.String analysis)` List the values of an analysis. |
+| `void` | `listValuesAsync(java.lang.String analysis, IAnalysisServerCallback callback)` List the values of an analysis. |
+| `void` | `quit(boolean background)` Force quit current analysis, and shut down ModelCenter Remote Execution. |
+| `void` | `set(java.lang.String fullPropertyName, java.io.File contents)` Set a file variable on the server. |
+| `void` | `set(java.lang.String fullPropertyName, java.io.File contents, java.lang.String encoding)` Set a file variable on the server. |
+| `void` | `set(java.lang.String fullPropertyName, java.lang.Object value)` Set the value of a property. |
+| `void` | `setAsync(java.lang.String fullPropertyName, java.io.File contents, IAnalysisServerCallback callback)` Set a file variable on the server. |
+| `void` | `setAsync(java.lang.String fullPropertyName, java.io.File contents, java.lang.String encoding, IAnalysisServerCallback callback)` Set a file variable on the server. |
+| `void` | `setAsync(java.lang.String fullPropertyName, java.lang.Object value, IAnalysisServerCallback callback)` Set the value of a property. |
+| `void` | `setByUrl(java.lang.String fullPropertyName, java.lang.String url)` Set the URL of a file property. |
+| `void` | `setByUrlAsync(java.lang.String fullPropertyName, java.lang.String url, IAnalysisServerCallback callback)` Set the URL associated with a property |
+| `void` | `setDictionary(java.lang.String xml)` Set dictionary on Server. |
+| `void` | `setDictionaryAsync(java.lang.String xml, IAnalysisServerCallback callback)` Set dictionary on Server. |
+| `void` | `setDimensions(java.lang.String fullPropertyName, int[] dimensions)` Set the dimensions of an array. |
+| `void` | `setDimensionsAsync(java.lang.String fullPropertyName, int[] dimensions, IAnalysisServerCallback callback)` Set the dimensions of an array. |
+| `void` | `setHierarchy(java.lang.String instanceName, java.io.File xmlData, java.lang.String xmlEncoding, boolean gzipped)` Set the variable hierarchy of a running instance. |
+| `void` | `setHierarchy(java.lang.String instanceName, java.lang.Iterable variables)` Set the variable hierarchy of a running instance. |
+| `void` | `setHierarchyAsync(java.lang.String instanceName, java.io.File xmlData, java.lang.String xmlEncoding, boolean gzipped, IAnalysisServerCallback callback)` Set the variable hierarchy of a running instance. |
+| `void` | `setHierarchyAsync(java.lang.String instanceName, java.lang.Iterable variables, IAnalysisServerCallback callback)` Set the variable hierarchy of a running instance. |
+| `void` | `setServerProperties(java.util.Map propertyMap)` Set server properties. |
+| `void` | `setServerPropertiesAsync(java.util.Map propertyMap, IAnalysisServerCallback callback)` Set server properties. |
+| `void` | `start(java.lang.String analysis, java.lang.String instanceName)` Start an analysis. |
+| `void` | `startAsync(java.lang.String analysis, java.lang.String instanceName, IAnalysisServerCallback callback)` Start an analysis. |
+| `boolean` | `supportsBinaryTransfer()` Does this server support binary transfer? |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### AnalysisServerClient
+
+```java
+public AnalysisServerClient()
+```
+## Method Detail
+
+### isConnected
+
+```java
+public boolean isConnected()
+```
+Is the server connected?
+
+### getUri
+
+```java
+public java.net.URI getUri()
+```
+Get the currently-connected URI, or null if none.
+
+### getHostname
+
+```java
+public java.lang.String getHostname()
+```
+Returns the currently-connected host, or null if none.
+
+### supportsBinaryTransfer
+
+```java
+public boolean supportsBinaryTransfer()
+ throws java.lang.IllegalStateException
+```
+Does this server support binary transfer?
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the client is not connected
+
+### connect
+
+```java
+public void connect(java.net.URI uri)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException,
+ java.lang.NullPointerException
+```
+Connect to ModelCenter Remote Execution at a specified URI with no timeout. The server must not require authentication.
+
+**Parameters:**
+- `uri` – the URI
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the server requires credentials
+- `java.io.IOException` – if the server cannot be connected
+- `java.lang.NullPointerException` – if uri is null
+
+### connect
+
+```java
+public void connect(java.net.URI uri,
+ int timeout)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException, java.lang.NullPointerException
+```
+Connect to ModelCenter Remote Execution at a specified URI. The server must not require authentication.
+
+**Parameters:**
+- `uri` – the URI
+- `timeout` – the timeout to use, or 0 for none
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the server requires credentials
+- `java.io.IOException` – if the server cannot be connected
+- `java.lang.NullPointerException` – if uri is null
+
+### connect
+
+```java
+public void connect(java.net.URI uri,
+ java.lang.String username,
+ java.lang.String password)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException,
+ java.lang.NullPointerException
+```
+Connect to ModelCenter Remote Execution with optional authentication and no timeout.
+
+**Parameters:**
+- `uri` – the URI to connect to
+- `username` – the username to use (null for none)
+- `password` – the password to use (null for none)
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the credentials are invalid
+- `java.io.IOException` – if the server cannot be connected
+- `java.lang.NullPointerException` – if uri is null
+
+### connect
+
+```java
+public void connect(java.net.URI uri,
+ java.lang.String username,
+ java.lang.String password,
+ int timeout)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException,
+ java.lang.UnsupportedOperationException,
+ java.lang.NullPointerException
+```
+Connect to ModelCenter Remote Execution with optional authentication.
+
+**Parameters:**
+- `uri` – the URI to connect to
+- `username` – the username to use (null for none)
+- `password` – the password to use (null for none)
+- `timeout` – the timeout, or 0 for none
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the credentials are invalid
+- `java.io.IOException` – if the server cannot be connected
+- `java.lang.UnsupportedOperationException` – if the URI is not a recognized type
+- `java.lang.NullPointerException` – if uri is null
+
+### connectEmbedded
+
+```java
+public void connectEmbedded()
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException
+```
+Connect to the in-process (embedded) ModelCenter Remote Execution instance.
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the server requires authentication
+- `java.io.IOException` – on connection error
+
+### connectEmbedded
+
+```java
+public void connectEmbedded(java.lang.String username,
+ java.lang.String password)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException
+```
+Connect to the in-process (embedded) ModelCenter Remote Execution instance.
+
+**Parameters:**
+- `username` – the username to use (null for none)
+- `password` – the password to use (null for none)
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the credentials are invalid
+- `java.io.IOException` – on connection error
+
+### connectEmbedded
+
+```java
+public void connectEmbedded(java.util.Map initialProperties)
+ throws javax.security.auth.login.FailedLoginException, java.io.IOException
+```
+Connect to the in-process (embedded) ModelCenter Remote Execution instance.
+
+**Parameters:**
+- `initialProperties` – the initial properties to set (may be null)
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the server requires authentication
+- `java.io.IOException` – on connection error
+
+### connectEmbedded
+
+```java
+public void connectEmbedded(java.util.Map initialProperties,
+ java.lang.String username,
+ java.lang.String password)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException
+```
+Connect to the in-process (embedded) ModelCenter Remote Execution instance.
+
+**Parameters:**
+- `initialProperties` – the initial properties to set (may be null)
+- `username` – the username to use (null for none)
+- `password` – the password to use (null for none)
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException` – if the credentials are invalid
+- `java.io.IOException` – on connection error
+
+### connectSsh
+
+```java
+public void connectSsh(java.lang.String host,
+ java.io.InputStream inputStream,
+ java.io.OutputStream outputStream,
+ java.io.InputStream errorStream)
+ throws javax.security.auth.login.FailedLoginException,
+ java.io.IOException,
+ java.net.URISyntaxException
+```
+Connect to ModelCenter Remote Execution via arbitrary input and output streams. This function is misnamed because it doesn't really care if the streams come from ssh or not, only that the other end of the streams are hooked up to ModelCenter Remote Execution.
+
+**Parameters:**
+- `host` – the machine at which the streams are connected
+- `inputStream` – the stream where the SSH server writes its output
+- `outputStream` – the stream where the SSH server reads further input
+- `errorStream` – The stream where the SSH server writes its error output, which may be null; this is used to include additional information if a connection error occurs
+
+**Throws:**
+- `javax.security.auth.login.FailedLoginException`
+- `java.io.IOException`
+- `java.net.URISyntaxException`
+
+### close
+
+```java
+public void close()
+```
+Close the connection to the server.
+
+**Specified by:**
+- `close` in interface `java.lang.AutoCloseable`
+
+### quit
+
+```java
+public void quit(boolean background)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Force quit current analysis, and shut down ModelCenter Remote Execution.
+
+**Parameters:**
+- `background` – whether to background execution
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### finalize
+
+```java
+protected void finalize()
+ throws java.lang.Throwable
+```
+Clean up during finalization.
+
+**Overrides:**
+- `finalize` in class `java.lang.Object`
+
+**Throws:**
+- `java.lang.Throwable`
+
+### getVersion
+
+```java
+public AnalysisServerVersion getVersion()
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get the MCRE version.
+
+**Returns:**
+- the version
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### startAsync
+
+```java
+public void startAsync(java.lang.String analysis,
+ java.lang.String instanceName,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Start an analysis.
+
+**Parameters:**
+- `analysis` – the analysis
+- `instanceName` – the name for this instance
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### start
+
+```java
+public void start(java.lang.String analysis,
+ java.lang.String instanceName)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Start an analysis.
+
+**Parameters:**
+- `analysis` – the analysis
+- `instanceName` – the name for this instance
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### endAsync
+
+```java
+public void endAsync(java.lang.String instanceName,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+End an analysis.
+
+**Parameters:**
+- `instanceName` – the name of the instance
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### end
+
+```java
+public void end(java.lang.String instanceName)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+End an analysis.
+
+**Parameters:**
+- `instanceName` – the name of the instance
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### listAnalysesAsync
+
+```java
+public void listAnalysesAsync(java.lang.String folderPath,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List the analyses on the server.
+
+**Parameters:**
+- `folderPath` – the path to the folder (may be null)
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### listAnalyses
+
+```java
+public java.util.List listAnalyses(java.lang.String folderPath)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List the analyses on the server.
+
+**Parameters:**
+- `folderPath` – the path to the folder (may be null)
+
+**Returns:**
+- the list of classes
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### executeAsync
+
+```java
+public void executeAsync(java.lang.String instanceName,
+ boolean background,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Execute an analysis.
+
+**Parameters:**
+- `instanceName` – the name of the instance
+- `background` – whether to background execution
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### execute
+
+```java
+public void execute(java.lang.String instanceName,
+ boolean background)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Execute an analysis.
+
+**Parameters:**
+- `instanceName` – the name of the instance
+- `background` – whether to background execution
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### addProxyClientsAsync
+
+```java
+public void addProxyClientsAsync(java.lang.Iterable clientHosts,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Add a list of allowed proxy client hosts.
+
+**Parameters:**
+- `clientHosts` – the collection of hosts
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### addProxyClients
+
+```java
+public void addProxyClients(java.lang.Iterable clientHosts)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Add a list of allowed proxy client hosts.
+
+**Parameters:**
+- `clientHosts` – the collection of hosts
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### getAsync
+
+```java
+public void getAsync(java.lang.String fullPropertyName,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Request the value of a property.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### get
+
+```java
+public java.lang.String get(java.lang.String fullPropertyName)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Request the value of a property.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+
+**Returns:**
+- the property value
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### getFileAsync
+
+```java
+public void getFileAsync(java.io.File destFile,
+ java.lang.String fullPropertyName,
+ boolean isBinaryFile,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException, java.lang.IllegalStateException
+```
+Fetch the contents of a file by property name.
+
+**Parameters:**
+- `destFile` – the file to write to
+- `fullPropertyName` – the full property name
+- `isBinaryFile` – whether or not this is a binary file (will only be used if the server must transfer the file as text, so we know how to decode it!)
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### getFile
+
+```java
+public void getFile(java.io.File destFile,
+ java.lang.String fullPropertyName,
+ boolean isBinaryFile)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get a file by property name.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `destFile` – the file to write with the results
+- `isBinaryFile` – whether or not this is a binary file (will only be used if the server must transfer the file as text, so we know how to decode it!)
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### getByUrlAsync
+
+```java
+public void getByUrlAsync(java.io.File destFile,
+ java.lang.String fullPropertyName,
+ java.lang.String url,
+ boolean isBinaryFile,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Fetch the contents of a file by URL.
+
+**Parameters:**
+- `destFile` – the file to write to
+- `fullPropertyName` – the full property name
+- `url` – the URL to retrieve
+- `isBinaryFile` – whether or not this is a binary file (will only be used if the server must transfer the file as text, so we know how to decode it!)
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### getByUrl
+
+```java
+public void getByUrl(java.io.File destFile,
+ java.lang.String fullPropertyName,
+ java.lang.String url,
+ boolean isBinaryFile)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get a file by URL.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `destFile` – the file to write with the results
+- `url` – the URL to retrieve
+- `isBinaryFile` – whether or not this is a binary file (will only be used if the server must transfer the file as text, so we know how to decode it!)
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### getByUrl
+
+```java
+public void getByUrl(java.io.File destFile,
+ java.lang.String url,
+ boolean isBinaryFile)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Convenience overload of `getByUrl(File, String, String, boolean)`. Calls that `getByUrl` with a blank `fullPropertyName` parameter. Get a file by URL.
+
+**Parameters:**
+- `destFile` – the file to write with the results
+- `url` – the URL to retrieve
+- `isBinaryFile` – whether or not this is a binary file (will only be used if the server must transfer the file as text, so we know how to decode it!)
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### getDimensionsAsync
+
+```java
+public void getDimensionsAsync(java.lang.String fullPropertyName,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set the dimensions of an array.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### getDimensions
+
+```java
+public int[] getDimensions(java.lang.String fullPropertyName)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set the dimensions of an array.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+
+**Returns:**
+- the dimensions
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### setDimensionsAsync
+
+```java
+public void setDimensionsAsync(java.lang.String fullPropertyName,
+ int[] dimensions,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException,
+ java.lang.NullPointerException,
+ java.lang.IllegalArgumentException
+```
+Set the dimensions of an array.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `dimensions` – the dimensions
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+- `java.lang.NullPointerException` – if dimensions is null
+- `java.lang.IllegalArgumentException` – if any of the dimensions are invalid
+
+### setDimensions
+
+```java
+public void setDimensions(java.lang.String fullPropertyName,
+ int[] dimensions)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException,
+ java.lang.NullPointerException,
+ java.lang.IllegalArgumentException
+```
+Set the dimensions of an array.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `dimensions` – the dimensions
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+- `java.lang.NullPointerException` – if dimensions is null
+- `java.lang.IllegalArgumentException` – if any of the dimensions are invalid
+
+### setByUrlAsync
+
+```java
+public void setByUrlAsync(java.lang.String fullPropertyName,
+ java.lang.String url,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set the URL associated with a property
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `url` – the URL to set
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### setByUrl
+
+```java
+public void setByUrl(java.lang.String fullPropertyName,
+ java.lang.String url)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set the URL of a file property.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `url` – the URL to set
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### setDictionary
+
+```java
+public void setDictionary(java.lang.String xml)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set dictionary on Server.
+
+**Parameters:**
+- `xml` – context information in form of a xml string
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### setDictionaryAsync
+
+```java
+public void setDictionaryAsync(java.lang.String xml,
+ IAnalysisServerCallback callback)
+ throws java.lang.IllegalStateException,
+ java.io.IOException
+```
+Set dictionary on Server.
+
+**Parameters:**
+- `xml` – context information in form of a xml string
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+- `java.lang.NullPointerException` – if xml is null
+
+### setAsync
+
+```java
+public void setAsync(java.lang.String fullPropertyName,
+ java.lang.Object value,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set the value of a property.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `value` – the value to set
+- `callback` – the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – on communications error
+
+### set
+
+```java
+public void set(java.lang.String fullPropertyName,
+ java.lang.Object value)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set the value of a property.
+
+**Parameters:**
+- `fullPropertyName` – the full property name
+- `value` – the value to set (if this is a`File`or (`@link PHXTempFile`), set(java.lang.String, java.io.File) will be called automatically)
+
+**Throws:**
+- `java.lang.IllegalStateException` – if the server is not connected
+- `java.io.IOException` – if there is an error talking to the server
+- `AnalysisServerException` – if the request fails
+- `java.lang.InterruptedException` – if the current thread is interrupted waiting for the response
+
+### setAsync
+
+```java
+public void setAsync(java.lang.String fullPropertyName,
+ java.io.File contents,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException,
+ java.lang.UnsupportedOperationException
+```
+Set a file variable on the server.
+
+**Parameters:**
+- `fullPropertyName` - the full property name to set
+- `contents` - the contents to set
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server or reading from the file
+- `java.lang.UnsupportedOperationException` - if the server does not support file transfer
+### setAsync
+
+```java
+public void setAsync(java.lang.String fullPropertyName,
+ java.io.File contents,
+ java.lang.String encoding,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException,
+ java.lang.UnsupportedOperationException
+```
+Set a file variable on the server.
+
+**Parameters:**
+- `fullPropertyName` - the full property name to set
+- `contents` - the contents to set
+- `encoding` - the text encoding to use for non-file variables, null for file variables
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server or reading from the file
+- `java.lang.UnsupportedOperationException` - if the server does not support file transfer
+### set
+
+```java
+public void set(java.lang.String fullPropertyName,
+ java.io.File contents)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException,
+ java.lang.UnsupportedOperationException
+```
+Set a file variable on the server.
+
+**Parameters:**
+- `fullPropertyName` - the full property name to set
+- `contents` - the contents to set
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server or reading from the file
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+- `java.lang.UnsupportedOperationException` - if the server does not support binary transfer
+### set
+
+```java
+public void set(java.lang.String fullPropertyName,
+ java.io.File contents,
+ java.lang.String encoding)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException,
+ java.lang.UnsupportedOperationException
+```
+Set a file variable on the server.
+
+**Parameters:**
+- `fullPropertyName` - the full property name to set
+- `contents` - the contents to set
+- `encoding` - the text encoding to use for non-file variables, null for file variables
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server or reading from the file
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+- `java.lang.UnsupportedOperationException` - if the server does not support binary transfer
+### getVersionHistoryAsync
+
+```java
+public void getVersionHistoryAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Get the version history of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### getVersionHistory
+
+```java
+public PHXComponentBranch getVersionHistory(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get the version history of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+
+**Returns:**
+- the version history information
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### describeAsync
+
+```java
+public void describeAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Get the description history of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### describe
+
+```java
+public PHXComponentDescription describe(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get the description of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+
+**Returns:**
+- the version history information
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### listPropertiesAsync
+
+```java
+public void listPropertiesAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List the properties of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### listProperties
+
+```java
+public java.util.List listProperties(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List the properties of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+
+**Returns:**
+- the property list
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### listMethodsAsync
+
+```java
+public void listMethodsAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List the methods of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### listMethods
+
+```java
+public java.util.List listMethods(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List the methods of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+
+**Returns:**
+- the method list
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### invokeAsync
+
+```java
+public void invokeAsync(java.lang.String instanceName,
+ java.lang.String methodName,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Invoke a method on a component instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to invoke the method for
+- `methodName` - the method name to invoke
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### invoke
+
+```java
+public java.lang.String invoke(java.lang.String instanceName,
+ java.lang.String methodName)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Invoke a method on a component instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to invoke the method for
+- `methodName` - the method name to invoke
+
+**Returns:**
+- whatever the method returned
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### listValuesAsync
+
+```java
+public void listValuesAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List the values of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### listValues
+
+```java
+public java.util.List listValues(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List the values of an analysis.
+
+**Parameters:**
+- `analysis` - the analysis to retrieve info for
+
+**Returns:**
+- the value list
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### listFoldersAsync
+
+```java
+public void listFoldersAsync(java.lang.String folderPath,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List the sub-folders of a folder on the server.
+
+**Parameters:**
+- `folderPath` - the folder path; may be null
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### listFolders
+
+```java
+public java.util.List listFolders(java.lang.String folderPath)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List the sub-folders of a folder on the server.
+
+**Parameters:**
+- `folderPath` - the folder path; may be null
+
+**Returns:**
+- the list of folders
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### listInstancesAsync
+
+```java
+public void listInstancesAsync(IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+List running instances on the server.
+
+**Parameters:**
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### listInstances
+
+```java
+public java.util.List listInstances()
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+List running instances on the server.
+
+**Returns:**
+- the list of folders
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### getHierarchyAsync
+
+```java
+public void getHierarchyAsync(java.lang.String instanceName,
+ com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Get the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `fileMode` - the way to return files
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### getHierarchy
+
+```java
+public java.util.Map getHierarchy(java.lang.String instanceName,
+ com.phoenix_int.aserver.client.PHXHierarchyFileMode fileMode)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Get the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `fileMode` - the way to return files
+
+**Returns:**
+- the hierarchy (a map from variable paths to values)
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### setHierarchyAsync
+
+```java
+public void setHierarchyAsync(java.lang.String instanceName,
+ java.lang.Iterable variables,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `variables` - the variables and values to set
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### setHierarchy
+
+```java
+public void setHierarchy(java.lang.String instanceName,
+ java.lang.Iterable variables)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `variables` - the variables and values to set
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### setHierarchyAsync
+
+```java
+public void setHierarchyAsync(java.lang.String instanceName,
+ java.io.File xmlData,
+ java.lang.String xmlEncoding,
+ boolean gzipped,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `xmlData` - the file containing XML data to set
+- `xmlEncoding` - the encoding of the data; null or empty for default (UTF-8)
+- `gzipped` - whether the file on disk has been gzipped
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### setHierarchy
+
+```java
+public void setHierarchy(java.lang.String instanceName,
+ java.io.File xmlData,
+ java.lang.String xmlEncoding,
+ boolean gzipped)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set the variable hierarchy of a running instance.
+
+**Parameters:**
+- `instanceName` - the name of the instance to retrieve variables for
+- `xmlData` - the file containing XML data to set
+- `xmlEncoding` - the encoding of the data; null or empty for default (UTF-8)
+- `gzipped` - whether the file on disk has been gzipped
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### deleteRunShareAsync
+
+```java
+public void deleteRunShareAsync(java.lang.String key,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Delete a run share.
+
+**Parameters:**
+- `key` - the unique key for the share
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### deleteRunShare
+
+```java
+public void deleteRunShare(java.lang.String key)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Delete a run share.
+
+**Parameters:**
+- `key` - the unique key for the share
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### getIconAsync
+
+```java
+public void getIconAsync(java.lang.String analysis,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Retrieve an icon.
+
+**Parameters:**
+- `analysis` - the analysis to get the icon for
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### getIcon
+
+```java
+public PHXIcon getIcon(java.lang.String analysis)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Retrieve an icon.
+
+**Parameters:**
+- `analysis` - the analysis to get the icon for
+
+**Returns:**
+- the icon
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### setServerPropertiesAsync
+
+```java
+public void setServerPropertiesAsync(java.util.Map propertyMap,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Set server properties.
+
+**Parameters:**
+- `propertyMap` - a map of keys to values
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### setServerProperties
+
+```java
+public void setServerProperties(java.util.Map propertyMap)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Set server properties.
+
+**Parameters:**
+- `propertyMap` - a map of keys to values
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### getSystemPropertyAsync
+
+```java
+public void getSystemPropertyAsync(java.lang.String key,
+ IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Request for the server's system property.
+
+**Parameters:**
+- `key` - the name of the system property
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+### getSystemProperty
+
+```java
+public java.lang.String getSystemProperty(java.lang.String key)
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Request for the server's system property.
+
+**Parameters:**
+- `key` - the name of the system property
+
+**Returns:**
+- the property value
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+### getScratchDirectoryAsync
+
+```java
+public void getScratchDirectoryAsync(IAnalysisServerCallback callback)
+ throws java.io.IOException,
+ java.lang.IllegalStateException
+```
+Request for the server's scratch directory.
+
+**Parameters:**
+- `callback` - the callback for when the response is received
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - on communications error
+
+### getScratchDirectory
+
+```java
+public java.lang.String getScratchDirectory()
+ throws java.lang.IllegalStateException,
+ java.io.IOException,
+ AnalysisServerException,
+ java.lang.InterruptedException
+```
+Request for the server's scratch directory.
+
+**Returns:**
+- the scratch directory of the connected MCRE
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the server is not connected
+- `java.io.IOException` - if there is an error talking to the server
+- `AnalysisServerException` - if the request fails
+- `java.lang.InterruptedException` - if the current thread is interrupted waiting for the response
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerException.md
new file mode 100644
index 0000000000..7deb162609
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerException.md
@@ -0,0 +1,75 @@
+# Class: AnalysisServerException
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class AnalysisServerException
+extends java.lang.Exception
+```
+
+Exception thrown when a request fails on the server.
+
+---
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `AnalysisServerException(java.lang.String message)`
Constructor. |
+| `AnalysisServerException(java.lang.String message, java.lang.Throwable cause)`
Constructor. |
+
+
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+
+
+## Constructor Detail
+
+
+
+**Constructor:** AnalysisServerException
+
+```java
+public AnalysisServerException(java.lang.String message)
+```
+Constructor.
+
+**Parameters:**
+- `message` - the error message
+
+
+
+**Constructor:** AnalysisServerException
+
+```java
+public AnalysisServerException(java.lang.String message,
+ java.lang.Throwable cause)
+```
+Constructor.
+
+**Parameters:**
+- `message` - the error message
+- `cause` - the triggering exception
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponse.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponse.md
new file mode 100644
index 0000000000..b8a9b7259c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponse.md
@@ -0,0 +1,328 @@
+# Class: AnalysisServerResponse
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerResponse
+```
+------
+
+**Declaration**
+
+```java
+public class AnalysisServerResponse
+extends java.lang.Object
+```
+
+Implementation of `PHXResponse` along lines of `PHXResponse` in C++ code.
+
+
+## Constructor Summary
+
+| Constructor and Description |
+| ------------ |
+| `AnalysisServerResponse()` |
+
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --------------- | --------------- |
+| `com.phoenix_int.aserver.client.v2.ChunkDescriptor` | `asChunkDescriptor()`
Parse the response as a chunk descriptor. |
+| `PHXComponentDescription` | `asComponentDescription(boolean asXml)`
Parse a component description. |
+| `java.util.Map` | `asHierarchy()`
Parse the response as a variable hierarchy. |
+| `java.util.List` | `asList()`
Convert the string data to a list of properties. |
+| `java.util.List` | `asMethodDescriptors()`
Convert the string data to a list of method descriptors. |
+| `java.util.List` | `asPropertyDescriptors()`
Parse this response as a sequence of property descriptors. |
+| `java.util.List` | `asPropertyDescriptors(java.lang.String baseObjectName)`
Parse this response as a sequence of property descriptors. |
+| `java.util.List` | `asValueDescriptors()`
Parse the response as a list of value descriptors. |
+| `AnalysisServerVersion` | `asVersion()`
Get the response as a server version. |
+| `PHXComponentBranch` | `asVersionHistory()`
Parse the response as a version history. |
+| `byte[]` | `getBinaryData()`
Get the binary data; only valid if format is Extended or Icon. |
+| `java.lang.String` | `getErrorMessage()`
Get the server error; only valid if response type is ServerError or ConnectionError. |
+| `java.lang.String` | `getHost()`
Get the host which sent the message. |
+| `java.lang.String` | `getID()`
Get the unique identifier of the message. |
+| `AnalysisServerResponseType` | `getResponseType()`
Get the type of response. |
+| `java.lang.String` | `getStringData()`
Get the string data; only valid if format is Normal or Extended. |
+| `boolean` | `hasText()`
Does this response have actual string data (i.e. string data is not empty)? |
+| `boolean` | `isBinary()`
Is this a response with binary data? |
+| `boolean` | `isError()`
Does the response represent an error? |
+| `boolean` | `isSuccess()`
Is the response a successful response? |
+| `boolean` | `isText()`
Does the response have text content? |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+
+## Constructor Detail
+
+
+**Constructor:** AnalysisServerResponse
+
+```java
+public AnalysisServerResponse()
+```
+
+
+## Method Detail
+
+
+### getID
+
+```java
+public java.lang.String getID()
+```
+Get the unique identifier of the message.
+
+
+### getHost
+
+```java
+public java.lang.String getHost()
+```
+Get the host which sent the message.
+
+
+### getResponseType
+
+```java
+public AnalysisServerResponseType getResponseType()
+```
+Get the type of response.
+
+
+### getStringData
+
+```java
+public java.lang.String getStringData()
+```
+Get the string data; only valid if format is `Normal` or `Extended`.
+
+
+### getErrorMessage
+
+```java
+public java.lang.String getErrorMessage()
+```
+Get the server error; only valid if response type is `ServerError` or `ConnectionError`.
+
+
+### getBinaryData
+
+```java
+public byte[] getBinaryData()
+```
+Get the binary data; only valid if format is `Extended` or `Icon`.
+
+
+### isText
+
+```java
+public boolean isText()
+```
+Does the response have text content?
+
+
+### hasText
+
+```java
+public boolean hasText()
+```
+Does this response have actual string data (i.e. string data is not empty)?
+
+
+### isBinary
+
+```java
+public boolean isBinary()
+```
+Is this a response with binary data?
+
+
+### isSuccess
+
+```java
+public boolean isSuccess()
+```
+Is the response a successful response?
+
+
+### isError
+
+```java
+public boolean isError()
+```
+Does the response represent an error?
+
+
+### asVersion
+
+```java
+public AnalysisServerVersion asVersion()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Get the response as a server version.
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asComponentDescription
+
+```java
+public PHXComponentDescription asComponentDescription(boolean asXml)
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse a component description.
+
+**Parameters:**
+- `asXml` - whether to interpret the result as XML
+
+**Returns:**
+- the description
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asList
+
+```java
+public java.util.List asList()
+ throws java.lang.IllegalStateException
+```
+Convert the string data to a list of properties.
+
+**Returns:**
+- the list of items
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the data is not text
+
+
+### asMethodDescriptors
+
+```java
+public java.util.List asMethodDescriptors()
+ throws java.lang.IllegalStateException
+```
+Convert the string data to a list of method descriptors.
+
+**Returns:**
+- the list
+
+**Throws:**
+- `java.lang.IllegalStateException` - if the data is not text
+
+
+### asPropertyDescriptors
+
+```java
+public java.util.List asPropertyDescriptors()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse this response as a sequence of property descriptors.
+
+**Returns:**
+- a set of property descriptors, which may be empty
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asPropertyDescriptors
+
+```java
+public java.util.List asPropertyDescriptors(java.lang.String baseObjectName)
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse this response as a sequence of property descriptors.
+
+**Parameters:**
+- `baseObjectName` - the object to retrieve information for; null for none
+
+**Returns:**
+- a set of property descriptors, which may be empty
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asChunkDescriptor
+
+```java
+public com.phoenix_int.aserver.client.v2.ChunkDescriptor asChunkDescriptor()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse the response as a chunk descriptor.
+
+**Returns:**
+- the chunk descriptor
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asValueDescriptors
+
+```java
+public java.util.List asValueDescriptors()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse the response as a list of value descriptors.
+
+**Returns:**
+- the list, which may be empty
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asVersionHistory
+
+```java
+public PHXComponentBranch asVersionHistory()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse the response as a version history.
+
+**Returns:**
+- the version history
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
+
+### asHierarchy
+
+```java
+public java.util.Map asHierarchy()
+ throws java.lang.IllegalStateException,
+ AnalysisServerException
+```
+Parse the response as a variable hierarchy.
+
+**Returns:**
+- the map from variable paths to values
+
+**Throws:**
+- `java.lang.IllegalStateException` - if this is not a text response
+- `AnalysisServerException` - if the data is not valid
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponseType.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponseType.md
new file mode 100644
index 0000000000..5498328045
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerResponseType.md
@@ -0,0 +1,127 @@
+# Enum: AnalysisServerResponseType
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Enum
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerResponseType
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`, `java.lang.Comparable`
+
+---
+
+**Declaration**
+
+```java
+public enum AnalysisServerResponseType
+extends java.lang.Enum
+```
+Enumeration representing response type.
+
+## Enum Constant Summary
+
+| Enum Constant and Description |
+| --- |
+| `ConnectionError`
A connection error. |
+| `Extended`
An extended, hybrid string+binary response. |
+| `Icon`
An icon. |
+| `Normal`
A normal, string-based response. |
+| `ServerError`
A server error. |
+| `Unknown`
An unknown response type (default for new response objects). |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `static AnalysisServerResponseType` | `valueOf(java.lang.String name)`
Returns the enum constant of this type with the specified name. |
+| `static AnalysisServerResponseType[]` | `values()`
Returns an array containing the constants of this enum type, in the order they are declared. |
+
+### Methods inherited from class java.lang.Enum
+`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`
+
+### Methods inherited from class java.lang.Object
+`getClass, notify, notifyAll, wait, wait, wait`
+
+## Enum Constant Detail
+
+### Normal
+
+```java
+public static final AnalysisServerResponseType Normal
+```
+A normal, string-based response.
+
+### Extended
+
+```java
+public static final AnalysisServerResponseType Extended
+```
+An extended, hybrid string+binary response.
+
+### ServerError
+
+```java
+public static final AnalysisServerResponseType ServerError
+```
+A server error.
+
+### Icon
+
+```java
+public static final AnalysisServerResponseType Icon
+```
+An icon.
+
+### ConnectionError
+
+```java
+public static final AnalysisServerResponseType ConnectionError
+```
+A connection error.
+
+### Unknown
+
+```java
+public static final AnalysisServerResponseType Unknown
+```
+An unknown response type (default for new response objects).
+
+## Method Detail
+
+### values
+
+```java
+public static AnalysisServerResponseType[] values()
+```
+Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
+
+```java
+for (AnalysisServerResponseType c : AnalysisServerResponseType.values())
+ System.out.println(c);
+```
+
+**Returns:**
+- an array containing the constants of this enum type, in the order they are declared
+
+### valueOf
+
+```java
+public static AnalysisServerResponseType valueOf(java.lang.String name)
+```
+Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+
+**Parameters:**
+- `name` - the name of the enum constant to be returned.
+
+**Returns:**
+- the enum constant with the specified name
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
+- `java.lang.NullPointerException` - if the argument is null
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerVersion.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerVersion.md
new file mode 100644
index 0000000000..b9afc2e129
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerVersion.md
@@ -0,0 +1,116 @@
+# Class: AnalysisServerVersion
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerVersion
+```
+
+**Implemented Interfaces**
+
+- `java.lang.Comparable`
+
+---
+**Declaration**
+
+```java
+public class AnalysisServerVersion
+extends java.lang.Object
+implements java.lang.Comparable
+```
+Server protocol version. Useful for determining if a server supports specific features.
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `AnalysisServerVersion(int major, int minor, int build)`
Constructor. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `int` | `compareTo(AnalysisServerVersion o)` |
+| `boolean` | `equals(java.lang.Object obj)` |
+| `int` | `getBuild()`
Get the build. |
+| `int` | `getMajor()`
Get the major version. |
+| `int` | `getMinor()`
Get the minor version. |
+| `int` | `hashCode()` |
+| `java.lang.String` | `toString()` |
+
+### Methods inherited from class java.lang.Object
+`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
+
+## Constructor Detail
+
+### AnalysisServerVersion
+
+```java
+public AnalysisServerVersion(int major,
+ int minor,
+ int build)
+```
+Constructor.
+
+**Parameters:**
+- `major` - the major version
+- `minor` - the minor version
+- `build` - the build number
+
+## Method Detail
+
+### getMajor
+
+```java
+public int getMajor()
+```
+Get the major version.
+
+### getMinor
+
+```java
+public int getMinor()
+```
+Get the minor version.
+
+### getBuild
+
+```java
+public int getBuild()
+```
+Get the build.
+
+### hashCode
+
+```java
+public int hashCode()
+```
+**Overrides:**
+- `hashCode` in class `java.lang.Object`
+
+### equals
+
+```java
+public boolean equals(java.lang.Object obj)
+```
+**Overrides:**
+- `equals` in class `java.lang.Object`
+
+### compareTo
+
+```java
+public int compareTo(AnalysisServerVersion o)
+```
+**Specified by:**
+- `compareTo` in interface `java.lang.Comparable`
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+**Overrides:**
+- `toString` in class `java.lang.Object`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerWaitCallback.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerWaitCallback.md
new file mode 100644
index 0000000000..555e3ac518
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisServerWaitCallback.md
@@ -0,0 +1,107 @@
+# Class: AnalysisServerWaitCallback
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisServerWaitCallback
+```
+
+**Implemented Interfaces**
+
+- [`IAnalysisServerCallback`](IAnalysisServerCallback.md)
+
+---
+
+**Declaration**
+
+```java
+public class AnalysisServerWaitCallback
+extends java.lang.Object
+implements IAnalysisServerCallback
+```
+Callback object which uses a monitor to allow the caller to block until a response is received.
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `AnalysisServerWaitCallback()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| [`AnalysisServerResponse`](AnalysisServerResponse.md) | `getResponse()`
Get the response, or null if it has not been received. |
+| `boolean` | `responseReceived(AnalysisServerResponse response)`
Callback when a response is received. |
+| [`AnalysisServerResponse`](AnalysisServerResponse.md) | `waitForResponse()`
Wait until the response has been received, if it has not already. |
+| [`AnalysisServerResponse`](AnalysisServerResponse.md) | `waitForResponse(int timeout)`
Wait until the response has been received, if it has not already. |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Detail
+
+### AnalysisServerWaitCallback
+
+```java
+public AnalysisServerWaitCallback()
+```
+
+## Method Detail
+
+### getResponse
+
+```java
+public AnalysisServerResponse getResponse()
+```
+Get the response, or null if it has not been received.
+
+### waitForResponse
+
+```java
+public AnalysisServerResponse waitForResponse()
+ throws java.lang.InterruptedException
+```
+Wait until the response has been received, if it has not already.
+
+**Returns:**
+- the response
+
+**Throws:**
+- `java.lang.InterruptedException` - if the current thread is interrupted during the wait
+
+### waitForResponse
+
+```java
+public AnalysisServerResponse waitForResponse(int timeout)
+ throws java.lang.InterruptedException
+```
+Wait until the response has been received, if it has not already.
+
+**Parameters:**
+- `timeout` - the amount of time in ms to wait; 0 for infinite
+
+**Returns:**
+- the response, or null if it has not yet been received
+
+**Throws:**
+- `java.lang.InterruptedException` - if the current thread is interrupted during the wait
+
+### responseReceived
+
+```java
+public boolean responseReceived(AnalysisServerResponse response)
+```
+Callback when a response is received.
+
+**Parameters:**
+- `response` - the response
+
+**Returns:**
+- true if this callback should be removed
+
+**Specified by:**
+- `responseReceived` in interface [`IAnalysisServerCallback`](IAnalysisServerCallback.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisVariableValue.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisVariableValue.md
new file mode 100644
index 0000000000..09edcee04a
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/AnalysisVariableValue.md
@@ -0,0 +1,111 @@
+## Class: AnalysisVariableValue
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.client.v2.AnalysisVariableValue
+```
+
+---
+
+**Declaration**
+
+```java
+public class AnalysisVariableValue
+extends java.lang.Object
+```
+
+Class representing a variable value.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `AnalysisVariableValue(java.lang.String name, boolean isInput, java.lang.String type, java.lang.Object value, boolean isUrl)`
Constructor. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getName()`
Get the variable name. |
+| `java.lang.String` | `getType()`
Get the type of the variable. |
+| `java.lang.String` | `getUrl()`
Get the URL of the variable, or null if none. |
+| `java.lang.Object` | `getValue()`
Get the value of the variable (null if URL). |
+| `boolean` | `isBinary()`
Get whether this is binary data. |
+| `boolean` | `isInput()`
Get whether this is an input. |
+
+### Methods inherited from class java.lang.Object
+
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Detail
+
+### AnalysisVariableValue
+
+```java
+public AnalysisVariableValue(java.lang.String name,
+ boolean isInput,
+ java.lang.String type,
+ java.lang.Object value,
+ boolean isUrl)
+ throws java.lang.NullPointerException
+```
+Constructor.
+
+**Parameters:**
+- `name` - the variable name
+- `isInput` - whether this variable is an input
+- `type` - the type of the variable, if specified
+- `value` - the value of the variable (or the URL); use byte[] for binary data
+- `isUrl` - whether this is a URL
+
+**Throws:**
+- `java.lang.NullPointerException` - if name or value is null
+- `java.lang.IllegalArgumentException` - if isBinary and isUrl are both true
+
+## Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+Get the variable name.
+
+### isInput
+
+```java
+public boolean isInput()
+```
+Get whether this is an input.
+
+### isBinary
+
+```java
+public boolean isBinary()
+```
+Get whether this is binary data.
+
+### getUrl
+
+```java
+public java.lang.String getUrl()
+```
+Get the URL of the variable, or null if none.
+
+### getType
+
+```java
+public java.lang.String getType()
+```
+Get the type of the variable.
+
+### getValue
+
+```java
+public java.lang.Object getValue()
+```
+Get the value of the variable (null if URL). Typically a `String` for text values or a `byte[]` for binary.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/IAnalysisServerCallback.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/IAnalysisServerCallback.md
new file mode 100644
index 0000000000..01cf132f70
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/IAnalysisServerCallback.md
@@ -0,0 +1,37 @@
+## Interface: IAnalysisServerCallback
+
+**Package:** `com.phoenix_int.aserver.client.v2`
+
+**All Known Implementing Classes:**
+- [AnalysisServerWaitCallback](AnalysisServerWaitCallback.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IAnalysisServerCallback
+```
+
+Callback for ModelCenter Remote Execution events.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `boolean` | `responseReceived(AnalysisServerResponse response)`
Callback when a response is received. |
+
+## Method Detail
+
+### responseReceived
+
+```java
+boolean responseReceived(AnalysisServerResponse response)
+```
+Callback when a response is received.
+
+**Parameters:**
+- `response` - the response
+
+**Returns:**
+- true if this callback should be removed
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-summary.md
new file mode 100644
index 0000000000..9f65c20b3c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-summary.md
@@ -0,0 +1,28 @@
+# Package com.phoenix_int.aserver.client.v2
+
+## Interface Summary
+
+| Interface | Description |
+| --- | --- |
+| [IAnalysisServerCallback](IAnalysisServerCallback.md) | Callback for ModelCenter Remote Execution events. |
+
+## Class Summary
+| Class | Description |
+| --- | --- |
+| [AnalysisServerClient](AnalysisServerClient.md) | ModelCenter Remote Execution client object. |
+| [AnalysisServerResponse](AnalysisServerResponse.md) | Implementation of PHXResponse along lines of PHXResponse in C++ code. |
+| [AnalysisServerVersion](AnalysisServerVersion.md) | Server protocol version. |
+| [AnalysisServerWaitCallback](AnalysisServerWaitCallback.md) | Callback object which uses a monitor to allow the caller to block until a response is received. |
+| [AnalysisVariableValue](AnalysisVariableValue.md) | Class representing a variable value. |
+
+## Enum Summary
+
+| Enum | Description |
+| --- | --- |
+| [AnalysisServerResponseType](AnalysisServerResponseType.md) | Enumeration representing response type. |
+
+## Exception Summary
+
+| Exception | Description |
+| --- | --- |
+| [AnalysisServerException](AnalysisServerException.md) | Exception thrown when a request fails on the server. |
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-tree.md
new file mode 100644
index 0000000000..70d7a9327e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/client/v2/package-tree.md
@@ -0,0 +1,26 @@
+# Hierarchy For Package com.phoenix_int.aserver.client.v2
+
+**Package Hierarchies:**
+- [All Packages](../../../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerClient](AnalysisServerClient.md) (implements java.lang.AutoCloseable)
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerResponse](AnalysisServerResponse.md)
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerVersion](AnalysisServerVersion.md) (implements java.lang.Comparable)
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerWaitCallback](AnalysisServerWaitCallback.md) (implements com.phoenix_int.aserver.client.v2.[IAnalysisServerCallback](IAnalysisServerCallback.md))
+ - com.phoenix_int.aserver.client.v2.[AnalysisVariableValue](AnalysisVariableValue.md)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerException](AnalysisServerException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.client.v2.[IAnalysisServerCallback](IAnalysisServerCallback.md)
+
+## Enum Hierarchy
+
+- java.lang.Object
+ - java.lang.Enum`` (implements java.lang.Comparable``, java.io.Serializable)
+ - com.phoenix_int.aserver.client.v2.[AnalysisServerResponseType](AnalysisServerResponseType.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXFactory.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXFactory.md
new file mode 100644
index 0000000000..86796ee4fb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXFactory.md
@@ -0,0 +1,136 @@
+# Interface: IPHXFactory
+
+**Package:** `com.phoenix_int.aserver.library`
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXFactory
+```
+
+A factory is a class that has the logic for turning a file on disk into a real component instance and for retrieving component meta data.
+
+> **Deprecated**: It is preferred to use `IPHXFactory2`, as this class has methods that can leak resources.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | `describe(java.io.File dir, java.lang.String compClass, java.lang.String virtualDir)`
**Deprecated.** Describes the specified component. |
+| `java.io.File` | `getFileFor(java.io.File dir, java.lang.String compClass, java.lang.String virtualDir)`
**Deprecated.** Returns a File object which points to the file on disk which contains the implementation of this component. |
+| [`IPHXComponent`](../IPHXComponent.md) | `instantiate(java.io.File dir, java.lang.String compClass, java.lang.String virtualDir)`
**Deprecated.** It is preferred to use `IPHXFactory2.instantiateManaged(java.io.File, java.lang.String, java.lang.String)` as this method can lead to resource leaks. |
+| `java.util.Collection` | `listComponents(java.io.File dir, java.lang.String virtualDir)`
**Deprecated.** List out all of the identifiers (historically "class" names) for a given directory as a collection of strings. |
+
+## Method Detail
+
+### listComponents
+
+```java
+java.util.Collection listComponents(java.io.File dir,
+ java.lang.String virtualDir)
+```
+
+> **Deprecated.** List out all of the identifiers (historically "class" names) for a given directory as a collection of strings.
+
+Much of the documentation was added to this class retroactively and may make assumptions or have other unknown limitations.
+
+**Parameters:**
+- `dir` - a directory to search for components
+- `virtualDir` - the virtual directory to search
+
+**Returns:**
+- an array of "class" names. For non-jar factories, this just means any sub-file identifier. Because a file can have multiple components (at least jars can) this text is used to identify them. This text is later fed back to this API via the other three methods in this interface. So really it just was a list of text that identify sub-components inside a single file. Even though this is generic and not enforced by the compiler only lists of strings should be used.
+
+### instantiate
+
+```java
+@Deprecated
+IPHXComponent instantiate(java.io.File dir,
+ java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ java.lang.reflect.InvocationTargetException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ java.io.IOException,
+ com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException
+```
+
+> **Deprecated.** It is preferred to use `IPHXFactory2.instantiateManaged(java.io.File, java.lang.String, java.lang.String)` as this method can lead to resource leaks. Creates an instance of the specified component.
+
+**Parameters:**
+- `dir` - a directory to search for components
+- `compClass` - the component class identifier
+- `virtualDir` - the virtual directory
+
+**Returns:**
+- an instance of the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the specified class does not exist
+- `java.lang.IllegalAccessException` - the class can't be instantiated
+- `java.lang.InstantiationException` - the class can't be instantiated
+- `java.lang.reflect.InvocationTargetException` - if an exception occurs while instantiating the specified class
+- [`PHXServerSideException`](../client/PHXServerSideException.md)
+- `java.net.MalformedURLException`
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException`
+
+### describe
+
+```java
+PHXComponentDescription describe(java.io.File dir,
+ java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException
+```
+
+> **Deprecated.** Describes the specified component. Should throw `ClassNotFoundException` if unable to handle/parse the given file.
+
+Much of the documentation was added to this class retroactively and may make assumptions or have other unknown limitations.
+
+**Parameters:**
+- `dir` - the path on disk to the file to be described
+- `compClass` - This is the same "class" string that was returned by the `listComponents` method. This usually is not a class name, but it was originally but expanded beyond that -- it seems now just to be the identifier that exceeds the file name (like a file that implements multiple components).
+- `virtualDir` - the virtual directory
+
+**Returns:**
+- an instance of the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - thrown if the class is not found, or the given factory is not able to handle this file. Callers of this method often expect this exception if the factory cannot handle the given file/compClass(id).
+- `java.io.IOException`
+- [`PHXServerSideException`](../client/PHXServerSideException.md)
+- `java.net.MalformedURLException`
+
+### getFileFor
+
+```java
+java.io.File getFileFor(java.io.File dir,
+ java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.io.IOException
+```
+
+> **Deprecated.** Returns a File object which points to the file on disk which contains the implementation of this component.
+
+**Parameters:**
+- `dir` - the directory containing the component
+- `compClass` - the component class identifier
+- `virtualDir` - the virtual directory
+
+**Returns:**
+- a File object pointing to the implementation file
+
+**Throws:**
+- `java.lang.ClassNotFoundException`
+- `java.io.IOException`
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXLibrarian.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXLibrarian.md
new file mode 100644
index 0000000000..e750e2e3c5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXLibrarian.md
@@ -0,0 +1,191 @@
+# Interface: IPHXLibrarian
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**All Known Subinterfaces:**
+- [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+- [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md)
+
+**All Known Implementing Classes:**
+- [`PHXCVSLibrarian`](PHXCVSLibrarian.md)
+- [`PHXDirectoryLibrarian`](PHXDirectoryLibrarian.md)
+- [`PHXLibrarianCombiner`](PHXLibrarianCombiner.md)
+- [`PHXLibrarianMounter`](PHXLibrarianMounter.md)
+- [`PHXUserDirLibrarian`](PHXUserDirLibrarian.md)
+
+---
+
+**Declaration**
+
+```java
+@Deprecated
+public interface IPHXLibrarian
+```
+
+**Deprecated**: It is preferred to use `IPHXLibrarian2` as this class uses methods that can leak resources.
+
+This is an interface for classes that manage a directory hierarchy of available components. An instance of this class is generated for each incoming connection.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `cleanUp()`
**Deprecated.** Tells this librarian to clean up any resources used. |
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | `describe(java.lang.String compClass, java.lang.String virtualDirName)`
**Deprecated.** Describes the specified component. |
+| `java.lang.String` | `getQueues(java.lang.String compClass, java.lang.String virtualDirName)`
**Deprecated.** Gets the available run queues. |
+| `void` | `initialize(com.phoenix_int.aserver.ascore.PHXConnection connection, [`IPHXFactory`](IPHXFactory.md) factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)`
**Deprecated.** Tells this librarian to configure itself based on the XML node passed in. |
+| [`IPHXComponent`](../IPHXComponent.md) | `instantiate(java.lang.String compClass, java.lang.String virtualDirName)`
**Deprecated.** |
+| [`IPHXComponent`](../IPHXComponent.md) | `instantiate(java.lang.String compClass, java.lang.String virtualDirName, java.lang.String connector, java.lang.String queue)`
**Deprecated.** |
+| `java.util.Collection` | `listComponents(java.lang.String virtualDirName)`
**Deprecated.** Lists components within a specified directory. |
+| `java.util.Collection` | `listDirectories(java.lang.String virtualDir)`
**Deprecated.** Lists any available sub-directories from a particular directory. |
+
+## Method Detail
+
+### initialize
+
+```java
+void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
+ IPHXFactory factories,
+ com.phoenix_int.aserver.ascore.PHXAServerArgs args,
+ org.w3c.dom.Node xmlOptions)
+ throws java.lang.Exception
+```
+
+**Deprecated.** Tells this librarian to configure itself based on the XML node passed in. The XML node should be a `` node whose format is specific to the particular type of librarian.
+
+**Throws:**
+- `java.lang.Exception`
+
+### cleanUp
+
+```java
+void cleanUp()
+```
+
+**Deprecated.** Tells this librarian to clean up any resources used.
+
+### listComponents
+
+```java
+java.util.Collection listComponents(java.lang.String virtualDirName)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+
+**Deprecated.** Lists components within a specified directory.
+
+**Parameters:**
+- `virtualDirName` - The directory the client asked for
+
+**Returns:**
+- a Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- com.phoenix_int.aserver.security.PHXAccessDeniedException
+
+### listDirectories
+
+```java
+java.util.Collection listDirectories(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+
+**Deprecated.** Lists any available sub-directories from a particular directory.
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- a Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- com.phoenix_int.aserver.security.PHXAccessDeniedException
+
+### instantiate
+
+```java
+@Deprecated
+IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDirName)
+ throws java.lang.Exception
+```
+
+**Deprecated.** Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDirName` - The directory the client asked for
+
+**Returns:**
+- an instance of the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiate
+
+```java
+@Deprecated
+IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDirName,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+
+**Deprecated.**
+
+**Throws:**
+- `java.lang.Exception`
+
+### describe
+
+```java
+PHXComponentDescription describe(java.lang.String compClass,
+ java.lang.String virtualDirName)
+ throws java.lang.Exception
+```
+
+**Deprecated.** Describes the specified component. It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDirName` - The directory the client asked for
+
+**Returns:**
+- a description of the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
+### getQueues
+
+```java
+java.lang.String getQueues(java.lang.String compClass,
+ java.lang.String virtualDirName)
+ throws java.lang.Exception
+```
+
+**Deprecated.** Gets the available run queues. It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDirName` - The directory the client asked for
+
+**Returns:**
+- a list of queues for the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian.md
new file mode 100644
index 0000000000..2da28ae6d8
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian.md
@@ -0,0 +1,63 @@
+# Interface: IPHXVersionedLibrarian
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**All Superinterfaces:**
+- [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**All Known Subinterfaces:**
+- [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md)
+
+**All Known Implementing Classes:**
+- [`PHXCVSLibrarian`](PHXCVSLibrarian.md)
+- [`PHXLibrarianCombiner`](PHXLibrarianCombiner.md)
+- [`PHXLibrarianMounter`](PHXLibrarianMounter.md)
+- [`PHXDirectoryLibrarian`](PHXDirectoryLibrarian.md)
+
+---
+
+**Declaration**
+
+```java
+@Deprecated
+public interface IPHXVersionedLibrarian
+extends IPHXLibrarian
+```
+
+**Deprecated**: It is preferred to use `IPHXVersionedLibrarian3` as this class has methods that can leak resources.
+
+This extends the [`IPHXLibrarian`](IPHXLibrarian.md) interface to include version information about components.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `PHXComponentBranch` | `getComponentHistory(java.lang.String compClass, java.lang.String virtualDir)`
**Deprecated.** Gets all version information about a particular component. |
+
+### Methods inherited from interface [`IPHXLibrarian`](IPHXLibrarian.md):
+`cleanUp`, `describe`, `getQueues`, `initialize`, `instantiate`, `instantiate`, `listComponents`, `listDirectories`
+
+## Method Detail
+
+### getComponentHistory
+
+```java
+PHXComponentBranch getComponentHistory(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+
+**Deprecated.** Gets all version information about a particular component. It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of [`PHXComponentBranch`](../PHXComponentBranch.md) which contains all the versions and sub-branches available
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian2.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian2.md
new file mode 100644
index 0000000000..55beb08b62
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/IPHXVersionedLibrarian2.md
@@ -0,0 +1,53 @@
+# Interface: IPHXVersionedLibrarian2
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**All Superinterfaces:**
+- [`IPHXLibrarian`](IPHXLibrarian.md)
+- [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+
+**All Known Implementing Classes:**
+- [`PHXCVSLibrarian`](PHXCVSLibrarian.md)
+- [`PHXLibrarianCombiner`](PHXLibrarianCombiner.md)
+- [`PHXLibrarianMounter`](PHXLibrarianMounter.md)
+
+---
+
+**Declaration**
+
+```java
+@Deprecated
+public interface IPHXVersionedLibrarian2
+extends IPHXVersionedLibrarian
+```
+
+**Deprecated**: It is preferred to use `IPHXVersionedLibrarian3` as this class supports methods that can cause file leaks.
+
+This extends the [`IPHXLibrarian`](IPHXLibrarian.md) interface to include version information about components.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getBranchesAndTags()`
**Deprecated.** Fetches a list of all branches and tags. |
+
+### Methods inherited from interface [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+`getComponentHistory`
+
+### Methods inherited from interface [`IPHXLibrarian`](IPHXLibrarian.md)
+`cleanUp`, `describe`, `getQueues`, `initialize`, `instantiate`, `instantiate`, `listComponents`, `listDirectories`
+
+## Method Detail
+
+### getBranchesAndTags
+
+```java
+java.lang.String getBranchesAndTags()
+ throws java.lang.Exception
+```
+
+**Deprecated.** Fetches a list of all branches and tags.
+
+**Throws:**
+- `java.lang.Exception` - If anything goes wrong
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXCVSLibrarian.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXCVSLibrarian.md
new file mode 100644
index 0000000000..fc4052198a
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXCVSLibrarian.md
@@ -0,0 +1,397 @@
+# Class: PHXCVSLibrarian
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.library.PHXCVSLibrarian
+```
+
+**Implemented Interfaces**
+
+- [`IPHXLibrarian`](IPHXLibrarian.md), [`IPHXLibrarian2`](IPHXLibrarian2.md), [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md), [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md), [`IPHXVersionedLibrarian3`](IPHXVersionedLibrarian3.md)
+
+---
+**Declaration**
+
+```java
+public class PHXCVSLibrarian
+extends java.lang.Object
+implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3
+```
+
+Implementation of [`IPHXLibrarian`](IPHXLibrarian.md) which loads files out of CVS. This class generates a directory in the scratch directory called "CVSLIB" which contains its cache data. A single copy of the latest version out of cvs is kept there for component browsing. When a component is requested with "instantiate", it generates a temp directory in CVSLIB and checks out the entire directory that contains that component into the temp dir. The temp dir gets deleted when the connection is dropped. In order to have consistent files, it figures out the commit time for the component requested, and then checks out all the files in the directory from that same date.
+
+The required configuration parameters are defined on the [`initialize`](#initialize) method.
+
+This class requires passwordless access to cvs and does not currently provide any access control functions (.mcre files do not work).
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXCVSLibrarian()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | [`cleanUp`](#cleanup)
Delete all the temp directories |
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | [`describe`](#describe)(java.lang.String compClass, java.lang.String virtualDir)
Describes the specified component. |
+| `java.lang.String` | [`getBranchesAndTags`](#getbranchesandtags)()
Does not support branching and tagging |
+| [`PHXComponentBranch`](../PHXComponentBranch.md) | [`getComponentHistory`](#getcomponenthistory)(java.lang.String compClass, java.lang.String virtualDir)
Gets all version information about a particular component |
+| `java.lang.String` | [`getQueues`](#getqueues)(java.lang.String compClass, java.lang.String virtualDir)
Method for getting Queues from CenterLink, MCRE just returns blank string |
+| `void` | [`initialize`](#initialize)(com.phoenix_int.aserver.ascore.PHXConnection connection, [`IPHXFactory`](IPHXFactory.md) factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)
There are 2 options for this class. |
+| [`IPHXComponent`](../IPHXComponent.md) | [`instantiate`](#instantiate)(java.lang.String compClass, java.lang.String virtualDir)
Creates an instance of the specified component. |
+| [`IPHXComponent`](../IPHXComponent.md) | [`instantiate`](#instantiate)(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | [`instantiateManaged`](#instantiatemanaged)(java.lang.String compClass, java.lang.String virtualDir)
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | [`instantiateManaged`](#instantiatemanaged)(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)
Creates an instance of the specified component. |
+| `java.util.Collection` | [`listComponents`](#listcomponents)(java.lang.String virtualDir)
Returns the components in a specific directory |
+| `java.util.Collection` | [`listDirectories`](#listdirectories)(java.lang.String virtualDir)
Lists available sub-directories for the specified path |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXCVSLibrarian
+
+```java
+public PHXCVSLibrarian()
+```
+
+## Method Detail
+
+### initialize
+
+```java
+public void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
+ IPHXFactory factories,
+ com.phoenix_int.aserver.ascore.PHXAServerArgs args,
+ org.w3c.dom.Node xmlOptions)
+ throws java.lang.Exception
+```
+There are 2 options for this class. The CVSROOT which should be set as if you were using the command line tools and the module in CVS which is the base for all the published components. The startModule cannot be blank.
+
+The XML format is:
+
+```java
+
+ pathfinder:/shared/cvs
+ analyses
+
+```
+
+**Specified by:**
+- `initialize` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### cleanUp
+
+```java
+public void cleanUp()
+```
+Delete all the temp directories
+
+**Specified by:**
+- `cleanUp` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+### listComponents
+
+```java
+public java.util.Collection listComponents(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Returns the components in a specific directory
+
+**Specified by:**
+- `listComponents` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- an array of class names
+
+**Throws:**
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException` - if the directory could not be scanned
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md)
+
+### listDirectories
+
+```java
+public java.util.Collection listDirectories(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Lists available sub-directories for the specified path
+
+**Specified by:**
+- `listDirectories` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- a Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md)
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException`
+
+### instantiate
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.ClassNotFoundException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ java.lang.reflect.InvocationTargetException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
+ PHXNoSuchCategoryException
+```
+Creates an instance of the specified component.
+
+**Specified by:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - the directory to search for the component class
+
+**Returns:**
+- an instance of the associated component class with the file loaded
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- `java.lang.IllegalAccessException` - cannot call constructor
+- `java.lang.InstantiationException` - cannot call constructor
+- `java.lang.reflect.InvocationTargetException` - if an exception if the specified component exists, but is not of the right type, or if an exception occurs while creating the class or loading the setup file
+- `java.io.IOException`
+- [`PHXServerSideException`](../PHXServerSideException.md)
+- `java.net.MalformedURLException`
+- `com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException`
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md)
+
+### instantiate
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ java.lang.reflect.InvocationTargetException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
+ PHXNoSuchCategoryException
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md). It is important that this class throws [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified by:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- an instance of the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `java.lang.reflect.InvocationTargetException`
+- `java.io.IOException`
+- [`PHXServerSideException`](../PHXServerSideException.md)
+- `java.net.MalformedURLException`
+- `com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException`
+
+### instantiateManaged
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.ClassNotFoundException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ java.lang.reflect.InvocationTargetException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
+ PHXNoSuchCategoryException
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md). It is important that this class throws [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified by:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+- `connector` - name of the connector object to use
+- `queue` - name of the queue object to use
+
+**Returns:**
+- an instance of the specified component class and its managed resources
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `java.lang.reflect.InvocationTargetException`
+- `java.io.IOException`
+- [`PHXServerSideException`](../PHXServerSideException.md)
+- `java.net.MalformedURLException`
+- `com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException`
+
+### instantiateManaged
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ java.lang.reflect.InvocationTargetException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException,
+ PHXNoSuchCategoryException
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md). It is important that this class throws [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified by:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- an instance of the specified component class and its managed resources
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `java.lang.reflect.InvocationTargetException`
+- `java.io.IOException`
+- [`PHXServerSideException`](../PHXServerSideException.md)
+- `java.net.MalformedURLException`
+- `com.phoenix_int.aserver.util.proxywrapper.PHXProxyNotAllowedException`
+
+### getComponentHistory
+
+```java
+public PHXComponentBranch getComponentHistory(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ PHXNoSuchCategoryException,
+ java.io.IOException
+```
+Gets all version information about a particular component. It is important that this class throws [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) and ClassNotFoundException in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified by:**
+- `getComponentHistory` in interface [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of [`PHXComponentBranch`](../PHXComponentBranch.md) which contains all the versions and sub-branches available
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.io.IOException`
+
+### describe
+
+```java
+public PHXComponentDescription describe(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.ClassNotFoundException,
+ java.io.IOException,
+ PHXServerSideException,
+ java.net.MalformedURLException,
+ PHXNoSuchCategoryException
+```
+Describes the specified component. TODO: Currently all descriptions come from the head.
+
+**Specified by:**
+- `describe` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - the directory to search for the component class
+
+**Returns:**
+- a description of the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.io.IOException`
+- [`PHXServerSideException`](../PHXServerSideException.md)
+- `java.net.MalformedURLException`
+
+### getQueues
+
+```java
+public java.lang.String getQueues(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Method for getting Queues from CenterLink, MCRE just returns blank string
+
+**Specified by:**
+- `getQueues` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - the class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- a list of queues for the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](../PHXNoSuchCategoryException.md) - If the virtualDirName passed in is invalid
+- `java.lang.ClassNotFoundException` - If compClass doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
+### getBranchesAndTags
+
+```java
+public java.lang.String getBranchesAndTags()
+```
+Does not support branching and tagging
+
+**Specified by:**
+- `getBranchesAndTags` in interface [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md)
+
+**Returns:**
+- always returns empty string
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXDirectoryLibrarian.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXDirectoryLibrarian.md
new file mode 100644
index 0000000000..8bf2857144
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXDirectoryLibrarian.md
@@ -0,0 +1,183 @@
+# Class: PHXDirectoryLibrarian
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.library.PHXDirectoryLibrarian
+```
+
+**Implemented Interfaces**
+
+- [`IPHXLibrarian`](./IPHXLibrarian.md)
+
+---
+**Declaration**
+
+```java
+public class PHXDirectoryLibrarian
+extends java.lang.Object
+implements IPHXLibrarian
+```
+
+This class implements a librarian that uses a directory on disk to store and retrieve files. It provides methods for adding, removing, and finding files in the directory, as well as for managing categories and associations.
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `private java.io.File` | `directory`
The directory used by this librarian. |
+| `private java.util.Map` | `categories`
Map of categories managed by this librarian. |
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXDirectoryLibrarian(java.io.File directory)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addFile(java.io.File file)`
Adds a file to the directory. |
+| `void` | `removeFile(java.io.File file)`
Removes a file from the directory. |
+| `java.io.File` | `findFile(java.lang.String name)`
Finds a file by name. |
+| `void` | `addCategory(java.lang.String category)`
Adds a category. |
+| `void` | `removeCategory(java.lang.String category)`
Removes a category. |
+| `java.util.List` | `listCategories()`
Lists all categories. |
+| `void` | `addAssociation(java.lang.String key, java.lang.String value)`
Adds an association. |
+| `void` | `removeAssociation(java.lang.String key)`
Removes an association. |
+| `java.lang.String` | `findAssociation(java.lang.String key)`
Finds an association by key. |
+
+## Field Detail
+
+### directory
+
+```
+private java.io.File directory
+```
+The directory used by this librarian.
+
+### categories
+
+```
+private java.util.Map categories
+```
+Map of categories managed by this librarian.
+
+## Constructor Detail
+
+### PHXDirectoryLibrarian
+
+```
+public PHXDirectoryLibrarian(java.io.File directory)
+```
+
+**Parameters:**
+- `directory` - The directory to be used by this librarian.
+
+## Method Detail
+
+### addFile
+
+```
+public void addFile(java.io.File file)
+```
+Adds a file to the directory.
+
+**Parameters:**
+- `file` - The file to add.
+
+### removeFile
+
+```
+public void removeFile(java.io.File file)
+```
+Removes a file from the directory.
+
+**Parameters:**
+- `file` - The file to remove.
+
+### findFile
+
+```
+public java.io.File findFile(java.lang.String name)
+```
+Finds a file by name.
+
+**Parameters:**
+- `name` - The name of the file to find.
+
+**Returns:**
+- The file if found, or null otherwise.
+
+### addCategory
+
+```
+public void addCategory(java.lang.String category)
+```
+Adds a category.
+
+**Parameters:**
+- `category` - The category to add.
+
+### removeCategory
+
+```
+public void removeCategory(java.lang.String category)
+```
+Removes a category.
+
+**Parameters:**
+- `category` - The category to remove.
+
+### listCategories
+
+```
+public java.util.List listCategories()
+```
+Lists all categories.
+
+**Returns:**
+- A list of all categories.
+
+### addAssociation
+
+```
+public void addAssociation(java.lang.String key, java.lang.String value)
+```
+Adds an association.
+
+**Parameters:**
+- `key` - The key for the association.
+- `value` - The value for the association.
+
+### removeAssociation
+
+```
+public void removeAssociation(java.lang.String key)
+```
+Removes an association.
+
+**Parameters:**
+- `key` - The key for the association to remove.
+
+### findAssociation
+
+```
+public java.lang.String findAssociation(java.lang.String key)
+```
+Finds an association by key.
+
+**Parameters:**
+- `key` - The key for the association to find.
+
+**Returns:**
+- The value associated with the key, or null if not found.
+
+## See Also
+
+- [`IPHXLibrarian`](./IPHXLibrarian.md)
+- [`PHXCVSLibrarian`](./PHXCVSLibrarian.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianCombiner.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianCombiner.md
new file mode 100644
index 0000000000..db0ba18ab1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianCombiner.md
@@ -0,0 +1,341 @@
+# Class: PHXLibrarianCombiner
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.library.PHXLibrarianCombiner
+```
+
+**Implemented Interfaces**
+
+- [`IPHXLibrarian`](IPHXLibrarian.md), [`IPHXLibrarian2`](IPHXLibrarian2.md), [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md), [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md), `IPHXVersionedLibrarian3`
+
+---
+
+**Declaration**
+
+```java
+public class PHXLibrarianCombiner
+extends java.lang.Object
+implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3
+```
+
+This class combines several sub-librarians, adding dir lists and component lists together. If there is a conflict in component or directory name, the first librarian wins out, and no error is given.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXLibrarianCombiner()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addLibrarian(IPHXLibrarian l)`
Adds a librarian to our list |
+| `void` | `cleanUp()`
Recursively tells kids to clean themselves up |
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | `describe(java.lang.String compClass, java.lang.String virtualDir)`
Describes the specified component. |
+| `java.lang.String` | `getBranchesAndTags()`
Fetches a list of all branches and tags |
+| [`PHXComponentBranch`](../PHXComponentBranch.md) | `getComponentHistory(java.lang.String compClass, java.lang.String virtualDir)`
Gets all version information about a particular component |
+| `java.lang.String` | `getQueues(java.lang.String compClass, java.lang.String virtualDir)`
Get the queues for the specified component. |
+| `void` | `initialize(com.phoenix_int.aserver.ascore.PHXConnection connection, IPHXFactory factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)`
The XML initialization information for this class is simply a list of tags which contain and tags inside. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)` |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)`
Creates an instance of the specified component. |
+| `java.util.Collection` | `listComponents(java.lang.String virtualDir)`
Returns the components in a specific directory |
+| `java.util.Collection` | `listDirectories(java.lang.String virtualDir)`
Returns sub-directories from a specified directory |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXLibrarianCombiner
+
+```java
+public PHXLibrarianCombiner()
+```
+
+## Method Detail
+
+### addLibrarian
+
+```java
+public void addLibrarian(IPHXLibrarian l)
+```
+Adds a librarian to our list
+
+### initialize
+
+```java
+public void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
+ IPHXFactory factories,
+ com.phoenix_int.aserver.ascore.PHXAServerArgs args,
+ org.w3c.dom.Node xmlOptions)
+ throws java.lang.Exception
+```
+The XML initialization information for this class is simply a list of `` tags which contain `` and `` tags inside.
+
+Example:
+
+```java
+
+
+ com.phoenix_int.aserver.library.PHXDirectoryLibrarian
+ ...
+
+
+ ....
+
+
+```
+
+**Specified By:**
+- `initialize` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### cleanUp
+
+```java
+public void cleanUp()
+```
+Recursively tells kids to clean themselves up
+
+**Specified By:**
+- `cleanUp` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+### listComponents
+
+```java
+public java.util.Collection listComponents(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Returns the components in a specific directory
+
+**Specified By:**
+- `listComponents` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An array of class names
+
+**Throws:**
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException` - if the directory could not be scanned
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+
+### listDirectories
+
+```java
+public java.util.Collection listDirectories(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Returns sub-directories from a specified directory
+
+**Specified By:**
+- `listDirectories` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException`
+
+### instantiate
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component.
+
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory to search for the component class
+
+**Returns:**
+- An instance of the associated component class with the file loaded
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- `java.lang.IllegalAccessException` - cannot call constructor
+- `java.lang.InstantiationException` - cannot call constructor
+- `java.lang.reflect.InvocationTargetException` - if an exception if the specified component exists, but is not of the right type, or if an exception occurs while creating the class or loading the setup file
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiate (overload)
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### instantiateManaged
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiateManaged (overload)
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+- `connector` - Name of the connector object to use
+- `queue` - Name of the queue object to use
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### describe
+
+```java
+public PHXComponentDescription describe(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Describes the specified component.
+
+**Specified By:**
+- `describe` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A description of the specified component class ([`PHXComponentDescription`](../PHXComponentDescription.md))
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything goes wrong
+
+### getQueues
+
+```java
+public java.lang.String getQueues(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Get the queues for the specified component.
+
+**Specified By:**
+- `getQueues` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A list of queues of the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything goes wrong
+
+### getComponentHistory
+
+```java
+public PHXComponentBranch getComponentHistory(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Gets all version information about a particular component.
+
+**Specified By:**
+- `getComponentHistory` in interface [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of [`PHXComponentBranch`](../PHXComponentBranch.md) which contains all the versions and sub-branches available
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
+### getBranchesAndTags
+
+```java
+public java.lang.String getBranchesAndTags()
+ throws java.lang.Exception
+```
+Fetches a list of all branches and tags.
+
+**Specified By:**
+- `getBranchesAndTags` in interface [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md)
+
+**Throws:**
+- `java.lang.Exception` - If anything goes wrong
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianMounter.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianMounter.md
new file mode 100644
index 0000000000..868c375456
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXLibrarianMounter.md
@@ -0,0 +1,342 @@
+# Class: PHXLibrarianMounter
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.library.PHXLibrarianMounter
+```
+
+**Implemented Interfaces**
+
+- [`IPHXLibrarian`](IPHXLibrarian.md), [`IPHXLibrarian2`](IPHXLibrarian2.md), [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md), [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md), `IPHXVersionedLibrarian3`
+
+---
+
+**Declaration**
+
+```java
+public class PHXLibrarianMounter
+extends java.lang.Object
+implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3
+```
+
+This class has the functionality of providing a "virtual" directory tree where different sub-librarians can be mounted very similarly to the UNIX concept of mounting filesystems. When a librarian is mounted to a particular location, any components and directories that are available via a librarian mounted higher up in the directory tree are hidden.
+
+This class will automatically add empty directories as necessary to ensure that you can "browse" to a mount point. For example, if you have not mounted anything to the root ("" or "/"), you can still mount to a subdirectory like "mount/here" and this class will create the empty directory "mount".
+
+Only one librarian can be mounted in a given location. Use a [`PHXLibrarianCombiner`](PHXLibrarianCombiner.md) to put multiple librarians in the same place.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXLibrarianMounter()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addLibrarian(java.lang.String mountPoint, IPHXLibrarian l)`
Creates a librarian mount. |
+| `void` | `cleanUp()`
Recursively calls cleanUp on all our mount points |
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | `describe(java.lang.String compClass, java.lang.String virtualDir)`
Describes the specified component. |
+| `java.lang.String` | `getBranchesAndTags()`
Fetches a list of all branches and tags |
+| [`PHXComponentBranch`](../PHXComponentBranch.md) | `getComponentHistory(java.lang.String compClass, java.lang.String virtualDir)`
Gets all version information about a particular component |
+| `java.lang.String` | `getQueues(java.lang.String compClass, java.lang.String virtualDir)`
Gets queues for the specified component. |
+| `void` | `initialize(com.phoenix_int.aserver.ascore.PHXConnection connection, IPHXFactory factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)`
The XML initialization information for this class is simply a list of tags which contain , , and tags inside. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)` |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)`
Creates an instance of the specified component. |
+| `java.util.Collection` | `listComponents(java.lang.String virtualDir)`
Returns the components in a specific directory |
+| `java.util.Collection` | `listDirectories(java.lang.String virtualDir)`
Lists any available sub-directories from a particular directory |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXLibrarianMounter
+
+```java
+public PHXLibrarianMounter()
+```
+
+## Method Detail
+
+### addLibrarian
+
+```java
+public void addLibrarian(java.lang.String mountPoint,
+ IPHXLibrarian l)
+```
+Creates a librarian mount.
+
+### initialize
+
+```java
+public void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
+ IPHXFactory factories,
+ com.phoenix_int.aserver.ascore.PHXAServerArgs args,
+ org.w3c.dom.Node xmlOptions)
+```
+The XML initialization information for this class is simply a list of `` tags which contain ``, ``, and `` tags inside.
+
+Example:
+
+```java
+
+
+ /mounthere
+ com.phoenix_int.aserver.library.PHXDirectoryLibrarian
+ ...
+
+
+ ....
+
+
+```
+
+**Specified By:**
+- `initialize` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+### cleanUp
+
+```java
+public void cleanUp()
+```
+Recursively calls cleanUp on all our mount points
+
+**Specified By:**
+- `cleanUp` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+### listComponents
+
+```java
+public java.util.Collection listComponents(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Returns the components in a specific directory
+
+**Specified By:**
+- `listComponents` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An array of class names
+
+**Throws:**
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException` - if the directory could not be scanned
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+
+### listDirectories
+
+```java
+public java.util.Collection listDirectories(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Lists any available sub-directories from a particular directory
+
+**Specified By:**
+- `listDirectories` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException`
+
+### instantiate
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component.
+
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory to search for the component class
+
+**Returns:**
+- An instance of the associated component class with the file loaded
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- `java.lang.IllegalAccessException` - cannot call constructor
+- `java.lang.InstantiationException` - cannot call constructor
+- `java.lang.reflect.InvocationTargetException` - if an exception if the specified component exists, but is not of the right type, or if an exception occurs while creating the class or loading the setup file
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiate (overload)
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### instantiateManaged
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiateManaged (overload)
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+- `connector` - Name of the connector object to use
+- `queue` - Name of the queue object to use
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### describe
+
+```java
+public PHXComponentDescription describe(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Describes the specified component.
+
+**Specified By:**
+- `describe` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A description of the specified component class ([`PHXComponentDescription`](../PHXComponentDescription.md))
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything goes wrong
+
+### getQueues
+
+```java
+public java.lang.String getQueues(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Gets queues for the specified component.
+
+**Specified By:**
+- `getQueues` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A list of queues for the specified component class
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything goes wrong
+
+### getComponentHistory
+
+```java
+public PHXComponentBranch getComponentHistory(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Gets all version information about a particular component.
+
+**Specified By:**
+- `getComponentHistory` in interface [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of [`PHXComponentBranch`](../PHXComponentBranch.md) which contains all the versions and sub-branches available
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
+
+### getBranchesAndTags
+
+```java
+public java.lang.String getBranchesAndTags()
+ throws java.lang.Exception
+```
+Fetches a list of all branches and tags.
+
+**Specified By:**
+- `getBranchesAndTags` in interface [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md)
+
+**Throws:**
+- `java.lang.Exception` - If anything goes wrong
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchAssociationException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchAssociationException.md
new file mode 100644
index 0000000000..061e85a830
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchAssociationException.md
@@ -0,0 +1,74 @@
+# Class: PHXNoSuchAssociationException
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.library.PHXNoSuchAssociationException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXNoSuchAssociationException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an invalid association is specified.
+
+## See Also
+
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXNoSuchAssociationException(java.lang.String name)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getInvalidAssociation()`
Retrieves the name that was invalid |
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchAssociationException
+
+```java
+public PHXNoSuchAssociationException(java.lang.String name)
+```
+
+**Parameters:**
+- `name` - The name that had no association
+
+## Method Detail
+
+### getInvalidAssociation
+
+```java
+public java.lang.String getInvalidAssociation()
+```
+Retrieves the name that was invalid
+
+**Returns:**
+- The invalid name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchCategoryException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchCategoryException.md
new file mode 100644
index 0000000000..f135ca6501
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchCategoryException.md
@@ -0,0 +1,102 @@
+# Class: PHXNoSuchCategoryException
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.library.PHXNoSuchCategoryException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXNoSuchCategoryException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an invalid class category is specified.
+
+## See Also
+
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXNoSuchCategoryException(java.lang.String category)` |
+| `PHXNoSuchCategoryException(java.lang.String msg, java.lang.String category)`
Constructor for this exception containing both a specific message and the category which could not be found. |
+| `PHXNoSuchCategoryException(java.lang.String msg, java.lang.String category, java.lang.Exception ex)`
Constructor which takes a message, a category, and an inner exception. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getInvalidCategory()`
Retrieves the category name that was invalid |
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchCategoryException
+
+```java
+public PHXNoSuchCategoryException(java.lang.String category)
+```
+
+**Parameters:**
+- `category` - The category name that was invalid
+
+### PHXNoSuchCategoryException
+
+```java
+public PHXNoSuchCategoryException(java.lang.String msg,
+ java.lang.String category)
+```
+Constructor for this exception containing both a specific message and the category which could not be found.
+
+**Parameters:**
+- `msg` - The message associated with this exception.
+- `category` - The category which couldn't be found.
+
+### PHXNoSuchCategoryException
+
+```java
+public PHXNoSuchCategoryException(java.lang.String msg,
+ java.lang.String category,
+ java.lang.Exception ex)
+```
+Constructor which takes a message, a category, and an inner exception.
+
+**Parameters:**
+- `msg` - The message associated with this specific exception.
+- `category` - The category which could not be found.
+- `ex` - The inner exception.
+
+## Method Detail
+
+### getInvalidCategory
+
+```java
+public java.lang.String getInvalidCategory()
+```
+Retrieves the category name that was invalid
+
+**Returns:**
+- The invalid category name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchIconException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchIconException.md
new file mode 100644
index 0000000000..c6b6629078
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXNoSuchIconException.md
@@ -0,0 +1,74 @@
+# Class: PHXNoSuchIconException
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.library.PHXNoSuchIconException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXNoSuchIconException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an invalid icon is specified.
+
+## See Also
+
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXNoSuchIconException(java.lang.String name)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getInvalidIcon()`
Retrieves the name that was invalid |
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchIconException
+
+```java
+public PHXNoSuchIconException(java.lang.String name)
+```
+
+**Parameters:**
+- `name` - The name that had no icon
+
+## Method Detail
+
+### getInvalidIcon
+
+```java
+public java.lang.String getInvalidIcon()
+```
+Retrieves the name that was invalid
+
+**Returns:**
+- The invalid name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXUserDirLibrarian.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXUserDirLibrarian.md
new file mode 100644
index 0000000000..190b0c0d43
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/PHXUserDirLibrarian.md
@@ -0,0 +1,302 @@
+# Class: PHXUserDirLibrarian
+
+**Package:** `com.phoenix_int.aserver.library`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.library.PHXUserDirLibrarian
+```
+
+**Implemented Interfaces**
+
+- [`IPHXLibrarian`](IPHXLibrarian.md), `IPHXLibrarian2`
+
+---
+
+**Declaration**
+
+```java
+public class PHXUserDirLibrarian
+extends java.lang.Object
+implements com.phoenix_int.aserver.library.IPHXLibrarian2
+```
+
+This librarian provides "user" directories by looking in a user path or by reading `/etc/passwd`. It looks for "public_mcre" directories inside of each user's directory and provides a "virtual" directory by the name `~` if it finds one.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXUserDirLibrarian()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `cleanUp()`
Tells this librarian to clean up any resources used. |
+| [`PHXComponentDescription`](../PHXComponentDescription.md) | `describe(java.lang.String compClass, java.lang.String virtualDir)`
Describes the specified component. |
+| `java.lang.String` | `getQueues(java.lang.String compClass, java.lang.String virtualDir)`
Method for getting Queues from CenterLink, MCRE just returns blank string |
+| `void` | `initialize(com.phoenix_int.aserver.ascore.PHXConnection connection, IPHXFactory factories, com.phoenix_int.aserver.ascore.PHXAServerArgs args, org.w3c.dom.Node xmlOptions)`
There are 2 options for this class. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| `IPHXComponent` | `instantiate(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)`
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir)`
Creates an instance of the specified component. |
+| [`PHXComponentResourcePair`](../PHXComponentResourcePair.md) | `instantiateManaged(java.lang.String compClass, java.lang.String virtualDir, java.lang.String connector, java.lang.String queue)`
Creates an instance of the specified component. |
+| `java.util.Collection` | `listComponents(java.lang.String virtualDir)`
Returns the components in a specific directory |
+| `java.util.Collection` | `listDirectories(java.lang.String virtualDir)`
Lists any available sub-directories from a particular directory |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXUserDirLibrarian
+
+```java
+public PHXUserDirLibrarian()
+```
+
+## Method Detail
+
+### initialize
+
+```java
+public void initialize(com.phoenix_int.aserver.ascore.PHXConnection connection,
+ IPHXFactory factories,
+ com.phoenix_int.aserver.ascore.PHXAServerArgs args,
+ org.w3c.dom.Node xmlOptions)
+ throws java.lang.Exception
+```
+There are 2 options for this class. The first is `userPath`, which is a semi-colon separated list of paths to search. Each path will be searched for public_mcre directories ONE LEVEL DEEP from the specified directory. The other option is `smartUserScan`, which tells this class to try and read the user's home directories from `/etc/passwd`.
+
+The XML format is:
+
+```java
+
+ path1/here;path2
+
+
+```
+Note: the mere existence of the `smartUserScan` tag turns the option on.
+
+**Specified By:**
+- `initialize` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### cleanUp
+
+```java
+public void cleanUp()
+```
+Tells this librarian to clean up any resources used.
+
+**Specified By:**
+- `cleanUp` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+### listComponents
+
+```java
+public java.util.Collection listComponents(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Returns the components in a specific directory
+
+**Specified By:**
+- `listComponents` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An array of class names
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException`
+
+### listDirectories
+
+```java
+public java.util.Collection listDirectories(java.lang.String virtualDir)
+ throws PHXNoSuchCategoryException,
+ com.phoenix_int.aserver.security.PHXAccessDeniedException
+```
+Lists any available sub-directories from a particular directory
+
+**Specified By:**
+- `listDirectories` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A Collection of Strings
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md)
+- `com.phoenix_int.aserver.security.PHXAccessDeniedException`
+
+### instantiate
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component.
+
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory to search for the component class
+- `connector` - Name of the connector object to use
+- `queue` - Name of the queue object to use
+
+**Returns:**
+- An instance of the associated component class with the file loaded
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- `java.lang.IllegalAccessException` - cannot call constructor
+- `java.lang.InstantiationException` - cannot call constructor
+- `java.lang.reflect.InvocationTargetException` - if an exception if the specified component exists, but is not of the right type, or if an exception occurs while creating the class or loading the setup file
+- `java.lang.Exception`
+
+### instantiate (overload)
+
+```java
+public IPHXComponent instantiate(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiate` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiateManaged
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir,
+ java.lang.String connector,
+ java.lang.String queue)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+- `connector` - Name of the connector object to use
+- `queue` - Name of the queue object to use
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### instantiateManaged (overload)
+
+```java
+public com.phoenix_int.aserver.PHXComponentResourcePair instantiateManaged(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Creates an instance of the specified component. Typically a librarian will find the appropriate files and pass the request off to the [`IPHXFactory`](IPHXFactory.md).
+
+It is important that this class throws [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) and `ClassNotFoundException` in the appropriate cases as they are handled in special ways by the librarian mounter and librarian combiner.
+
+**Specified By:**
+- `instantiateManaged` in interface [`IPHXLibrarian2`](IPHXLibrarian2.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- An instance of the specified component class and its managed resources ([`PHXComponentResourcePair`](../PHXComponentResourcePair.md))
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything serious goes wrong
+
+### describe
+
+```java
+public PHXComponentDescription describe(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Describes the specified component.
+
+**Specified By:**
+- `describe` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory to search for the component class
+
+**Returns:**
+- A description of the specified component class ([`PHXComponentDescription`](../PHXComponentDescription.md))
+
+**Throws:**
+- `java.lang.ClassNotFoundException` - if the class is not found
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.Exception` - If anything goes wrong
+
+### getQueues
+
+```java
+public java.lang.String getQueues(java.lang.String compClass,
+ java.lang.String virtualDir)
+ throws java.lang.Exception
+```
+Method for getting Queues from CenterLink, MCRE just returns blank string
+
+**Specified By:**
+- `getQueues` in interface [`IPHXLibrarian`](IPHXLibrarian.md)
+
+**Parameters:**
+- `compClass` - The class name for the component
+- `virtualDir` - The directory the client asked for
+
+**Returns:**
+- A list of queues for the specified component class
+
+**Throws:**
+- [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) - If the `virtualDirName` passed in is invalid
+- `java.lang.ClassNotFoundException` - If `compClass` doesn't indicate a valid class for the specified directory
+- `java.lang.Exception` - If anything goes wrong
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-summary.md
new file mode 100644
index 0000000000..c2c8b8bf87
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-summary.md
@@ -0,0 +1,29 @@
+# Package com.phoenix_int.aserver.library
+Provides a library of available components and categories (directories) and factories for instantiating components.
+
+## Interfaces
+| Interface | Description |
+| --- | --- |
+| [`IPHXFactory`](IPHXFactory.md) | Deprecated. It is preferred to use `IPHXFactory2`, as this class has methods that can leak resources. |
+| [`IPHXLibrarian`](IPHXLibrarian.md) | Deprecated. It is preferred to use `IPHXLibrarian2` as this class uses methods that can leak resources. |
+| [`IPHXVersionedLibrarian`](IPHXVersionedLibrarian.md) | Deprecated. It is preferred to use `IPHXVersionedLibrarian3` as this class has methods that can leak resources. |
+| [`IPHXVersionedLibrarian2`](IPHXVersionedLibrarian2.md) | Deprecated. It is preferred to use `IPHXVersionedLibrarian3` as this class supports methods that can cause file leaks. |
+
+## Classes
+| Class | Description |
+| --- | --- |
+| [`PHXCVSLibrarian`](PHXCVSLibrarian.md) | Implementation of IPHXLibrarian which loads files out of CVS. |
+| [`PHXDirectoryLibrarian`](PHXDirectoryLibrarian.md) | This librarian provides a window into a directory on disk that contains wrapper and component files. |
+| [`PHXLibrarianCombiner`](PHXLibrarianCombiner.md) | This class combines several sub-librarians, adding dir lists and component lists together. |
+| [`PHXLibrarianMounter`](PHXLibrarianMounter.md) | This class has the functionality of providing a "virtual" directory tree where different sub-librarians can be "mounted" very similarly to the UNIX concept of mounting filesystems. |
+| [`PHXUserDirLibrarian`](PHXUserDirLibrarian.md) | This librarian provides "user" directories by looking in a user path or by reading /etc/passwd. |
+
+## Exceptions
+| Exception | Description |
+| --- | --- |
+| [`PHXNoSuchAssociationException`](PHXNoSuchAssociationException.md) | An exception that is thrown when an invalid association is specified. |
+| [`PHXNoSuchCategoryException`](PHXNoSuchCategoryException.md) | An exception that is thrown when an invalid class category is specified. |
+| [`PHXNoSuchIconException`](PHXNoSuchIconException.md) | An exception that is thrown when an invalid icon is specified. |
+
+## Package Description
+Provides a library of available components and categories (directories) and factories for instantiating components. Contains the standard directory-based publishing technique as well as interfaces for writing archiving and versioning plug-ins.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-tree.md
new file mode 100644
index 0000000000..d447e9946c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/library/package-tree.md
@@ -0,0 +1,25 @@
+# Hierarchy For Package com.phoenix_int.aserver.library
+
+**Package Hierarchies:**
+- [All Packages](../../../../overview-tree.html)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.library.[PHXCVSLibrarian](PHXCVSLibrarian.md) (implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3)
+ - com.phoenix_int.aserver.library.[PHXDirectoryLibrarian](PHXDirectoryLibrarian.md) (implements com.phoenix_int.aserver.library.IPHXLibrarian2)
+ - com.phoenix_int.aserver.library.[PHXLibrarianCombiner](PHXLibrarianCombiner.md) (implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3)
+ - com.phoenix_int.aserver.library.[PHXLibrarianMounter](PHXLibrarianMounter.md) (implements com.phoenix_int.aserver.library.IPHXVersionedLibrarian3)
+ - com.phoenix_int.aserver.library.[PHXUserDirLibrarian](PHXUserDirLibrarian.md) (implements com.phoenix_int.aserver.library.IPHXLibrarian2)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.library.[PHXNoSuchAssociationException](PHXNoSuchAssociationException.md)
+ - com.phoenix_int.aserver.library.[PHXNoSuchCategoryException](PHXNoSuchCategoryException.md)
+ - com.phoenix_int.aserver.library.[PHXNoSuchIconException](PHXNoSuchIconException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.library.[IPHXFactory](IPHXFactory.md)
+- com.phoenix_int.aserver.library.[IPHXLibrarian](IPHXLibrarian.md)
+ - com.phoenix_int.aserver.library.[IPHXVersionedLibrarian](IPHXVersionedLibrarian.md)
+ - com.phoenix_int.aserver.library.[IPHXVersionedLibrarian2](IPHXVersionedLibrarian2.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/IPHXFileCallback.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/IPHXFileCallback.md
new file mode 100644
index 0000000000..0c25f29235
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/IPHXFileCallback.md
@@ -0,0 +1,44 @@
+# Interface: IPHXFileCallback
+
+**Package:** `com.phoenix_int.aserver.monitors`
+
+---
+**Declaration**
+
+```java
+public interface IPHXFileCallback
+```
+
+Callback interface to signal data available on a file being monitored.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `boolean` | `dataReady(java.lang.String data)`
Called when data is ready |
+| `boolean` | `fileTruncated()`
Indicates that the file was truncated back to 0 bytes. |
+
+## Method Detail
+
+### dataReady
+
+```java
+boolean dataReady(java.lang.String data)
+```
+Called when data is ready.
+
+**Parameters:**
+- `data` - The available data
+
+**Returns:**
+- `true` to continue monitoring, `false` to abort monitoring
+
+### fileTruncated
+
+```java
+boolean fileTruncated()
+```
+Indicates that the file was truncated back to 0 bytes.
+
+**Returns:**
+- `true` to continue monitoring, `false` to abort monitoring
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.FileMonitorChangeException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.FileMonitorChangeException.md
new file mode 100644
index 0000000000..091791c955
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.FileMonitorChangeException.md
@@ -0,0 +1,62 @@
+# Class: PHXFileMonitor.FileMonitorChangeException
+
+**Package:** `com.phoenix_int.aserver.monitors`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ java.io.IOException
+ ↳ com.phoenix_int.aserver.monitors.PHXFileMonitor.FileMonitorChangeException
+```
+
+**All Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Enclosing class:**
+
+- [PHXFileMonitor](PHXFileMonitor.md)
+
+---
+
+**Declaration**
+
+```java
+public class PHXFileMonitor.FileMonitorChangeException
+extends java.io.IOException
+```
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `FileMonitorChangeException()` |
+| `FileMonitorChangeException(java.lang.String msg)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
+
+## Constructor Detail
+
+### FileMonitorChangeException
+
+```java
+public FileMonitorChangeException()
+```
+
+### FileMonitorChangeException
+
+```java
+public FileMonitorChangeException(java.lang.String msg)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.md
new file mode 100644
index 0000000000..b194684abc
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXFileMonitor.md
@@ -0,0 +1,126 @@
+# Class: PHXFileMonitor
+
+**Package:** `com.phoenix_int.aserver.monitors`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.monitors.PHXFileMonitor
+```
+
+**Declaration**
+
+```java
+public class PHXFileMonitor
+extends java.lang.Object
+```
+
+This class monitors a File for data by polling. It reads off the stream in the normal manner until EOF, then it enters a polling loop waiting for more data to become available. This is akin to `tail -f` in UNIX, except that it starts at the beginning of the file instead of near the end.
+
+This class is not designed to be re-used after ending the current monitor.
+
+**See Also:**
+- [IPHXFileCallback](IPHXFileCallback.md)
+
+## Nested Class Summary
+
+### Nested classes
+
+| Modifier and Type | Class and Description |
+| --- | --- |
+| `class` | [PHXFileMonitor.FileMonitorChangeException](PHXFileMonitor.FileMonitorChangeException.md) |
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXFileMonitor(PHXRawFile monitor, IPHXFileCallback callback)` |
+| `PHXFileMonitor(java.lang.String monitor, IPHXFileCallback callback)`
Create a monitor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `void` | `doMonitor()`
Begin monitoring. |
+| `void` | `endMonitor()`
Signals this monitor to stop monitoring and return as soon as possible. |
+| `long` | `getPollDelay()` |
+| `void` | `setPollDelay(long pd)`
Poll Delay is how long to sleep in milliseconds between polling the file for more data. |
+| `void` | `signalFileChange()`
Tells the thread to stop monitoring but to send an error to the client saying that the file has been changed. |
+| `void` | `waitForMonitorDeath()` |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Detail
+
+### PHXFileMonitor
+
+```java
+public PHXFileMonitor(java.lang.String monitor,
+ IPHXFileCallback callback)
+```
+Create a monitor
+
+**Parameters:**
+- `monitor` - The filename of the file to monitor
+- `callback` - The callback to call as data becomes available
+
+### PHXFileMonitor
+
+```java
+public PHXFileMonitor(PHXRawFile monitor,
+ IPHXFileCallback callback)
+```
+
+## Method Detail
+
+### setPollDelay
+
+```java
+public void setPollDelay(long pd)
+ throws java.lang.IllegalArgumentException
+```
+Poll Delay is how long to sleep in milliseconds between polling the file for more data. 1 second by default and cannot be set to under 0.5 seconds.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### getPollDelay
+
+```java
+public long getPollDelay()
+```
+
+### endMonitor
+
+```java
+public void endMonitor()
+```
+Signals this monitor to stop monitoring and return as soon as possible.
+
+### waitForMonitorDeath
+
+```java
+public void waitForMonitorDeath()
+```
+
+### signalFileChange
+
+```java
+public void signalFileChange()
+```
+Tells the thread to stop monitoring but to send an error to the client saying that the file has been changed.
+
+This class WAITS for the monitor to stop monitoring on the sub-thread before it returns.
+
+### doMonitor
+
+```java
+public void doMonitor()
+ throws java.io.IOException
+```
+Begin monitoring. Does not return until the monitor is halted.
+
+**Throws:**
+- `java.io.IOException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.MonitorWriter.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.MonitorWriter.md
new file mode 100644
index 0000000000..ed82c8e62b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.MonitorWriter.md
@@ -0,0 +1,81 @@
+# Class: PHXMonitorableStream.MonitorWriter
+
+**Package:** `com.phoenix_int.aserver.monitors`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.io.Writer
+ ↳ com.phoenix_int.aserver.monitors.PHXMonitorableStream.MonitorWriter
+```
+
+**All Implemented Interfaces**
+
+- `java.io.Closeable`, `java.io.Flushable`, `java.lang.Appendable`, `java.lang.AutoCloseable`
+
+**Enclosing class:**
+
+- [PHXMonitorableStream](PHXMonitorableStream.md)
+
+---
+
+**Declaration**
+
+```java
+public class PHXMonitorableStream.MonitorWriter
+extends java.io.Writer
+```
+
+## Field Summary
+
+### Fields inherited from class java.io.Writer
+`lock`
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `void` | `close()` |
+| `void` | `flush()` |
+| `void` | `write(char[] buf, int pos, int len)` |
+
+### Methods inherited from class java.io.Writer
+`append, append, append, write, write, write, write`
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Method Detail
+
+### flush
+
+```java
+public void flush()
+```
+
+**Specified by:**
+- `flush` in interface `java.io.Flushable`
+- `flush` in class `java.io.Writer`
+
+### close
+
+```java
+public void close()
+```
+
+**Specified by:**
+- `close` in interface `java.io.Closeable`
+- `close` in interface `java.lang.AutoCloseable`
+- `close` in class `java.io.Writer`
+
+### write
+
+```java
+public void write(char[] buf,
+ int pos,
+ int len)
+```
+
+**Specified by:**
+- `write` in class `java.io.Writer`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.md
new file mode 100644
index 0000000000..70ec113692
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/PHXMonitorableStream.md
@@ -0,0 +1,141 @@
+# Class: PHXMonitorableStream
+
+**Package:** `com.phoenix_int.aserver.monitors`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.monitors.PHXMonitorableStream
+```
+
+---
+
+**Declaration**
+
+```java
+public class PHXMonitorableStream
+extends java.lang.Object
+```
+
+This class represents a stream of data which may be monitored by a client which supports progress monitors. To use this class, implement the `IPHXMonitorable` interface and return instances of this class.
+
+```java
+ public class monitorableComp implements IPHXAnalysis, IPHXMonitorable
+ {
+ private PHXMonitorableStream mon1 = new PHXMonitorableStream();
+ private PHXMonitorableStream mon2 = new PHXMonitorableStream();
+ ...
+ public execute() throws Exception
+ {
+ //Do Stuff
+ mon1.clear();
+ mon2.clear();
+ mon1.append("Starting");
+ Writer w = mon2.getWriter();
+ w.write("Beginning first phase");
+ ...
+ }
+ public PHXProcessInfo[] listProcesses() throws IOException
+ {
+ throws IOException("Not supported");
+ }
+ public String[] listMonitorableFiles() throws IOException;
+ {
+ String[] mons = new String[2];
+ mons[0] = "monitor1";
+ mons[1] = "monitor2";
+ return mons;
+ }
+ public Object getMonitor(String m)
+ throws PHXNoSuchObjectException;
+ {
+ if ( "monitor1".equals(m) )
+ return mon1;
+ if ( "monitor2".equals(m) )
+ return mon2;
+ throw new PHXNoSuchObjectException(m);
+ }
+ }
+```
+
+## Nested Class Summary
+
+### Nested classes
+
+| Modifier and Type | Class and Description |
+| --- | --- |
+| `class` | [PHXMonitorableStream.MonitorWriter](PHXMonitorableStream.MonitorWriter.md) |
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXMonitorableStream()`
Default Constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `void` | `addMonitorListener(IPHXFileCallback cb)`
Adds a listener which gets events based on changes to this monitor |
+| `void` | `append(java.lang.String text)`
Appends a string to this monitor |
+| `void` | `clear()`
Clears the contents of this monitor |
+| `java.lang.String` | `getString()`
Gets the current contents of the stream |
+| `java.io.Writer` | `getWriter()`
Gets a java.io.Writer which when written to appends onto this monitor |
+| `void` | `removeMonitorListener(IPHXFileCallback cb)`
Removes a listener from this monitor |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Detail
+
+### PHXMonitorableStream
+
+```java
+public PHXMonitorableStream()
+```
+Default Constructor
+
+## Method Detail
+
+### addMonitorListener
+
+```java
+public void addMonitorListener(IPHXFileCallback cb)
+```
+Adds a listener which gets events based on changes to this monitor
+
+### removeMonitorListener
+
+```java
+public void removeMonitorListener(IPHXFileCallback cb)
+```
+Removes a listener from this monitor
+
+### getWriter
+
+```java
+public java.io.Writer getWriter()
+```
+Gets a java.io.Writer which when written to appends onto this monitor
+
+### clear
+
+```java
+public void clear()
+```
+Clears the contents of this monitor
+
+### getString
+
+```java
+public java.lang.String getString()
+```
+Gets the current contents of the stream
+
+### append
+
+```java
+public void append(java.lang.String text)
+```
+Appends a string to this monitor
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-summary.md
new file mode 100644
index 0000000000..db852d0213
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-summary.md
@@ -0,0 +1,26 @@
+# Package com.phoenix_int.aserver.monitors
+
+Provides interfaces and classes for adding process and output monitoring of components.
+
+## Interface Summary
+
+| Interface | Description |
+| --- | --- |
+| [IPHXFileCallback](IPHXFileCallback.md) | Callback interface to signal data available on a file being monitored. |
+
+## Class Summary
+
+| Class | Description |
+| --- | --- |
+| [PHXFileMonitor](PHXFileMonitor.md) | This class monitors a File for data by polling. |
+| [PHXMonitorableStream](PHXMonitorableStream.md) | This class represents a stream of data which may be monitored by a client which supports progress monitors. |
+| [PHXFileMonitor.FileMonitorChangeException](PHXFileMonitor.FileMonitorChangeException.md) | Exception thrown when a file monitor detects a change. |
+| [PHXMonitorableStream.MonitorWriter](PHXMonitorableStream.MonitorWriter.md) | Writer for monitorable streams. |
+
+## Other Documentation
+
+- [package-tree.md](package-tree.md)
+
+## Package com.phoenix_int.aserver.monitors Description
+Provides interfaces and classes for adding process and output monitoring
+of components.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-tree.md
new file mode 100644
index 0000000000..a79c67b0a3
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/monitors/package-tree.md
@@ -0,0 +1,22 @@
+# Hierarchy For Package com.phoenix_int.aserver.monitors
+
+**Package Hierarchies:**
+
+- [All Packages](../../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.monitors.[PHXFileMonitor](PHXFileMonitor.md)
+ - com.phoenix_int.aserver.monitors.[PHXMonitorableStream](PHXMonitorableStream.md)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - java.io.IOException
+ - com.phoenix_int.aserver.monitors.[PHXFileMonitor.FileMonitorChangeException](PHXFileMonitor.FileMonitorChangeException.md)
+ - java.io.Writer (implements java.lang.Appendable, java.io.Closeable, java.io.Flushable)
+ - com.phoenix_int.aserver.monitors.[PHXMonitorableStream.MonitorWriter](PHXMonitorableStream.MonitorWriter.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.monitors.[IPHXFileCallback](IPHXFileCallback.md)
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-summary.md
new file mode 100644
index 0000000000..e567187927
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-summary.md
@@ -0,0 +1,48 @@
+# Package: com.phoenix_int.aserver
+
+This package provides interfaces and classes for server-side components and infrastructure in the ModelCenter environment. It includes APIs for component execution, monitoring, run sharing, file management, and related server operations.
+
+The `com.phoenix_int.aserver` package contains the following key interfaces and classes:
+
+
+## Interface Summary
+| Interface | Description |
+|------|-------------|
+| [`IPHXAlwaysWriteable`](IPHXAlwaysWriteable.md) | Interface for components that are always writeable. |
+| [`IPHXAnalysis`](IPHXAnalysis.md) | Interface for analysis components. |
+| [`IPHXComponent`](IPHXComponent.md) | Base interface for all server-side components. |
+| [`IPHXDriver`](IPHXDriver.md) | Interface for driver components. |
+| [`IPHXHaltableComponent`](IPHXHaltableComponent.md) | Interface for components that can be halted. |
+| [`IPHXMonitorable`](IPHXMonitorable.md) | Interface for monitorable components. |
+| [`IPHXRunQueue`](IPHXRunQueue.md) | Interface for managing run queues. |
+| [`IPHXSelfManager`](IPHXSelfManager.md) | Interface for self-managing components. |
+| [`IPHXSelfManager2`](IPHXSelfManager2.md) | Extended self-manager interface. |
+| [`IPHXSelfManager3`](IPHXSelfManager3.md) | Further extended self-manager interface. |
+| [`IPHXSetupFromFile`](IPHXSetupFromFile.md) | Interface for components that can be set up from a file. |
+
+## Class Summary
+| Class | Description |
+|------|-------------|
+| [`PHXComponentBranch`](PHXComponentBranch.md) | This class represents a branch on a revision history tree for a version controlled component. |
+| [`PHXComponentDescription`](PHXComponentDescription.md) | A class for holding description information about an component class. |
+| [`PHXComponentVersion`](PHXComponentVersion.md) | This class represents a version on a revision history tree for a version controlled component. |
+| [`PHXGroup`](PHXGroup.md) | A utility class for holding sub-variables. |
+| [`PHXInvokeReturn`](PHXInvokeReturn.md) | A utility class for holding return information from an invoked function. |
+| [`PHXMethodDescriptor`](PHXMethodDescriptor.md) | A utility class used by PHXSelfManager to indicate which methods it can invoke. |
+| [`PHXPropertyDescriptor`](PHXPropertyDescriptor.md) | A utility class used by PHXSelfManager to indicate which properties it manages. |
+| [`PHXRunShare`](PHXRunShare.md) | This class handles runshare capabilities for any component which needs it. |
+| [`PHXSimpleSelfManager`](PHXSimpleSelfManager.md) | This is a class that implements most of the functionality of a self-managing component. |
+| [`PHXSimpleSelfManager2`](PHXSimpleSelfManager2.md) | This is a class that implements most of the functionality of a self-managing component. |
+| [`PHXSimpleSelfManager3`](PHXSimpleSelfManager3.md) | This is a class that implements most of the functionality of a self-managing component. |
+| [`PHXVariableInfo`](PHXVariableInfo.md) | This is a utility class for holding parsing information about a variable. |
+
+## Exception Summary
+| Exception | Description |
+|-----------|-------------|
+| [`PHXDFTException`](PHXDFTException.md) | |
+| [`PHXInvalidNameException`](PHXInvalidNameException.md) | An exception that is thrown when trying to create a new object using an invalid name. |
+| [`PHXNameAlreadyInUseException`](PHXNameAlreadyInUseException.md) | An exception that is thrown when trying to create a new object with a name that already exists. |
+| [`PHXNoSuchObjectException`](PHXNoSuchObjectException.md) | An exception that is thrown when an object cannot be found. |
+| [`PHXNoSuchWriteableObjectException`](PHXNoSuchWriteableObjectException.md) | An exception that the PHXObjectManager throws when it can't find an object. |
+| [`ProcessHaltedException`](ProcessHaltedException.md) | Exception indicating that the request cannot be handled because the associated process was halted. |
+
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-tree.md
new file mode 100644
index 0000000000..1202f30a97
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/package-tree.md
@@ -0,0 +1,44 @@
+# Hierarchy For Package com.phoenix_int.aserver
+
+**Package Hierarchies**
+- [All Packages](../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.[PHXComponentBranch](PHXComponentBranch.md)
+ - com.phoenix_int.aserver.[PHXComponentDescription](PHXComponentDescription.md)
+ - com.phoenix_int.aserver.[PHXComponentVersion](PHXComponentVersion.md)
+ - com.phoenix_int.aserver.[PHXGroup](PHXGroup.md)
+ - com.phoenix_int.aserver.[PHXInvokeReturn](PHXInvokeReturn.md)
+ - com.phoenix_int.aserver.[PHXMethodDescriptor](PHXMethodDescriptor.md)
+ - com.phoenix_int.aserver.[PHXPropertyDescriptor](PHXPropertyDescriptor.md)
+ - com.phoenix_int.aserver.[PHXRunShare](PHXRunShare.md) (implements com.phoenix_int.aserver.[IPHXMonitorable](IPHXMonitorable.md), com.phoenix_int.aserver.trace.IPHXTraceGenerator)
+ - com.phoenix_int.aserver.[PHXRunShare.RunInfo](PHXRunShare.RunInfo.md)
+ - com.phoenix_int.aserver.[PHXSimpleSelfManager](PHXSimpleSelfManager.md) (implements com.phoenix_int.aserver.[IPHXComponent](IPHXComponent.md), com.phoenix_int.aserver.[IPHXSelfManager](IPHXSelfManager.md))
+ - com.phoenix_int.aserver.[PHXSimpleSelfManager2](PHXSimpleSelfManager2.md) (implements com.phoenix_int.aserver.[IPHXSelfManager2](IPHXSelfManager2.md))
+ - com.phoenix_int.aserver.[PHXSimpleSelfManager3](PHXSimpleSelfManager3.md) (implements com.phoenix_int.aserver.IPHXConnector, com.phoenix_int.aserver.[IPHXSelfManager3](IPHXSelfManager3.md))
+ - com.phoenix_int.aserver.[PHXVariableInfo](PHXVariableInfo.md)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - java.io.IOException
+ - com.phoenix_int.aserver.[ProcessHaltedException](ProcessHaltedException.md)
+ - com.phoenix_int.aserver.[PHXDFTException](PHXDFTException.md)
+ - com.phoenix_int.aserver.[PHXInvalidNameException](PHXInvalidNameException.md)
+ - com.phoenix_int.aserver.[PHXNameAlreadyInUseException](PHXNameAlreadyInUseException.md)
+ - com.phoenix_int.aserver.[PHXNoSuchObjectException](PHXNoSuchObjectException.md)
+ - com.phoenix_int.aserver.[PHXNoSuchWriteableObjectException](PHXNoSuchWriteableObjectException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.[IPHXAlwaysWriteable](IPHXAlwaysWriteable.md)
+- com.phoenix_int.aserver.[IPHXComponent](IPHXComponent.md)
+ - com.phoenix_int.aserver.[IPHXAnalysis](IPHXAnalysis.md)
+ - com.phoenix_int.aserver.[IPHXDriver](IPHXDriver.md)
+- com.phoenix_int.aserver.[IPHXHaltableComponent](IPHXHaltableComponent.md)
+- com.phoenix_int.aserver.[IPHXMonitorable](IPHXMonitorable.md)
+- com.phoenix_int.aserver.[IPHXRunQueue](IPHXRunQueue.md)
+- com.phoenix_int.aserver.[IPHXSelfManager](IPHXSelfManager.md)
+ - com.phoenix_int.aserver.[IPHXSelfManager2](IPHXSelfManager2.md)
+ - com.phoenix_int.aserver.[IPHXSelfManager3](IPHXSelfManager3.md)
+- com.phoenix_int.aserver.[IPHXSetupFromFile](IPHXSetupFromFile.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXDescription.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXDescription.md
new file mode 100644
index 0000000000..5a5952c42c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXDescription.md
@@ -0,0 +1,58 @@
+# Interface: IPHXDescription
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Known Subinterfaces:**
+- [IPHXRefPropInfo](IPHXRefPropInfo.md)
+
+**All Known Implementing Classes:**
+- [PHXRefArrayProperty](PHXRefArrayProperty.md), [PHXRefProperty](PHXRefProperty.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXDescription
+```
+
+Interface for types with descriptions
+
+Example usage:
+
+```java
+ IPHXType var = wrapper.getVariable("myVar");
+ if (var instanceof IPHXDescription)
+ {
+ ((IPHXDescription)var).setDescription("my variable");
+ }
+```
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `java.lang.String` | `getDescription()`
Get the variable description |
+| `void` | `setDescription(java.lang.String desc)`
Set the variable description. |
+
+## Method Detail
+
+### getDescription
+
+```java
+java.lang.String getDescription()
+```
+Get the variable description
+
+**Returns:**
+- description
+
+### setDescription
+
+```java
+void setDescription(java.lang.String desc)
+```
+Set the variable description. This should be a short, one-line description.
+
+**Parameters:**
+- `desc` - the description
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXFormat.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXFormat.md
new file mode 100644
index 0000000000..3d9e3c89d7
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXFormat.md
@@ -0,0 +1,70 @@
+# Interface: IPHXFormat
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Known Implementing Classes:**
+- [PHXDouble](../types/PHXDouble.md)
+- [PHXDoubleArray](../types/PHXDoubleArray.md)
+- [PHXInteger](../types/PHXInteger.md)
+- [PHXLong](../types/PHXLong.md)
+- [PHXLongArray](../types/PHXLongArray.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXFormat
+```
+
+Interface for variables that support formats.
+
+Example usage:
+
+```java
+IPHXType var = wrapper.getVariable("myVar");
+if (var instanceof IPHXFormat)
+{
+ ((IPHXFormat)var).setFormat("0.0");
+}
+```
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|---------------------|------------------------------------------------|
+| `java.lang.String` | `getFormat()`
Get the format string for the variable |
+| `boolean` | `hasFormat()`
Whether or not the variable has a format |
+| `void` | `setFormat(java.lang.String format)`
Set the format string for the variable |
+
+## Method Detail
+
+### getFormat
+
+```java
+java.lang.String getFormat()
+```
+Get the format string for the variable
+
+**Returns:**
+- format string
+
+### hasFormat
+
+```java
+boolean hasFormat()
+```
+Whether or not the variable has a format
+
+**Returns:**
+- true if variable has a format
+
+### setFormat
+
+```java
+void setFormat(java.lang.String format)
+```
+Set the format string for the variable
+
+**Parameters:**
+- `format` - format string
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXRefPropInfo.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXRefPropInfo.md
new file mode 100644
index 0000000000..e050bcbeb5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXRefPropInfo.md
@@ -0,0 +1,139 @@
+# Interface: IPHXRefPropInfo
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Superinterfaces:**
+- [IPHXDescription](IPHXDescription.md)
+
+**All Known Implementing Classes:**
+- [PHXRefArrayProperty](PHXRefArrayProperty.md)
+- [PHXRefProperty](PHXRefProperty.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXRefPropInfo
+extends IPHXDescription
+```
+
+This interface provides information about a reference property:
+- **name**: String
+- **type**: String
+- **enumValues**: String[]
+- **description**: String
+- **title**: String
+- **input**: boolean
+
+where type may be any of the following:
+- "long"
+- "double"
+- "boolean"
+- "string"
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-----------------------|-------------------------------|
+| `void` | `enumValuesFromString(java.lang.String enumValues)`|
+| `java.lang.String[]` | `getEnumValues()`
lists enum values |
+| `boolean` | `getInput()`
retrieves an indicator of whether the ref prop is an input or an output. |
+| `java.lang.String` | `getName()`
retrieves the name of the variable|
+| `java.lang.String` | `getTitle()`
retrieves a title of the ref prop.|
+| `java.lang.String` | `getType()`
retrieves the current type of the variable|
+| `void` | `setEnumValues(java.lang.String[] enumValues)`
sets the enum values|
+| `void` | `setInput(boolean value)`
sets an indicator for the ref prop|
+| `void` | `setTitle(java.lang.String value)`
sets a title of the ref prop|
+
+### Methods inherited from interface com.phoenix_int.aserver.types.IPHXDescription
+- `getDescription`
+- `setDescription`
+
+## Method Detail
+
+### getName
+
+```java
+java.lang.String getName()
+```
+retrieves the name of the variable
+
+**Returns:**
+- the name of the variable
+
+### getType
+
+```java
+java.lang.String getType()
+```
+retrieves the current type of the variable
+
+**Returns:**
+- the value of the variable
+
+### getTitle
+
+```java
+java.lang.String getTitle()
+```
+retrieves a title of the ref prop. Used by ModelCenter when displaying the variable in certain dialogs
+
+**Returns:**
+- a title for the ref prop
+
+### setTitle
+
+```java
+void setTitle(java.lang.String value)
+```
+sets a title of the ref prop
+
+**Parameters:**
+- `value` - a title for the ref prop
+
+### getInput
+
+```java
+boolean getInput()
+```
+retrieves an indicator of whether the ref prop is an input or an output. If it's an output, the driver component will calculate a value for it.
+
+**Returns:**
+- an indicator if the ref prop is an input
+
+### setInput
+
+```java
+void setInput(boolean value)
+```
+sets an indicator for the ref prop
+
+**Parameters:**
+- `value` - an indicator for the ref prop
+
+### getEnumValues
+
+```java
+java.lang.String[] getEnumValues()
+```
+lists enum values
+
+**Returns:**
+- an array of enum values
+
+### setEnumValues
+
+```java
+void setEnumValues(java.lang.String[] enumValues)
+```
+sets the enum values
+
+**Parameters:**
+- `enumValues` - an array of enum values
+
+### enumValuesFromString
+
+```java
+void enumValuesFromString(java.lang.String enumValues)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType.md
new file mode 100644
index 0000000000..c268844c35
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType.md
@@ -0,0 +1,69 @@
+# Interface: IPHXType
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Known Subinterfaces:**
+- [IPHXType2](IPHXType2.md)
+- [IRuntimeVariable](../../pacz/api/v2/IRuntimeVariable.md)
+
+**All Known Implementing Classes:**
+- [PHXBoolean](PHXBoolean.md)
+- [PHXBooleanArray](PHXBooleanArray.md)
+- [PHXDouble](PHXDouble.md)
+- [PHXDoubleArray](PHXDoubleArray.md)
+- [PHXFile](PHXFile.md)
+- [PHXGeometry](PHXGeometry.md)
+- [PHXInteger](PHXInteger.md)
+- [PHXLong](PHXLong.md)
+- [PHXLongArray](PHXLongArray.md)
+- [PHXObjectArray](PHXObjectArray.md)
+- [PHXRawFile](PHXRawFile.md)
+- [PHXRawFileArray](PHXRawFileArray.md)
+- [PHXReference](PHXReference.md)
+- [PHXScriptObject](PHXScriptObject.md)
+- [PHXSimpleArray](PHXSimpleArray.md)
+- [PHXSimpleType](PHXSimpleType.md)
+- [PHXString](PHXString.md)
+- [PHXStringArray](PHXStringArray.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXType
+```
+
+The interface for all ModelCenter types. ModelCenter types are usually composite classes that provide subproperties for things like descriptions, units, etc. Implementing this interface permits ModelCenter Remote Execution to set and get values directly from the object even though the value may actually be stored as a sub-property.
+
+## Method Summary
+
+| Modifier and Type | Method and Description|
+|---------------------|------------------------------|
+| `void`| `fromString(java.lang.String value)`
Set the value for the variable using a string |
+| `java.lang.String` | `toString()`
Gets the value for the variable |
+
+## Method Detail
+
+### fromString
+
+```java
+void fromString(java.lang.String value)
+```
+Set the value for the variable using a string
+
+**Parameters:**
+- `value` - the value of the variable
+
+### toString
+
+```java
+java.lang.String toString()
+```
+Gets the value for the variable
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- the value as a String
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.IVisitor.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.IVisitor.md
new file mode 100644
index 0000000000..c9732e68c5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.IVisitor.md
@@ -0,0 +1,182 @@
+# Interface: IPHXType2.IVisitor
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Type Parameters:**
+- `T` - The results type from the visitation.
+
+**Enclosing interface:**
+- [IPHXType2](IPHXType2.md)
+
+---
+
+**Declaration**
+
+```java
+public static interface IPHXType2.IVisitor
+```
+
+The interface of a visitor into an [IPHXType2](IPHXType2.md). A part of the visitor pattern.
+
+**Note:** [PHXFile](PHXFile.md), PHXFloatArray, [PHXInteger](PHXInteger.md), PHXIntegerArray, [PHXObjectArray](PHXObjectArray.md), [PHXReference](PHXReference.md) and [PHXScriptObject](PHXScriptObject.md) are not supported by the visitor pattern of IPXHType2.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `T` | `visit(PHXBoolean host)`
Visit a PHXBoolean. |
+| `T` | `visit(PHXBooleanArray host)`
Visit a PHXBooleanArray. |
+| `T` | `visit(PHXDouble host)`
Visit a PHXDouble. |
+| `T` | `visit(PHXDoubleArray host)`
Visit a PHXDoubleArray. |
+| `T` | `visit(PHXGeometry host)`
Visit a PHXGeometry. |
+| `T` | `visit(PHXLong host)`
Visit a PHXLong. |
+| `T` | `visit(PHXLongArray host)`
Visit a PHXLongArray. |
+| `T` | `visit(PHXRawFile host)`
Visit a PHXRawFile. |
+| `T` | `visit(PHXRawFileArray host)`
Visit a PHXRawFileArray. |
+| `T` | `visit(PHXString host)`
Visit a PHXString. |
+| `T` | `visit(PHXStringArray host)`
Visit a PHXStringArray. |
+
+## Method Detail
+
+### visit (PHXBoolean)
+
+```java
+T visit(PHXBoolean host)
+```
+Visit a PHXBoolean.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXLong)
+
+```java
+T visit(PHXLong host)
+```
+Visit a PHXLong.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXDouble)
+
+```java
+T visit(PHXDouble host)
+```
+Visit a PHXDouble.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXString)
+
+```java
+T visit(PHXString host)
+```
+Visit a PHXString.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXRawFile)
+
+```java
+T visit(PHXRawFile host)
+```
+Visit a PHXRawFile.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXGeometry)
+
+```java
+T visit(PHXGeometry host)
+```
+Visit a PHXGeometry.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXBooleanArray)
+
+```java
+T visit(PHXBooleanArray host)
+```
+Visit a PHXBooleanArray.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXLongArray)
+
+```java
+T visit(PHXLongArray host)
+```
+Visit a PHXLongArray.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXDoubleArray)
+
+```java
+T visit(PHXDoubleArray host)
+```
+Visit a PHXDoubleArray.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXStringArray)
+
+```java
+T visit(PHXStringArray host)
+```
+Visit a PHXStringArray.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
+
+### visit (PHXRawFileArray)
+
+```java
+T visit(PHXRawFileArray host)
+```
+Visit a PHXRawFileArray.
+
+**Parameters:**
+- `host` - The host of the visit.
+
+**Returns:**
+- The results of the visitation.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.md
new file mode 100644
index 0000000000..936129f944
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXType2.md
@@ -0,0 +1,108 @@
+# Interface: IPHXType2
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Superinterfaces:**
+- [IPHXType](IPHXType.md)
+
+**All Known Subinterfaces:**
+- [IRuntimeVariable](../../pacz/api/v2/IRuntimeVariable.md)
+
+**All Known Implementing Classes:**
+- [PHXBoolean](PHXBoolean.md)
+- [PHXBooleanArray](PHXBooleanArray.md)
+- [PHXDouble](PHXDouble.md)
+- [PHXDoubleArray](PHXDoubleArray.md)
+- [PHXFile](PHXFile.md)
+- [PHXGeometry](PHXGeometry.md)
+- [PHXInteger](PHXInteger.md)
+- [PHXLong](PHXLong.md)
+- [PHXLongArray](PHXLongArray.md)
+- [PHXObjectArray](PHXObjectArray.md)
+- [PHXRawFile](PHXRawFile.md)
+- [PHXRawFileArray](PHXRawFileArray.md)
+- [PHXReference](PHXReference.md)
+- [PHXScriptObject](PHXScriptObject.md)
+- [PHXSimpleArray](PHXSimpleArray.md)
+- [PHXSimpleType](PHXSimpleType.md)
+- [PHXString](PHXString.md)
+- [PHXStringArray](PHXStringArray.md)
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXType2
+extends IPHXType
+```
+
+The interface for Phoenix types which use [PHXStringBuffer](../util/PHXStringBuffer.md) instead of String for performance.
+
+**See Also:**
+- [IPHXType](IPHXType.md)
+
+## Nested Class Summary
+
+| Modifier and Type | Interface and Description |
+|-------------------|-------------------------|
+| `static interface` | IPHXType2.IVisitor The interface of a visitor into an IPHXType2. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| ` T` | `Accept(IPHXType2.IVisitor visitor)` Accept a Visitor. |
+| `void` | `fromString2(PHXStringBuffer sb)` Configures the type based on a PHXStringBuffer representation of the type |
+| `PHXStringBuffer` | `toString2()` Gets a PHXStringBuffer representation of the type |
+
+### Methods inherited from interface com.phoenix_int.aserver.types.IPHXType
+- `fromString`
+- `toString`
+
+## Method Detail
+
+### toString2
+
+```java
+PHXStringBuffer toString2()
+ throws java.io.IOException
+```
+Gets a [PHXStringBuffer](../util/PHXStringBuffer.md) representation of the type
+
+**Returns:**
+- PHXStringBuffer representation of the type
+
+**Throws:**
+- `java.io.IOException`
+
+### fromString2
+
+```java
+void fromString2(PHXStringBuffer sb)
+ throws java.io.IOException, PHXGetByUrlException
+```
+Configures the type based on a [PHXStringBuffer](../util/PHXStringBuffer.md) representation of the type
+
+**Parameters:**
+- `sb` - representation of the type to use
+
+**Throws:**
+- `java.io.IOException`
+- [`PHXGetByUrlException`](../util/PHXGetByUrlException.md)
+
+### Accept
+
+```java
+ T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXUnits.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXUnits.md
new file mode 100644
index 0000000000..367608c38c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/IPHXUnits.md
@@ -0,0 +1,73 @@
+# Interface: IPHXUnits
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**All Known Subinterfaces:**
+- [IRuntimeVariable](../../../../com/phoenix_int/pacz/api/v2/IRuntimeVariable.html)
+
+**All Known Implementing Classes:**
+- [PHXBoolean](../../../../com/phoenix_int/aserver/types/PHXBoolean.html)
+- [PHXBooleanArray](../../../../com/phoenix_int/aserver/types/PHXBooleanArray.html)
+- [PHXDouble](../../../../com/phoenix_int/aserver/types/PHXDouble.html)
+- [PHXDoubleArray](../../../../com/phoenix_int/aserver/types/PHXDoubleArray.html)
+- [PHXFile](../../../../com/phoenix_int/aserver/types/PHXFile.html)
+- [PHXGeometry](../../../../com/phoenix_int/aserver/types/PHXGeometry.html)
+- [PHXInteger](../../../../com/phoenix_int/aserver/types/PHXInteger.html)
+- [PHXLong](../../../../com/phoenix_int/aserver/types/PHXLong.html)
+- [PHXLongArray](../../../../com/phoenix_int/aserver/types/PHXLongArray.html)
+- [PHXObjectArray](../../../../com/phoenix_int/aserver/types/PHXObjectArray.html)
+- [PHXRawFile](../../../../com/phoenix_int/aserver/types/PHXRawFile.html)
+- [PHXRawFileArray](../../../../com/phoenix_int/aserver/types/PHXRawFileArray.html)
+- [PHXScriptObject](../../../../com/phoenix_int/aserver/types/PHXScriptObject.html)
+- [PHXSimpleArray](../../../../com/phoenix_int/aserver/types/PHXSimpleArray.html)
+- [PHXSimpleType](../../../../com/phoenix_int/aserver/types/PHXSimpleType.html)
+- [PHXString](../../../../com/phoenix_int/aserver/types/PHXString.html)
+- [PHXStringArray](../../../../com/phoenix_int/aserver/types/PHXStringArray.html)
+
+---
+
+**Declaration**
+```java
+public interface IPHXUnits
+```
+
+Interface for PHX variables that support units.
+
+#### Example usage:
+
+```java
+IPHXType var = wrapper.getVariable("myVar");
+if (var instanceof IPHXUnits)
+{
+ ((IPHXUnits)var).setUnits("m");
+}
+```
+
+## Method Summary
+
+| Modifier and Type | Method and Description|
+|---------------------|-----------------|
+| `java.lang.String` | `getUnits()`
Get the units string for the variable |
+| `void` | `setUnits(java.lang.String units)`
Set the units string for the variable |
+
+## Method Detail
+
+### getUnits
+
+```java
+java.lang.String getUnits()
+```
+Get the units string for the variable.
+
+**Returns:**
+- units string
+
+### setUnits
+
+```java
+void setUnits(java.lang.String units)
+```
+Set the units string for the variable.
+
+**Parameters:**
+- `units` - units for the variable
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXAppearance.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXAppearance.md
new file mode 100644
index 0000000000..902aa9e816
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXAppearance.md
@@ -0,0 +1,119 @@
+# Class: PHXAppearance
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXAppearance
+```
+
+---
+
+**Declaration**
+
+```java
+public class PHXAppearance
+extends java.lang.Object
+```
+
+This is a utility class for holding appearance properties. The class is used by the [PHXGeomInfo](PHXGeomInfo.md) class.
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXAppearance(boolean hasColor)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `double` | `getBlue()` |
+| `double` | `getGreen()` |
+| `boolean` | `getHasColor()` |
+| `double` | `getRed()` |
+| `void` | `setBlue(double v)` |
+| `void` | `setColor(double r, double g, double b)` |
+| `void` | `setGreen(double v)` |
+| `void` | `setRed(double v)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXAppearance
+
+```java
+public PHXAppearance(boolean hasColor)
+```
+
+**Parameters:**
+- `hasColor` - whether the appearance has color
+
+## Method Detail
+
+### getRed
+
+```java
+public double getRed()
+```
+
+### getGreen
+
+```java
+public double getGreen()
+```
+
+### getBlue
+
+```java
+public double getBlue()
+```
+
+### getHasColor
+
+```java
+public boolean getHasColor()
+```
+
+### setRed
+
+```java
+public void setRed(double v)
+```
+
+**Parameters:**
+- `v` - the red value
+
+### setGreen
+
+```java
+public void setGreen(double v)
+```
+
+**Parameters:**
+- `v` - the green value
+
+### setBlue
+
+```java
+public void setBlue(double v)
+```
+
+**Parameters:**
+- `v` - the blue value
+
+### setColor
+
+```java
+public void setColor(double r, double g, double b)
+```
+
+**Parameters:**
+- `r` - the red value
+- `g` - the green value
+- `b` - the blue value
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBoolean.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBoolean.md
new file mode 100644
index 0000000000..852deb5c54
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBoolean.md
@@ -0,0 +1,276 @@
+# Class: PHXBoolean
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXBoolean
+```
+
+**Implemented Interfaces**
+
+- `IPHXType`, `IPHXType2`, `IPHXUnits`
+
+---
+
+**Declaration**
+
+```java
+public class PHXBoolean
+extends PHXSimpleType
+```
+
+The ModelCenter type for booleans. This class adds the following features to [`PHXSimpleType`](PHXSimpleType.md):
+
+- **value**: boolean
+- **valueStr**: the source string for the value, useful for error checking when the value is NaN
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+- `IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXBoolean()`
initializes value to false |
+| `PHXBoolean(boolean value)`
Initializes the value to the specified value. |
+| `PHXBoolean(PHXBoolean other)`
Clone another PHXBoolean's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `PHXBoolean` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleType toCompare)`
Compare this [`PHXSimpleType`](PHXSimpleType.md) to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
Converts a String representation to the internal value |
+| `void` | `fromString2(PHXStringBuffer value)`
Converts a PHXStringBuffer representation to the internal value |
+| `boolean` | `getValue()`
Retrieves the current value of the variable |
+| `java.lang.String` | `getValueStr()`
Retrieves the string value of this variable as passed into the last call to `fromString()`. |
+| `static boolean` | `parse(java.lang.Object value)`
A utility function to convert a string to a boolean value |
+| `void` | `setIgnoreConversionErrors(boolean ignoreConversionErrors)`
Indicates whether the object should accept bad values in the `fromString()` method without throwing an exception. |
+| `void` | `setValue(boolean v)` Sets the value for the variable |
+| `java.lang.String` | `toString()`
Converts the variable to a string |
+| `PHXStringBuffer` | `toString2()`
Converts the variable to a PHXStringBuffer |
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleType
+
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXBoolean
+
+```java
+public PHXBoolean()
+```
+
+Initializes value to false.
+
+### PHXBoolean
+
+```java
+public PHXBoolean(boolean value)
+```
+
+**Parameters:**
+- `value` - the initial value
+
+### PHXBoolean
+
+```java
+public PHXBoolean(PHXBoolean other)
+```
+
+**Parameters:**
+- `other` - the other PHXBoolean to clone.
+
+## Method Detail
+
+### getValue
+
+```java
+public boolean getValue()
+```
+
+Retrieves the current value of the variable.
+
+**Returns:**
+- the value of the variable
+
+### getValueStr
+
+```java
+public java.lang.String getValueStr()
+```
+
+Retrieves the string value of this variable as passed into the last call to `fromString()`. This may not be equivalent to the current value of the variable.
+
+**Returns:**
+- the string last used to set the variable
+
+### setValue
+
+```java
+public void setValue(boolean v)
+```
+
+**Parameters:**
+- `v` - the value
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+
+Converts the variable to a PHXStringBuffer.
+
+**Returns:**
+- a PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+
+Converts the variable to a string.
+
+**Specified by:**
+- `toString` in interface `IPHXType`
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+
+Converts a PHXStringBuffer representation to the internal value.
+
+**Parameters:**
+- `value` - the value to convert
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+
+Converts a String representation to the internal value.
+
+**Parameters:**
+- `value` - the value to convert
+
+### parse
+
+```java
+public static boolean parse(java.lang.Object value)
+```
+
+A utility function to convert a string to a boolean value.
+
+**Parameters:**
+- `value` - the string
+
+**Returns:**
+- a boolean value
+
+### setIgnoreConversionErrors
+
+```java
+public void setIgnoreConversionErrors(boolean ignoreConversionErrors)
+```
+
+Indicates whether the object should accept bad values in the `fromString()` method without throwing an exception. The raw values is stored in property valueStr regardless.
+
+**Parameters:**
+- `ignoreConversionErrors` - true if errors should be ignored
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+
+Compare this [`PHXSimpleType`](PHXSimpleType.md) to another [`PHXSimpleType`](PHXSimpleType.md). This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` - the [`PHXSimpleType`](PHXSimpleType.md) to compare
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md) - if the given [`PHXSimpleType`](PHXSimpleType.md) cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this object's value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+
+Accept a Visitor.
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXBoolean createCopy()
+```
+
+Description copied from class: [`PHXSimpleType`](PHXSimpleType.md). Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBooleanArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBooleanArray.md
new file mode 100644
index 0000000000..f943db9b27
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXBooleanArray.md
@@ -0,0 +1,276 @@
+# Class: PHXBooleanArray
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+ ↳ com.phoenix_int.aserver.types.PHXBooleanArray
+```
+
+**Implemented Interfaces**
+
+- [`IPHXType`](IPHXType.md), [`IPHXType2`](IPHXType2.md), [`IPHXUnits`](IPHXUnits.md), `Iterable<[PHXBoolean](PHXBoolean.md)>`
+
+**Declaration**
+
+```java
+public class PHXBooleanArray
+extends PHXSimpleArray
+```
+
+Class wraps an array of PHXBoolean variables for the ScriptWrapper utility.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_data`, `_lockDims`, `_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXBooleanArray()` |
+| `PHXBooleanArray(java.lang.Object data)` |
+| `PHXBooleanArray(PHXBooleanArray other)` Clone another PHXBooleanArray's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| ` T` | `Accept(IPHXType2.IVisitor visitor)` Accept a Visitor. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)` Allocates a single element in a default state. |
+| `PHXBooleanArray` | `createCopy()` Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)` Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)` Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `void` | `fromObject(java.lang.Object toRead)` Load the value of this object from the specified object. |
+| `boolean` | `getBooleanValue(int index)` Gets the value of an element as a boolean |
+| `boolean` | `getBooleanValue(int[] index)` Gets the value of an element as a boolean |
+| `[PHXBoolean](PHXBoolean.md)` | `getValue(int[] index)` Gets the value of an element as a PHXBoolean object |
+| `void` | `setValue(int[] index, boolean val)` Sets the value of an element as a boolean |
+| `void` | `setValue(int[] index, PHXBoolean val)` Sets the value of an element as a PHXBoolean object |
+| `void` | `setValue(int index, boolean val)` Sets the value of an element as a boolean |
+
+### Methods inherited from class [PHXSimpleArray](PHXSimpleArray.md)
+`_getMetaData`, `_getMetaData`, `_setMetaData`, `_setMetaData`, `checkRectangular`, `copy`, `equalsNatural`, `fromString`, `fromString`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `getValue`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement`
+
+### Methods inherited from class [PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXBooleanArray
+
+```java
+public PHXBooleanArray()
+```
+
+### PHXBooleanArray
+
+```java
+public PHXBooleanArray(java.lang.Object data)
+```
+
+### PHXBooleanArray
+
+```java
+public PHXBooleanArray(PHXBooleanArray other)
+```
+
+**Parameters:**
+- `other` - the other PHXBooleanArray to clone.
+
+## Method Detail
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md). Must override this function and return true if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class `PHXSimpleArray`
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException, java.lang.InstantiationException
+```
+
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md). Allocates a single element in a default state. If the class type in question has a default constructor, there is no need to override this.
+
+**Overrides:**
+- `allocateElement` in class `PHXSimpleArray`
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### getValue
+
+```java
+public PHXBoolean getValue(int[] index)
+```
+
+Gets the value of an element as a PHXBoolean object.
+
+**Specified by:**
+- `getValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index` - nD array index
+
+**Returns:**
+- referenced array value
+
+### getBooleanValue
+
+```java
+public boolean getBooleanValue(int index)
+```
+
+Gets the value of an element as a boolean.
+
+**Parameters:**
+- `index` - 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if called on non-1D array
+
+### getBooleanValue
+
+```java
+public boolean getBooleanValue(int[] index)
+```
+
+Gets the value of an element as a boolean.
+
+**Parameters:**
+- `index` - nD array index
+
+**Returns:**
+- referenced array value
+
+### setValue
+
+```java
+public void setValue(int[] index, PHXBoolean val)
+```
+
+Sets the value of an element as a PHXBoolean object.
+
+**Specified by:**
+- `setValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index` - nD array index
+- `val` - value to set
+
+### setValue
+
+```java
+public void setValue(int index, boolean val)
+```
+
+Sets the value of an element as a boolean.
+
+**Parameters:**
+- `index` - 1D array index
+- `val` - value to set
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int[] index, boolean val)
+```
+
+Sets the value of an element as a boolean.
+
+**Parameters:**
+- `index` - nD array index
+- `val` - value to set
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md). Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [`IPHXType`](IPHXType.md) or [`IPHXType2`](IPHXType2.md). For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class `PHXSimpleArray`
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md.
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this object's value.
+
+**Throws:**
+- `PHXInvalidTypeException` - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+
+Accept a Visitor.
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXBooleanArray createCopy()
+```
+
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDataCollector.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDataCollector.md
new file mode 100644
index 0000000000..8b6af6f2c1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDataCollector.md
@@ -0,0 +1,66 @@
+# Class: PHXDataCollector
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXDataCollector
+```
+
+---
+**Declaration**
+
+```java
+public class PHXDataCollector
+extends java.lang.Object
+```
+
+A class for Driver Components to tell ModelCenter what to do with the DataCollector while the component is running.
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `boolean` | `collect` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXDataCollector()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `boolean` | `getCollect()` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### collect
+
+```java
+public boolean collect
+```
+
+## Constructor Detail
+
+### PHXDataCollector
+
+```java
+public PHXDataCollector()
+```
+
+## Method Detail
+
+### getCollect
+
+```java
+public boolean getCollect()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDouble.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDouble.md
new file mode 100644
index 0000000000..bacc5232dd
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDouble.md
@@ -0,0 +1,589 @@
+# Class: PHXDouble
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXDouble
+```
+
+**Implemented Interfaces**
+
+- [IPHXFormat](IPHXFormat.md), [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md)
+
+---
+
+**Declaration**
+
+```java
+public class PHXDouble
+extends PHXSimpleType
+implements IPHXFormat
+```
+
+The Phoenix type for doubles. This class adds the following features to the [PHXSimpleType](PHXSimpleType.md):
+
+- **value**: double
+- **valueStr**: the source string for the value, useful for error checking when the value is NaN
+- **hasUpperValue**: boolean
+- **upperValue**: double
+- **hasLowerValue**: boolean
+- **lowerValue**: double
+- **enumValues**: double[]
+- **enumValues**: string[]
+
+If the variable has an upper or lower bound and an attempt is made to store an invalid value, then an exception will be thrown.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface [IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXDouble()`
Initializes value to zero without upper or lower bounds |
+| `PHXDouble(double value)`
Initializes value to specified value without upper or lower bounds. |
+| `PHXDouble(PHXDouble other)`
Clone another PHXDouble's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `_copyMetadataFromOther(PHXDouble other)`
Clone another PHXDouble's metadata. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `static java.lang.String` | `arrayToString(double[] sa)` |
+| `PHXDouble` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleType toCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
Converts a String representation to the internal value. |
+| `void` | `fromString2(PHXStringBuffer value)`
Converts a PHXStringBuffer representation to the internal value. |
+| `void` | `fromString3(java.lang.String value, java.util.function.ToDoubleFunction converter)`
Converts a String representation to the internal value using specified converter. |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array. |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array. |
+| `double[]` | `getEnumValues()`
An interface function for the enumeration array. |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string. |
+| `java.lang.String` | `getFormat()`
Get the format string for the variable. |
+| `boolean` | `getHasLowerBound()`
Retrieves the `hasLowerBound` flag. |
+| `boolean` | `getHasUpperBound()`
Retrieves the `hasUpperBound` flag. |
+| `double` | `getLowerBound()`
Retrieves the current lower bound value. |
+| `double` | `getUpperBound()`
Retrieves the current upper bound value. |
+| `double` | `getValue()`
Retrieves the current value of the variable. |
+| `java.lang.String` | `getValueStr()`
Retrieves the string value of this variable as passed into the last call to `fromString()`. |
+| `boolean` | `hasFormat()`
Whether or not the variable has a format. |
+| `void` | `setEnumAliases(java.lang.String values)`
Takes a comma separated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Sets the enumeration aliases list. |
+| `void` | `setEnumValues(double[] values)`
Sets the enumeration list of valid values. |
+| `void` | `setEnumValues(java.lang.String values)`
Takes a comma separated string of values and fills the enumeration List with values. |
+| `void` | `setFormat(java.lang.String format)`
Set the format string for the variable. |
+| `void` | `setHasLowerBound(boolean value)`
Sets the `hasLowerBound` flag. |
+| `void` | `setHasUpperBound(boolean value)`
Sets the `hasUpperBound` flag. |
+| `void` | `setIgnoreConversionErrors(boolean ignoreConversionErrors)`
Indicates whether the object should accept bad values in the `fromString()` method without throwing an exception. |
+| `void` | `setLowerBound(double value)`
Sets the lower bound. |
+| `void` | `setLowerBound(java.lang.String value)` |
+| `void` | `setUpperBound(double value)`
Sets the upper bound. |
+| `void` | `setUpperBound(java.lang.String value)` |
+| `void` | `setValue(double v)`
Sets the value for the variable. |
+| `java.lang.String` | `toString()`
Converts the variable to a string. |
+| `java.lang.String` | `toString(int width)`
Converts the value to a string with the best possible formatting, e.g. scientific or absolute values based on the width available. |
+| `PHXStringBuffer` | `toString2()`
Converts the variable to a PHXStringBuffer. |
+
+### Methods inherited from class [PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXDouble
+
+```java
+public PHXDouble()
+```
+Initializes value to zero without upper or lower bounds.
+
+### PHXDouble
+
+```java
+public PHXDouble(double value)
+```
+
+**Parameters:**
+- `value` -
+
+Initializes value to specified value without upper or lower bounds.
+
+### PHXDouble
+
+```java
+public PHXDouble(PHXDouble other)
+```
+
+**Parameters:**
+- `other` - the other PHXDouble to clone.
+
+Clone another PHXDouble's value and metadata.
+
+## Method Detail
+
+### _copyMetadataFromOther
+
+```java
+protected final void _copyMetadataFromOther(PHXDouble other)
+```
+
+**Parameters:**
+- `other` - the other PHXDouble
+
+Clone another PHXDouble's metadata.
+
+### getValue
+
+```java
+public double getValue()
+```
+
+Retrieves the current value of the variable.
+
+**Returns:**
+- the value of the variable
+
+### getValueStr
+
+```java
+public java.lang.String getValueStr()
+```
+
+Retrieves the string value of this variable as passed into the last call to `fromString()`. This may not be equivalent to the current value of the variable.
+
+**Returns:**
+- the string last used to set the variable
+
+### setValue
+
+```java
+public void setValue(double v)
+```
+
+**Parameters:**
+- `v` - the value
+
+Sets the value for the variable.
+
+### setUpperBound
+
+```java
+public void setUpperBound(double value)
+```
+
+**Parameters:**
+- `value` - the upper bound
+
+Sets the upper bound. The hasUpperBound value is set to true.
+
+### setUpperBound
+
+```java
+public void setUpperBound(java.lang.String value)
+```
+
+### getUpperBound
+
+```java
+public double getUpperBound()
+```
+
+Retrieves the current upper bound value.
+
+**Returns:**
+- the upper bound
+
+### setLowerBound
+
+```java
+public void setLowerBound(double value)
+```
+
+**Parameters:**
+- `value` - the lower bound
+
+Sets the lower bound. The `hasLowerBound` value is set to true.
+
+### setLowerBound
+
+```java
+public void setLowerBound(java.lang.String value)
+```
+
+### getLowerBound
+
+```java
+public double getLowerBound()
+```
+
+Retrieves the current lower bound value.
+
+**Returns:**
+- the lower bound
+
+### setHasUpperBound
+
+```java
+public void setHasUpperBound(boolean value)
+```
+
+**Parameters:**
+- `value` - true or false
+
+Sets the `hasUpperBound` flag.
+
+### getHasUpperBound
+
+```java
+public boolean getHasUpperBound()
+```
+
+Retrieves the `hasUpperBound` flag.
+
+**Returns:**
+- true or false
+
+### setHasLowerBound
+
+```java
+public void setHasLowerBound(boolean value)
+```
+
+**Parameters:**
+- `value` - true or false
+
+Sets the `hasLowerBound` flag.
+
+### getHasLowerBound
+
+```java
+public boolean getHasLowerBound()
+```
+
+Retrieves the `hasLowerBound` flag.
+
+**Returns:**
+- true or false
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+
+Converts the variable to a PHXStringBuffer.
+
+**Specified by:**
+- `toString2` in interface [IPHXType2](IPHXType2.md)
+
+**Returns:**
+- the PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+
+Converts the variable to a string.
+
+**Specified by:**
+- `toString` in interface [IPHXType](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+
+Converts a PHXStringBuffer representation to the internal value.
+
+**Specified by:**
+- `fromString2` in interface [IPHXType2](IPHXType2.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### fromString3
+
+```java
+public void fromString3(java.lang.String value, java.util.function.ToDoubleFunction converter)
+```
+
+Converts a String representation to the internal value using specified converter.
+
+**Parameters:**
+- `value` - the value to convert
+- `converter` - functional interface used to convert String value to a double
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+
+Converts a String representation to the internal value.
+
+**Specified by:**
+- `fromString` in interface [IPHXType](IPHXType.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### toString
+
+```java
+public java.lang.String toString(int width)
+ throws PHXNumberFormatException
+```
+
+Converts the value to a string with the best possible formatting, e.g. scientific or absolute values based on the width available.
+
+**Parameters:**
+- `width` - the number of characters print to
+
+**Returns:**
+- the formatted string value
+
+**Throws:**
+- [PHXNumberFormatException](PHXNumberFormatException.md)
+
+### setIgnoreConversionErrors
+
+```java
+public void setIgnoreConversionErrors(boolean ignoreConversionErrors)
+```
+
+Indicates whether the object should accept bad values in the `fromString()` method without throwing an exception. The raw value is stored in property valueStr regardless.
+
+**Parameters:**
+- `ignoreConversionErrors` - true if errors should be ignored
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String values)
+```
+
+Takes a comma separated string of values and fills the enumeration List with values.
+
+**Parameters:**
+- `values` - A comma separated string of enumeration values
+
+### setEnumValues
+
+```java
+public void setEnumValues(double[] values)
+```
+
+Sets the enumeration list of valid values.
+
+**Parameters:**
+- `values` - An array of double values
+
+### getEnumValues
+
+```java
+public double[] getEnumValues()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+
+Interface function to pass out the enumeration array as a comma separated string.
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+
+Takes a comma separated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values` - A comma separated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+
+Sets the enumeration aliases list.
+
+**Parameters:**
+- `values` - An array of strings
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- a comma separated string of the possible values of the list
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String format)
+```
+
+Set the format string for the variable.
+
+**Specified by:**
+- `setFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Parameters:**
+- `format` - format string
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+
+Get the format string for the variable.
+
+**Specified by:**
+- `getFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Returns:**
+- format string
+
+### hasFormat
+
+```java
+public boolean hasFormat()
+```
+
+Whether or not the variable has a format.
+
+**Specified by:**
+- `hasFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Returns:**
+- true if variable has a format
+
+### arrayToString
+
+```java
+public static java.lang.String arrayToString(double[] sa)
+```
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+
+Compare this [PHXSimpleType](PHXSimpleType.md) to another [PHXSimpleType](PHXSimpleType.md). This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+NOTE: two PHXDoubles are considered naturally equal if they are the same to within 5 significant figures. The equals natural algorithm uses a relative error or epsilon comparison for equality. This should NOT be confused with a true double equality comparison and should not be used as such! It is only intended to verify that values specified in PACJ configurations are roughly equal to instantiated component values.
+
+**Specified by:**
+- `equalsNatural` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` -
+
+**Returns:**
+- a negative number if this object is less than toCompare, a positive number if this object is greater than to compare, and zero if these two objects are equal.
+
+**Throws:**
+- [PHXTypeMismatchException](PHXTypeMismatchException.md) - if the given [PHXSimpleType](PHXSimpleType.md) cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [PHXInvalidTypeException](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [PHXInvalidTypeException](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a PHX(Type)Array from, say, an array of java.lang.(Type), that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [PHXInvalidTypeException](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [IPHXType2](IPHXType2.md)
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXDouble createCopy()
+```
+
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDoubleArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDoubleArray.md
new file mode 100644
index 0000000000..0da9296244
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXDoubleArray.md
@@ -0,0 +1,601 @@
+# Class: PHXDoubleArray
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ [PHXSimpleType](PHXSimpleType.md)
+ ↳ [PHXSimpleArray](PHXSimpleArray.md)<[PHXDouble](PHXDouble.md)>
+ ↳ PHXDoubleArray
+```
+
+**Implemented Interfaces**
+
+- [IPHXFormat](IPHXFormat.md), [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md), java.lang.Iterable<[PHXDouble](PHXDouble.md)>
+
+---
+
+**Declaration**
+
+```java
+public class PHXDoubleArray
+extends PHXSimpleArray
+implements IPHXFormat
+```
+
+Class wraps an array of [PHXDouble](PHXDouble.md) variables for the ScriptWrapper utility.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface [IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class [PHXSimpleArray](PHXSimpleArray.md)
+`_data`, `_lockDims`, `_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXDoubleArray()` |
+| `PHXDoubleArray(java.lang.Object data)` |
+| `PHXDoubleArray(PHXDoubleArray other)`
Clone another PHXDoubleArray's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `_getMetaData([PHXSimpleType](PHXSimpleType.md) v2)`
Worker which takes the meta data from an instance of [PHXSimpleType](PHXSimpleType.md) and sets it into our meta data. |
+| `protected void` | `_setMetaData([PHXSimpleType](PHXSimpleType.md) v2)`
Sets a simple type's meta data based on the meta data in this object. |
+| `void` | `_sort(PHXDoubleArray array`, `boolean ascend)` |
+| ` T` | `Accept([IPHXType2](IPHXType2.md).IVisitor visitor)`
Accept a Visitor. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)`
Allocates a single element in a default state. |
+| `PHXDoubleArray` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)`
Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `double` | `getAvg()` |
+| `double` | `getDoubleValue(int index)`
Gets an element as a double. |
+| `double` | `getDoubleValue(int[] index)`
Gets an element as a double. |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array. |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array. |
+| `double[]` | `getEnumValues()`
An interface function for the enumeration array. |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string. |
+| `java.lang.String` | `getFormat()`
Get the format string for the variable. |
+| `boolean` | `getHasLowerBound()`
Retrieves the `hasLowerBound` flag. |
+| `boolean` | `getHasUpperBound()`
Retrieves the `hasUpperBound` flag. |
+| `double` | `getLowerBound()`
Retrieves the current lower bound value. |
+| `double` | `getMax()` |
+| `double` | `getMin()` |
+| `double` | `getUpperBound()`
Retrieves the current upper bound value. |
+| `PHXDouble` | `getValue(int[] index)`
Gets an element as a [PHXDouble](PHXDouble.md) object. |
+| `boolean` | `hasFormat()`
Whether or not the variable has a format. |
+| `void` | `setEnumAliases(java.lang.String values)`
Takes a comma separated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Sets the enumeration aliases list. |
+| `void` | `setEnumValues(double[] values)`
Sets the enumeration list of valid values. |
+| `void` | `setEnumValues(java.lang.String values)`
Takes a comma separated string of values and fills the enumeration List with values. |
+| `void` | `setFormat(java.lang.String format)`
Set the format string for the variable. |
+| `void` | `setHasLowerBound(boolean value)`
Sets the `hasLowerBound` flag. |
+| `void` | `setHasUpperBound(boolean value)`
Sets the `hasUpperBound` flag. |
+| `void` | `setLowerBound(double value)`
Sets the lower bound. |
+| `void` | `setUpperBound(double value)`
Sets the upper bound. |
+| `void` | `setValue(int[] index`, `double val)`
Sets an element as a double. |
+| `void` | `setValue(int[] index`, `PHXDouble val)`
Sets an element as a [PHXDouble](PHXDouble.md) object. |
+| `void` | `setValue(int index`, `double val)`
Sets an element as a double. |
+| `void` | `sort()` |
+| `void` | `sortReverse()` |
+
+### Methods inherited from class [PHXSimpleArray](PHXSimpleArray.md)
+`_getMetaData`, `_setMetaData`, `checkRectangular`, `copy`, `equalsNatural`, `fromString`, `fromString`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `getValue`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement`
+
+### Methods inherited from class [PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXDoubleArray
+
+```java
+public PHXDoubleArray()
+```
+
+### PHXDoubleArray
+
+```java
+public PHXDoubleArray(java.lang.Object data)
+```
+
+### PHXDoubleArray
+
+```java
+public PHXDoubleArray(PHXDoubleArray other)
+```
+
+**Parameters:**
+- `other` - the other PHXDoubleArray to clone.
+
+Clone another PHXDoubleArray's value and metadata.
+
+## Method Detail
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+
+Description copied from class: [PHXSimpleArray](PHXSimpleArray.md)
+
+Must override this function and return true if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException, java.lang.InstantiationException
+```
+
+Description copied from class: [PHXSimpleArray](PHXSimpleArray.md)
+
+Allocates a single element in a default state. If the class type in question has a default constructor, there is no need to override this.
+
+**Overrides:**
+- `allocateElement` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### setUpperBound
+
+```java
+public void setUpperBound(double value)
+```
+
+**Parameters:**
+- `value` - the upper bound
+
+Sets the upper bound. The `hasUpperBound` value is set to true.
+
+### getUpperBound
+
+```java
+public double getUpperBound()
+```
+
+Retrieves the current upper bound value.
+
+**Returns:**
+- the upper bound
+
+**Throws:**
+- `java.lang.IllegalStateException` - Thrown if there is no upper bound defined.
+
+### setLowerBound
+
+```java
+public void setLowerBound(double value)
+```
+
+**Parameters:**
+- `value` - the lower bound
+
+Sets the lower bound. The `hasLowerBound` value is set to true.
+
+### getLowerBound
+
+```java
+public double getLowerBound()
+```
+
+Retrieves the current lower bound value.
+
+**Returns:**
+- the lower bound
+
+### setHasUpperBound
+
+```java
+public void setHasUpperBound(boolean value)
+```
+
+**Parameters:**
+- `value` - true or false
+
+Sets the `hasUpperBound` flag.
+
+### getHasUpperBound
+
+```java
+public boolean getHasUpperBound()
+```
+
+Retrieves the `hasUpperBound` flag.
+
+**Returns:**
+- true or false
+
+### setHasLowerBound
+
+```java
+public void setHasLowerBound(boolean value)
+```
+
+**Parameters:**
+- `value` - true or false
+
+Sets the `hasLowerBound` flag.
+
+### getHasLowerBound
+
+```java
+public boolean getHasLowerBound()
+```
+
+Retrieves the `hasLowerBound` flag.
+
+**Returns:**
+- true or false
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String values)
+```
+
+Takes a comma separated string of values and fills the enumeration List with values.
+
+**Parameters:**
+- `values` - A comma separated string of enumeration values
+
+### setEnumValues
+
+```java
+public void setEnumValues(double[] values)
+```
+
+Sets the enumeration list of valid values.
+
+**Parameters:**
+- `values` - An array of double values
+
+### getEnumValues
+
+```java
+public double[] getEnumValues()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+
+Interface function to pass out the enumeration array as a comma separated string.
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+
+Takes a comma separated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values` - A comma separated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+
+Sets the enumeration aliases list.
+
+**Parameters:**
+- `values` - An array of strings
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+
+An interface function for the enumeration array.
+
+**Returns:**
+- a comma separated string of the possible values of the list
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String format)
+```
+
+Set the format string for the variable.
+
+**Specified by:**
+- `setFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Parameters:**
+- `format` - format string
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+
+Get the format string for the variable.
+
+**Specified by:**
+- `getFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Returns:**
+- format string
+
+### hasFormat
+
+```java
+public boolean hasFormat()
+```
+
+Whether or not the variable has a format.
+
+**Specified by:**
+- `hasFormat` in interface [IPHXFormat](IPHXFormat.md)
+
+**Returns:**
+- true if variable has a format
+
+### _setMetaData
+
+```java
+protected void _setMetaData(PHXSimpleType v2)
+```
+
+Description copied from class: [PHXSimpleArray](PHXSimpleArray.md)
+
+Sets a simple type's meta data based on the meta data in this object. Override this to set additional information in sub-classes. Be sure to call `super._setMetaData(PHXSimpleType)`.
+
+**Overrides:**
+- `_setMetaData` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+### _getMetaData
+
+```java
+protected void _getMetaData([PHXSimpleType](PHXSimpleType.md) v2)
+```
+
+Description copied from class: [PHXSimpleArray](PHXSimpleArray.md)
+
+Worker which takes the meta data from an instance of [PHXSimpleType](PHXSimpleType.md) and sets it into our meta data. Override this in order to add more custom meta data in sub-classes. Be sure to call `super._getMetaData(PHXSimpleType)`, though!
+
+**Overrides:**
+- `_getMetaData` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+### getValue
+
+```java
+public PHXDouble getValue(int[] index)
+```
+
+Gets an element as a [PHXDouble](PHXDouble.md) object.
+
+**Specified by:**
+- `getValue` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+**Parameters:**
+- `index` - nD array index
+
+**Returns:**
+- referenced array value
+
+### getDoubleValue
+
+```java
+public double getDoubleValue(int index)
+```
+
+Gets an element as a double.
+
+**Parameters:**
+- `index` - 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if called on non-1D array
+
+### getDoubleValue
+
+```java
+public double getDoubleValue(int[] index)
+```
+
+Gets an element as a double.
+
+**Parameters:**
+- `index` - nD array index
+
+**Returns:**
+- referenced array value
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXDouble val)
+```
+
+Sets an element as a [PHXDouble](PHXDouble.md) object.
+
+**Specified by:**
+- `setValue` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+**Parameters:**
+- `index` - nD array index
+- `val` - value to set
+
+### setValue
+
+```java
+public void setValue(int index,
+ double val)
+```
+
+Sets an element as a double.
+
+**Parameters:**
+- `index` - 1D array index
+- `val` - value to set
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ double val)
+```
+
+Sets an element as a double.
+
+**Parameters:**
+- `index` - nD array index
+- `val` - value to set
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+
+Description copied from class: [PHXSimpleArray](PHXSimpleArray.md)
+
+Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [IPHXType](IPHXType.md) or [IPHXType2](IPHXType2.md). For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class [PHXSimpleArray](PHXSimpleArray.md)
+
+### getMax
+
+```java
+public double getMax()
+```
+
+### getMin
+
+```java
+public double getMin()
+```
+
+### getAvg
+
+```java
+public double getAvg()
+```
+
+### sortReverse
+
+```java
+public void sortReverse()
+```
+
+### sort
+
+```java
+public void sort()
+```
+
+### _sort
+
+```java
+public void _sort(PHXDoubleArray array,
+ boolean ascend)
+```
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [PHXInvalidTypeException](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [PHXInvalidTypeException](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [PHXInvalidTypeException](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept([IPHXType2](IPHXType2.md).IVisitor visitor)
+```
+
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [IPHXType2](IPHXType2.md)
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXDoubleArray createCopy()
+```
+
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXFile.md
new file mode 100644
index 0000000000..30bf50b4cb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXFile.md
@@ -0,0 +1,321 @@
+# Class: PHXFile
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ [PHXSimpleType](PHXSimpleType.md)
+ ↳ PHXFile
+```
+
+**Implemented Interfaces**
+
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md)
+
+---
+
+**Declaration**
+
+```java
+@Deprecated
+public class PHXFile
+extends PHXSimpleType
+```
+
+Deprecated.
+
+Internal data type used for certain types of files. End users should use [PHXRawFile](PHXRawFile.md) to implement file variables in their custom components.
+
+- **name**: String
+- **contents**: String
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface [IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXFile()`
Deprecated. |
+| `PHXFile(PHXFile other)`
Deprecated. Clone another PHXFile's value and metadata. |
+| `PHXFile(java.lang.String fileName)`
Deprecated. |
+| `PHXFile(java.lang.String baseName, java.lang.String name)`
Deprecated. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| ` T` | `Accept([IPHXType2](IPHXType2.md).IVisitor visitor)`
Deprecated. Accept a Visitor. |
+| `PHXFile` | `createCopy()`
Deprecated. Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural([PHXSimpleType](PHXSimpleType.md) toCompare)`
Deprecated. Compare this [PHXSimpleType](PHXSimpleType.md) to another [PHXSimpleType](PHXSimpleType.md). |
+| `void` | `fromObject(java.lang.Object toRead)`
Deprecated. Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
Deprecated. Converts a String representation to the internal value. |
+| `void` | `fromString2(PHXStringBuffer value)`
Deprecated. Converts a PHXStringBuffer representation to the internal value. |
+| `java.lang.String` | `getContents()`
Deprecated. Retrieves the contents of the file. |
+| `java.lang.String` | `getName()`
Deprecated. Retrieves the name of the file. |
+| `java.lang.String` | `getNameCoded()`
Deprecated. Retrieves the name of the file in coded form (without $variables replaced). |
+| `boolean` | `hasChanged()`
Deprecated. Checks to see if the file has changed since the last time getContents() was called. |
+| `void` | `markAsRead()`
Deprecated. Call this function after you manually get the contents of the file. |
+| `void` | `setBaseName(java.lang.String v)`
Deprecated. Sets the base name of the file. |
+| `void` | `setName(java.lang.String v)`
Deprecated. Sets the name of the file. |
+| `void` | `setStringReplacer(PHXStringReplacer r)`
Deprecated. Specifies a PHXStringReplacer object for use in forming the full file name. |
+| `java.lang.String` | `toString()`
Deprecated. Converts the variable to a string. |
+| `PHXStringBuffer` | `toString2()`
Deprecated. Converts the variable to a string. |
+
+### Methods inherited from class [PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXFile
+
+```java
+public PHXFile()
+```
+Deprecated.
+
+### PHXFile
+
+```java
+public PHXFile(java.lang.String fileName)
+```
+Deprecated.
+
+### PHXFile
+
+```java
+public PHXFile(java.lang.String baseName,
+ java.lang.String name)
+```
+Deprecated.
+
+### PHXFile
+
+```java
+public PHXFile(PHXFile other)
+```
+
+**Parameters:**
+- `other` - the other PHXFile to clone.
+
+Deprecated. Clone another PHXFile's value and metadata.
+
+## Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+
+Deprecated. Retrieves the name of the file.
+
+**Returns:**
+- the name of the file
+
+### getNameCoded
+
+```java
+public java.lang.String getNameCoded()
+```
+
+Deprecated. Retrieves the name of the file in coded form (without `$variables` replaced).
+
+**Returns:**
+- the name of the file in coded form
+
+### setName
+
+```java
+public void setName(java.lang.String v)
+```
+
+**Parameters:**
+- `v` - the name
+
+Deprecated. Sets the name of the file.
+
+### setBaseName
+
+```java
+public void setBaseName(java.lang.String v)
+```
+
+**Parameters:**
+- `v` - the name
+
+Deprecated. Sets the base name of the file.
+
+### setStringReplacer
+
+```java
+public void setStringReplacer(PHXStringReplacer r)
+```
+
+**Parameters:**
+- `r` - the string replacer object
+
+Deprecated. Specifies a `PHXStringReplacer` object for use in forming the full file name.
+
+### getContents
+
+```java
+public java.lang.String getContents()
+ throws java.io.IOException
+```
+
+Deprecated. Retrieves the contents of the file.
+
+**Returns:**
+- the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### markAsRead
+
+```java
+public void markAsRead()
+```
+
+Deprecated. Call this function after you manually get the contents of the file. The function records its name and timestamp for use with the `hasChanged()` function.
+
+### hasChanged
+
+```java
+public boolean hasChanged()
+```
+
+Deprecated. Checks to see if the file has changed since the last time `getContents()` was called.
+
+**Returns:**
+- `true` if the timestamp of the file is new, or if the file name has changed
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+
+Deprecated. Converts the variable to a string.
+
+**Returns:**
+- a PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+
+Deprecated. Converts the variable to a string.
+
+**Specified by:**
+- `toString` in interface [IPHXType](IPHXType.md)
+
+**Overrides:**
+- `toString` in class java.lang.Object
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+
+**Parameters:**
+- `value` - the value to convert
+
+Deprecated. Converts a PHXStringBuffer representation to the internal value.
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+
+**Parameters:**
+- `value` - the value to convert
+
+Deprecated. Converts a String representation to the internal value.
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+
+Deprecated. Compare this [PHXSimpleType](PHXSimpleType.md) to another [PHXSimpleType](PHXSimpleType.md). This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` -
+
+**Returns:**
+- a negative number if this object is less than toCompare, a positive number if this object is greater than to compare, and zero if these two objects are equal.
+
+**Throws:**
+- [PHXTypeMismatchException](PHXTypeMismatchException.md) - if the given [PHXSimpleType](PHXSimpleType.md) cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+
+Deprecated. Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [PHXInvalidTypeException](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [PHXInvalidTypeException](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [PHXInvalidTypeException](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+
+Deprecated. Accept a Visitor.
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXFile createCopy()
+```
+
+Deprecated. Description copied from class: [PHXSimpleType](PHXSimpleType.md). Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [PHXSimpleType](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeomInfo.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeomInfo.md
new file mode 100644
index 0000000000..dc81a19dcf
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeomInfo.md
@@ -0,0 +1,79 @@
+# Class: PHXGeomInfo
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXGeomInfo
+```
+
+---
+**Declaration**
+
+```java
+public class PHXGeomInfo
+extends java.lang.Object
+```
+
+this is a utility class that mirrors the structures in ModelCenter. If you want to calculate values for certain geometry information such as CGs, instantiate this class and set the values for the desired parameters. ModelCenter will then use these parameters instead of letting the user specify values or calculating them itself.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXGeomInfo()` |
+| `PHXGeomInfo(boolean hasRotation, boolean hasTranslation, boolean hasColor, boolean hasCentroid, boolean hasVolume, boolean hasSurfaceArea, boolean hasMass)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `PHXAppearance` | `getAppearance()` |
+| `PHXMassProperties` | `getMassProperties()` |
+| `PHXOrientation` | `getOrientation()` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXGeomInfo
+
+```java
+public PHXGeomInfo()
+```
+
+### PHXGeomInfo
+
+```java
+public PHXGeomInfo(boolean hasRotation,
+ boolean hasTranslation,
+ boolean hasColor,
+ boolean hasCentroid,
+ boolean hasVolume,
+ boolean hasSurfaceArea,
+ boolean hasMass)
+```
+
+## Method Detail
+
+### getOrientation
+
+```java
+public PHXOrientation getOrientation()
+```
+
+### getAppearance
+
+```java
+public PHXAppearance getAppearance()
+```
+
+### getMassProperties
+
+```java
+public PHXMassProperties getMassProperties()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeometry.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeometry.md
new file mode 100644
index 0000000000..212fa0ed14
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXGeometry.md
@@ -0,0 +1,289 @@
+# Class: PHXGeometry
+
+**Package:[`PHXSimpleType`](../../| `| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |T> T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |./../com/phoenix_int/aserver/types/PHXSimpleType.html)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+`IPHXType2.IVisitor`
+
+## Constructor Summary.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXGeometry
+```
+
+**Implemented Interfaces**
+
+- `IPHXType`, `IPHXType2`, `IPHXUnits`
+
+---
+**Declaration**
+
+```java
+public class PHXGeometry
+extends PHXSimpleType
+```
+
+The ModelCenter type for geometry. This class has the following properties:
+
+- **data**: String - a String representation of the data
+- **format**: String - the type of data
+- **description**: String
+
+If the variable has an upper or lower bound and an attempt is made to store an invalid value, then an exception will be thrown.
+
+**See Also:**
+
+[`PHXSimpleType`](../../../../com/phoenix_int/aserver/types/PHXSimpleType.html)-
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXGeometry()` |
+| `PHXGeometry(PHXGeometry other)`
Clone another PHXGeometry's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`Accept a Visitor. |
+| `PHXGeometry` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleType toCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`converts a String representation to the internal value |
+| `void` | `fromString2(PHXStringBuffervalue)`converts a PHXStringBuffer representation to the internal value |
+| `java.lang.String` | `getData()`retrieves the current value for the geometry data |
+| `java.lang.String` | `getDescription()`retrieves the description of the variable |
+| `java.lang.String` | `getFormat()`retrieves the format for the geometry data |
+| `void` | `setData(java.lang.String d)`sets the value for the variable |
+| `void` | `setDescription(java.lang.String d)`sets the description for the variable. |
+| `void` | `setFormat(java.lang.String d)`sets the format for the variable. |
+| `java.lang.String` | `toString()`converts the variable to a string |
+| `PHXStringBuffer` | `toString2()`converts the variable to a PHXStringBuffer |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getEnumTokens`, `getHasChanged`, `getUnits`,`removePropertyChangeListener`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+
+## Constructor Detail
+
+### PHXGeometry
+
+```java
+public PHXGeometry()
+```
+
+### PHXGeometry
+
+```java
+public PHXGeometry(PHXGeometry other)
+```
+Clone another PHXGeometry's value and metadata.
+
+**Parameters:**
+- `other`- the other PHXGeometry to clone.
+
+
+## Method Detail
+
+### getData
+
+```java
+public java.lang.String getData()
+```
+retrieves the current value for the geometry data
+
+**Returns:**
+- the geometry data
+
+### setData
+
+```java
+public void setData(java.lang.String d)
+```
+sets the value for the variable
+
+**Parameters:**
+- `d`- the value
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+retrieves the format for the geometry data
+
+**Returns:**
+- the format of the geometry data
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String d)
+ throws PHXInvalidTypeException
+```
+sets the format for the variable. The format is a String description of the representation of the data - specifying a new format only stores a new value for the format
+
+**Parameters:**
+- `d`- the value
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+### getDescription
+
+```java
+public java.lang.String getDescription()
+```
+retrieves the description of the variable
+
+**Overrides:**
+: `getDescription` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a description geometry data
+
+### setDescription
+
+```java
+public void setDescription(java.lang.String d)
+```
+sets the description for the variable. This should be a short, one-line description.
+
+**Overrides:**
+: `setDescription` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `d`- the description
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+converts the variable to a PHXStringBuffer
+
+**Returns:**
+- a PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+converts the variable to a string
+
+**Specified by:**
+-
+: `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+: `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+converts a PHXStringBuffer representation to the internal value
+
+**Parameters:**
+- `value`- the value to convert
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+converts a String representation to the internal value
+
+**Parameters:**
+- `value`- the value to convert
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+-
+: `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+-
+: `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)- if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+: `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXGeometry createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+-
+: `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInteger.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInteger.md
new file mode 100644
index 0000000000..00482e00a9
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInteger.md
@@ -0,0 +1,527 @@
+# Class: PHXInteger
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXInteger
+```
+
+**Implemented Interfaces**
+
+- [`IPHXFormat`](IPHXFormat.md), [`IPHXType`](IPHXType.md), [`IPHXType2`](IPHXType2.md), [`IPHXUnits`](IPHXUnits.md)
+
+---
+**Declaration**
+
+```java
+@Deprecated
+public class PHXInteger
+extends PHXSimpleType
+implements IPHXFormat
+```
+
+**THIS CLASS IS DEPRECATED IN FAVOR OF PHXLong**
+
+The Phoenix type for integers. This class adds the following features to the PHXSimpleType:
+
+- **value**: int
+- **valueStr**: the source string for the value, useful for error checking when the value is NaN
+- **hasUpperValue**: boolean
+- **upperValue**: int
+- **hasLowerValue**: boolean
+- **lowerValue**: int
+- **enumValues**: int[]
+- **enumAliases**: String[]
+
+If the variable has an upper or lower bound and an attempt is made to store an invalid value, then an exception will be thrown.
+
+**See Also:**
+
+[`PHXSimpleType`](PHXSimpleType.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+[`IPHXType2.IVisitor`](IPHXType2.IVisitor.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXInteger()`
**Deprecated.**|
+| `PHXInteger(PHXInteger other)`
**Deprecated.**
Clone another PHXInteger's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `_copyMetadataFromOther(PHXInteger other)`
**Deprecated.**
Clone another PHXInteger's metadata. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
**Deprecated.**
Accept a Visitor. |
+| `static java.lang.String` | `arrayToString(int[] sa)`
**Deprecated.**
|
+| `PHXInteger` | `createCopy()`
**Deprecated.**
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleType toCompare)`
**Deprecated.**
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
**Deprecated.**
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
**Deprecated.**
converts a String representation to the internal value |
+| `void` | `fromString2(`[`PHXStringBuffer`](../util/PHXStringBuffer.md)` value)`
**Deprecated.**
converts a String representation to the internal value |
+| `java.lang.String[]` | `getEnumAliases()`
**Deprecated.**
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumAliasesStr()`
**Deprecated.**
An interface function for the enumeration array |
+| `int[]` | `getEnumValues()`
**Deprecated.**
Interface function to pass out the enumeration array |
+| `java.lang.String` | `getEnumValuesStr()`
**Deprecated.**
Interface function to pass out the enumeration array as a comma separated string |
+| `java.lang.String` | `getFormat()`
**Deprecated.**
Get the format string for the variable |
+| `boolean` | `getHasFormat()`
**Deprecated.**
in favor of `hasFormat()` |
+| `boolean` | `getHasLowerBound()`
**Deprecated.**
retrieves the `hasLowerBound` flag |
+| `boolean` | `getHasUpperBound()`
**Deprecated.**
retrieves the `hasUpperBound` flag |
+| `int` | `getLowerBound()`
**Deprecated.**
retrieves the current lower bound value |
+| `int` | `getUpperBound()`
**Deprecated.**
retrieves the current upper bound value |
+| `int` | `getValue()`
**Deprecated.**
retrieves the current value of the variable |
+| `java.lang.String` | `getValueStr()`
**Deprecated.**
retrieves the string value of this variable as passed into the last call to `fromString()`. |
+| `boolean` | `hasFormat()`
**Deprecated.**
Whether or not the variable has a format |
+| `void` | `setEnumAliases(java.lang.String values)`
**Deprecated.**
takes a comma seperated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
**Deprecated.**
Sets the enumeration aliases list |
+| `void` | `setEnumValues(int[] values)`
**Deprecated.**
Sets the enumeration list of valid values. |
+| `void` | `setEnumValues(java.lang.String strEnumList)`
**Deprecated.**
sets the possible values a variable may be |
+| `void` | `setFormat(java.lang.String format)`
**Deprecated.**
Set the format string for the variable |
+| `void` | `setHasLowerBound(boolean value)`
**Deprecated.**
sets the `hasLowerBound` flag |
+| `void` | `setHasUpperBound(boolean value)`
**Deprecated.**
sets the `hasUpperBound` flag |
+| `void` | `setIgnoreConversionErrors(boolean ignoreConversionErrors)`
**Deprecated.**
indicates whether the object should accept bad values in the `fromString()` method without throwning an exception. |
+| `void` | `setLowerBound(int value)`
**Deprecated.**
sets the lower bound. |
+| `void` | `setLowerBound(java.lang.String value)`
**Deprecated.**
|
+| `void` | `setUpperBound(int value)`
**Deprecated.**
sets the upper bound. |
+| `void` | `setUpperBound(java.lang.String value)`
**Deprecated.**
|
+| `void` | `setValue(int v)`
**Deprecated.**
sets the value for the variable |
+| `java.lang.String` | `toString()`
**Deprecated.**
converts the variable to a string |
+| [`PHXStringBuffer`](../util/PHXStringBuffer.md) | `toString2()`
**Deprecated.**
converts the variable to a PHXStringBuffer |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXInteger
+
+```java
+public PHXInteger()
+```
+**Deprecated.**
+
+### PHXInteger
+
+```java
+public PHXInteger(PHXInteger other)
+```
+**Deprecated.** Clone another PHXInteger's value and metadata.
+
+**Parameters:**
+- `other` - the other PHXInteger to clone.
+
+## Method Detail
+
+### _copyMetadataFromOther
+
+```java
+protected final void _copyMetadataFromOther(PHXInteger other)
+```
+**Deprecated.** Clone another PHXInteger's metadata.
+
+**Parameters:**
+- `other` - the other PHXInteger
+
+### getValue
+
+```java
+public int getValue()
+```
+**Deprecated.** retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+### getValueStr
+
+```java
+public java.lang.String getValueStr()
+```
+**Deprecated.** retrieves the string value of this variable as passed into the last call to `fromString()`. This may not be equivalent to the current value of the variable.
+
+**Returns:**
+- the string last used to set the variable
+
+### setValue
+
+```java
+public void setValue(int v)
+```
+**Deprecated.** sets the value for the variable
+
+**Parameters:**
+- `v` - the value
+
+### setUpperBound
+
+```java
+public void setUpperBound(int value)
+```
+**Deprecated.** sets the upper bound. The `hasUpperBound` value is set to `true`
+
+**Parameters:**
+- `value` - the upper bound
+
+### setUpperBound
+
+```java
+public void setUpperBound(java.lang.String value)
+```
+**Deprecated.**
+
+### getUpperBound
+
+```java
+public int getUpperBound()
+```
+**Deprecated.** retrieves the current upper bound value
+
+**Returns:**
+- the upper bound
+
+### setLowerBound
+
+```java
+public void setLowerBound(int value)
+```
+**Deprecated.** sets the lower bound. The `hasLowerBound` value is set to true
+
+**Parameters:**
+- `value` - the lower bound
+
+### setLowerBound
+
+```java
+public void setLowerBound(java.lang.String value)
+```
+**Deprecated.**
+
+### getLowerBound
+
+```java
+public int getLowerBound()
+```
+**Deprecated.** retrieves the current lower bound value
+
+**Returns:**
+- the lower bound
+
+### setHasUpperBound
+
+```java
+public void setHasUpperBound(boolean value)
+```
+**Deprecated.** sets the `hasUpperBound` flag
+
+**Parameters:**
+- `value` - true or false
+
+### getHasUpperBound
+
+```java
+public boolean getHasUpperBound()
+```
+**Deprecated.** retrieves the `hasUpperBound` flag
+
+**Returns:**
+- true or false
+
+### setHasLowerBound
+
+```java
+public void setHasLowerBound(boolean value)
+```
+**Deprecated.** sets the `hasLowerBound` flag
+
+**Parameters:**
+- `value` - true or false
+
+### getHasLowerBound
+
+```java
+public boolean getHasLowerBound()
+```
+**Deprecated.** retrieves the `hasLowerBound` flag
+
+**Returns:**
+- true or false
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+**Deprecated.** converts the variable to a [PHXStringBuffer](../util/PHXStringBuffer.md)
+
+**Specified by:**
+- `toString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Returns:**
+- a PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+**Deprecated.** converts the variable to a string
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+**Deprecated.**converts a String representation to the internal value
+
+**Specified by:**
+- `fromString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+**Deprecated.** converts a String representation to the internal value
+
+**Specified by:**
+- `fromString` in interface [`IPHXType`](IPHXType.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### setIgnoreConversionErrors
+
+```java
+public void setIgnoreConversionErrors(boolean ignoreConversionErrors)
+```
+**Deprecated.** indicates whether the object should accept bad values in the `fromString()` method without throwning an exception. The raw values is stored in property `valueStr` regardless.
+
+**Parameters:**
+- `ignoreConversionErrors` - `true` if errors should be ignored
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String strEnumList)
+```
+**Deprecated.** sets the possible values a variable may be
+
+**Parameters:**
+- `strEnumList` - the comma sepperated list to convert to values
+
+### setEnumValues
+
+```java
+public void setEnumValues(int[] values)
+```
+**Deprecated.** Sets the enumeration list of valid values.
+
+**Parameters:**
+- `values` - An array of double values
+
+### getEnumValues
+
+```java
+public int[] getEnumValues()
+```
+**Deprecated.** Interface function to pass out the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+**Deprecated.** Interface function to pass out the enumeration array as a comma separated string
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+**Deprecated.** takes a comma seperated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values` - A comma seperated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+**Deprecated.** Sets the enumeration aliases list
+
+**Parameters:**
+- `values` - An array of strings
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+**Deprecated.** An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+**Deprecated.** An interface function for the enumeration array
+
+**Returns:**
+- an comma separated string of the possible values of the list
+
+### getHasFormat
+
+```java
+@Deprecated
+public boolean getHasFormat()
+```
+**Deprecated.** in favor of `hasFormat()`
+
+### hasFormat
+
+```java
+public boolean hasFormat()
+```
+**Deprecated.** Whether or not the variable has a format
+
+**Specified by:**
+- `hasFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- true if variable has a format
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String format)
+```
+**Deprecated.** Set the format string for the variable
+
+**Specified by:**
+- `setFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Parameters:**
+- `format` - format string
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+**Deprecated.** Get the format string for the variable
+
+**Specified by:**
+- `getFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- format string
+
+### arrayToString
+
+```java
+public static java.lang.String arrayToString(int[] sa)
+```
+**Deprecated.**
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+**Deprecated.** Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` -
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md) - if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+**Deprecated.** Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+**Deprecated.** Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [`IPHXType2`](IPHXType2.md)
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXInteger createCopy()
+```
+**Deprecated.** Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInvalidTypeException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInvalidTypeException.md
new file mode 100644
index 0000000000..5d2184546e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXInvalidTypeException.md
@@ -0,0 +1,71 @@
+# Class: PHXInvalidTypeException
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.types.PHXInvalidTypeException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+**Declaration**
+
+```java
+public class PHXInvalidTypeException
+extends java.lang.Exception
+```
+
+An exception that is thrown when trying to use a bad type
+
+**See Also:**
+
+[`Serialized Form`](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXInvalidTypeException(java.lang.String type)`
Create an invalid type exception |
+| `PHXInvalidTypeException(java.lang.String type, java.lang.Throwable cause)`
Create an invalid type exception with a cause |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXInvalidTypeException
+
+```java
+public PHXInvalidTypeException(java.lang.String type)
+```
+Create an invalid type exception
+
+**Parameters:**
+- `type` - the bad type
+
+### PHXInvalidTypeException
+
+```java
+public PHXInvalidTypeException(java.lang.String type,
+ java.lang.Throwable cause)
+```
+Create an invalid type exception with a cause
+
+**Parameters:**
+- `type` - the bad type
+- `cause` - the exception that caused this exception
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLong.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLong.md
new file mode 100644
index 0000000000..b05bc32eaf
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLong.md
@@ -0,0 +1,533 @@
+# Class: PHXLong
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXLong
+```
+
+**Implemented Interfaces**
+
+- [`IPHXFormat`](IPHXFormat.md), [`IPHXType`](IPHXType.md), [`IPHXType2`](IPHXType2.md), [`IPHXUnits`](IPHXUnits.md)
+
+---
+**Declaration**
+
+```java
+public class PHXLong
+extends PHXSimpleType
+implements IPHXFormat
+```
+
+The Phoenix type for longs. This class adds the following features to the [`PHXSimpleType`](PHXSimpleType.md):
+
+- **value**: long
+- **valueStr**: the source string for the value, useful for error checking when the value is NaN
+- **hasUpperValue**: boolean
+- **upperValue**: long
+- **hasLowerValue**: boolean
+- **lowerValue**: long
+- **enumValues**: long[]
+- **enumAliases**: String[]
+
+If the variable has an upper or lower bound and an attempt is made to store an invalid value, then an exception will be thrown.
+
+**See Also:**
+
+- [`PHXSimpleType`](PHXSimpleType.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXLong()`
Initializes value to 0. |
+| `PHXLong(long value)`
Initializes value to the specified value |
+| `PHXLong(PHXLongother)`
Clone another PHXLong's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `_copyMetadataFromOther(PHXLongother)`
Clone another PHXLong's metadata. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `static java.lang.String` | `arrayToString(long[] sa)` |
+| `PHXLong` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
converts a String representation to the internal value |
+| `void` | `fromString2(PHXStringBuffervalue)`
converts a [`PHXStringBuffer`](../util/PHXStringBuffer.md) representation to the internal value |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array |
+| `long[]` | `getEnumValues()`
Interface function to pass out the enumeration array |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string |
+| `java.lang.String` | `getFormat()`
Get the format string for the variable |
+| `boolean` | `getHasFormat()`
Deprecated.in favor of [`hasFormat()`](../../../../com/phoenix_int/aserver/types/PHXLong.html#hasFormat--) |
+| `boolean` | `getHasLowerBound()`
retrieves the `hasLowerBound` flag |
+| `boolean` | `getHasUpperBound()`
retrieves the `hasUpperBound` flag |
+| `long` | `getLowerBound()`
retrieves the current lower bound value |
+| `long` | `getUpperBound()`
retrieves the current upper bound value |
+| `long` | `getValue()`
retrieves the current value of the variable |
+| `java.lang.String` | `getValueStr()`
retrieves the string value of this variable as passed into the last call to `fromString()`. |
+| `boolean` | `hasFormat()`
Whether or not the variable has a format |
+| `void` | `setEnumAliases(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Takes an array of strings which represent aliases for the enumValues. |
+| `void` | `setEnumValues(long[] values)`
sets the possible values a variable may be |
+| `void` | `setEnumValues(java.lang.String strEnumList)`
sets the possible values a variable may be |
+| `void` | `setFormat(java.lang.String format)`
Set the format string for the variable |
+| `void` | `setHasLowerBound(boolean value)`
sets the `hasLowerBound` flag |
+| `void` | `setHasUpperBound(boolean value)`
sets the `hasUpperBound` flag |
+| `void` | `setIgnoreConversionErrors(boolean ignoreConversionErrors)`
indicates whether the object should accept bad values in the `fromString()` method without throwning an exception. |
+| `void` | `setLowerBound(long value)`
sets the lower bound. |
+| `void` | `setLowerBound(java.lang.String value)` |
+| `void` | `setUpperBound(long value)`
sets the upper bound. |
+| `void` | `setUpperBound(java.lang.String value)` |
+| `void` | `setValue(long v)`
sets the value for the variable |
+| `java.lang.String` | `toString()`
converts the variable to a string |
+| `PHXStringBuffer` | `toString2()`
converts the variable to a [`PHXStringBuffer`](../util/PHXStringBuffer.md) |
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleType
+`_copyMetadataFromOther`,`addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXLong
+
+```java
+public PHXLong()
+```
+Initializes value to 0.
+
+#### PHXLong
+
+```java
+public PHXLong(long value)
+```
+Initializes value to the specified value
+
+**Parameters:**
+: `value`- the value to use
+
+#### PHXLong
+
+```java
+public PHXLong(PHXLong other)
+```
+Clone another PHXLong's value and metadata.
+
+**Parameters:**
+
+- `other` - the other PHXLong to clone.
+
+## Method Detail
+
+### _copyMetadataFromOther
+
+```java
+protected final void _copyMetadataFromOther(PHXLong other)
+```
+Clone another [`PHXLong`](PHXLong.md)'s metadata.
+
+**Parameters:**
+- `other` - the other [`PHXLong`](PHXLong.md)
+
+### getValue
+
+```java
+public long getValue()
+```
+retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+### getValueStr
+
+```java
+public java.lang.String getValueStr()
+```
+retrieves the string value of this variable as passed into the last call to `fromString()`. This may not be equivalent to the current value of the variable.
+
+**Returns:**
+- the string last used to set the variable
+
+### setValue
+
+```java
+public void setValue(long v)
+```
+sets the value for the variable
+
+**Parameters:**
+- `v` - the value
+
+### setUpperBound
+
+```java
+public void setUpperBound(long value)
+```
+sets the upper bound. The `hasUpperBound` value is set to true
+
+**Parameters:**
+- `value` - the upper bound
+
+### setUpperBound
+
+```java
+public void setUpperBound(java.lang.String value)
+```
+
+### getUpperBound
+
+```java
+public long getUpperBound()
+```
+retrieves the current upper bound value
+
+**Returns:**
+- the upper bound
+
+### setLowerBound
+
+```java
+public void setLowerBound(long value)
+```
+sets the lower bound. The `hasLowerBound` value is set to true
+
+**Parameters:**
+- `value` - the lower bound
+
+### setLowerBound
+
+```java
+public void setLowerBound(java.lang.String value)
+```
+
+### getLowerBound
+
+```java
+public long getLowerBound()
+```
+retrieves the current lower bound value
+
+**Returns:**
+- the lower bound
+
+### setHasUpperBound
+
+```java
+public void setHasUpperBound(boolean value)
+```
+sets the `hasUpperBound` flag
+
+**Parameters:**
+- `value` - true or false
+
+### getHasUpperBound
+
+```java
+public boolean getHasUpperBound()
+```
+retrieves the `hasUpperBound` flag
+
+**Returns:**
+- true or false
+
+### setHasLowerBound
+
+```java
+public void setHasLowerBound(boolean value)
+```
+sets the `hasLowerBound` flag
+
+**Parameters:**
+- `value` - true or false
+
+### getHasLowerBound
+
+```java
+public boolean getHasLowerBound()
+```
+retrieves the `hasLowerBound` flag
+
+**Returns:**
+- true or false
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+converts the variable to a [`PHXStringBuffer`](../util/PHXStringBuffer.md)
+
+**Specified by:**
+- `toString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Returns:**
+- a [`PHXStringBuffer`](../util/PHXStringBuffer.md) representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+converts the variable to a string
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+converts a [`PHXStringBuffer`](../util/PHXStringBuffer.md) representation to the internal value
+
+**Specified by:**
+- `fromString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+converts a String representation to the internal value
+
+**Specified by:**
+- `fromString` in interface [`IPHXType`](IPHXType.md)
+
+**Parameters:**
+- `value` - the value to convert
+
+### setIgnoreConversionErrors
+
+```java
+public void setIgnoreConversionErrors(boolean ignoreConversionErrors)
+```
+indicates whether the object should accept bad values in the `fromString()` method without throwning an exception. The raw values is stored in property valueStr regardless.
+
+**Parameters:**
+- `ignoreConversionErrors` - true if errors should be ignored
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String strEnumList)
+```
+sets the possible values a variable may be
+
+**Parameters:**
+- `strEnumList` - the comma sepperated list to convert to values
+
+### setEnumValues
+
+```java
+public void setEnumValues(long[] values)
+```
+sets the possible values a variable may be
+
+**Parameters:**
+- `values` - Array of longs which represents valid values
+
+### getEnumValues
+
+```java
+public long[] getEnumValues()
+```
+Interface function to pass out the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+Interface function to pass out the enumeration array as a comma separated string
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+Takes an array of strings which represent aliases for the enumValues.
+
+**Parameters:**
+- `values` - A String array of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values` - A comma seperated string of enumeration aliases
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an comma separated string of the possible values of the list
+
+### getHasFormat
+
+```java
+@Deprecated
+public boolean getHasFormat()
+```
+Deprecated.in favor of[hasFormat()](../../../../com/phoenix_int/aserver/types/PHXLong.html#hasFormat--)
+
+### hasFormat
+
+```java
+public boolean hasFormat()
+```
+Whether or not the variable has a format
+
+**Specified by:**
+- `hasFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- `true` if variable has a format
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String format)
+```
+Set the format string for the variable
+
+**Specified by:**
+- `setFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Parameters:**
+- `format` - format string
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+Get the format string for the variable
+
+**Specified by:**
+- `getFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- format string
+
+### arrayToString
+
+```java
+public static java.lang.String arrayToString(long[] sa)
+```
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this [`PHXSimpleType`](PHXSimpleType.md) to another [`PHXSimpleType`](PHXSimpleType.md). This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` -
+
+**Returns:**
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md) - if the given [`PHXSimpleType`](PHXSimpleType.md) cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a PHX(Type)Array from, say, an array of java.lang.(Type), that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [`IPHXType2`](IPHXType2.md)
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXLong createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLongArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLongArray.md
new file mode 100644
index 0000000000..ca4c49192c
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXLongArray.md
@@ -0,0 +1,600 @@
+# Class PHXLongArray
+
+**Package:** `com.phoenix_int.aserver.types`
+
+**Class Hierarchy**
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+ ↳ com.phoenix_int.aserver.types.PHXLongArray
+```
+**All Implemented Interfaces:**
+- [`IPHXFormat`](IPHXFormat.md), [`IPHXType`](IPHXType.md), [`IPHXType2`](IPHXType2.md), [`IPHXUnits`](IPHXUnits.md), java.lang.Iterable<[`PHXLong`](PHXLong.md)>
+
+---
+
+```java
+public class PHXLongArray
+extends PHXSimpleArray
+implements IPHXFormat
+```
+Class wraps an array of [`PHXLong`](PHXLong.md) variables for the ScriptWrapper utility.
+
+**See Also:**
+- [`PHXSimpleArray`](PHXSimpleArray.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.types.[PHXSimpleArray](PHXSimpleArray.md)
+`_data`, `_lockDims`, `_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| Constructor and Description |
+| `PHXLongArray()` |
+| `PHXLongArray(java.lang.Object data)` |
+| `PHXLongArray(PHXLongArrayother)`
Clone another PHXLongArray's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_getMetaData(PHXSimpleTypev2)`
Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. |
+| `protected void` | `_setMetaData(PHXSimpleTypev2)`
Sets a simple type's meta data based on the meta data in this object. |
+| `void` | `_sort(PHXLongArrayarray, boolean ascend)` |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)`
Allocates a single element in a default state. |
+| `PHXLongArray` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)
`Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `double` | `getAvg()` |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array |
+| `long[]` | `getEnumValues()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string |
+| `java.lang.String` | `getFormat()`
Get the format string for the variable |
+| `boolean` | `getHasLowerBound()`
retrieves the hasLowerBound flag |
+| `boolean` | `getHasUpperBound()`
retrieves the hasUpperBound flag |
+| `long` | `getLongValue(int index)`
Gets the value of an element as a long |
+| `long` | `getLongValue(int[] index)`
Gets the value of an element as a long |
+| `long` | `getLowerBound()`
retrieves the current lower bound value |
+| `long` | `getMax()` |
+| `long` | `getMin()` |
+| `long` | `getUpperBound()`
retrieves the current upper bound value |
+| `PHXLong` | `getValue(int index)`
Gets the value of an element as a PHXLong object |
+| `PHXLong` | `getValue(int[] index)`
Gets the value of an element as a PHXLong object |
+| `boolean` | `hasFormat()`
Whether or not the variable has a format |
+| `void` | `setEnumAliases(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Sets the enumeration aliases list |
+| `void` | `setEnumValues(long[] values)`
sets the possible values a variable may be |
+| `void` | `setEnumValues(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration List with values. |
+| `void` | `setFormat(java.lang.String format)`
Set the format string for the variable |
+| `void` | `setHasLowerBound(boolean value)`
sets the hasLowerBound flag |
+| `void` | `setHasUpperBound(boolean value)`
sets the hasUpperBound flag |
+| `void` | `setLowerBound(long value)`
sets the lower bound. |
+| `void` | `setUpperBound(long value)`
sets the upper bound. |
+| `void` | `setValue(int[] index, long val)`
Sets the value of an element as a PHXLong object |
+| `void` | `setValue(int[] index,PHXLongval)`
Sets the value of an element as a PHXLong object |
+| `void` | `setValue(int index,long val)`
Sets the value of an element as a PHXLong object |
+| `void` | `sort()` |
+| `void` | `sortReverse()` |
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_getMetaData`, `_setMetaData`, `checkRectangular`, `copy`, `equalsNatural`, `fromString`, `fromString`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement``
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleType
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXLongArray
+
+```java
+public PHXLongArray()
+```
+
+### PHXLongArray
+
+```java
+public PHXLongArray(java.lang.Object data)
+```
+
+### PHXLongArray
+
+```java
+public PHXLongArray(PHXLongArray other)
+```
+Clone another [`PHXLongArray`](PHXLongArray.md)'s value and metadata.
+
+**Parameters:**
+- `other`- the other [`PHXLongArray`](PHXLongArray.md) to clone.
+
+## Method Detail
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Must override this function and return true if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class `PHXSimpleArray`
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Allocates a single element in a default state. If the class type in question has a default constructor, there is no need to override this.
+
+**Overrides:**
+- `allocateElement` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### setUpperBound
+
+```java
+public void setUpperBound(long value)
+```
+sets the upper bound. The `hasUpperBound` value is set to `true`
+
+**Parameters:**
+- `value`- the upper bound
+
+### getUpperBound
+
+```java
+public long getUpperBound()
+```
+retrieves the current upper bound value
+
+**Returns:**
+- the upper bound
+
+**Throws:**
+- `java.lang.IllegalStateException`- Thrown if there is no upper bound defined.
+
+### setLowerBound
+
+```java
+public void setLowerBound(long value)
+```
+sets the lower bound. The `hasLowerBound` value is set to `true`
+
+**Parameters:**
+- `value`- the lower bound
+
+### getLowerBound
+
+```java
+public long getLowerBound()
+```
+retrieves the current lower bound value
+
+**Returns:**
+- the lower bound
+
+### setHasUpperBound
+
+```java
+public void setHasUpperBound(boolean value)
+```
+sets the `hasUpperBound` flag
+
+**Parameters:**
+- `value`- true or false
+
+### getHasUpperBound
+
+```java
+public boolean getHasUpperBound()
+```
+retrieves the `hasUpperBound` flag
+
+**Returns:**
+- true or false
+
+### setHasLowerBound
+
+```java
+public void setHasLowerBound(boolean value)
+```
+sets the `hasLowerBound` flag
+
+**Parameters:**
+- `value`- true or false
+
+### getHasLowerBound
+
+```java
+public boolean getHasLowerBound()
+```
+retrieves the `hasLowerBound` flag
+
+**Returns:**
+- true or false
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration List with values.
+
+**Parameters:**
+- `values`- A comma seperated string of enumeration values
+
+### setEnumValues
+
+```java
+public void setEnumValues(long[] values)
+```
+sets the possible values a variable may be
+
+**Parameters:**
+- `values`- Array of longs which represents valid values
+
+### getEnumValues
+
+```java
+public long[] getEnumValues()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+Interface function to pass out the enumeration array as a comma separated string
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values`- A comma seperated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+Sets the enumeration aliases list
+
+**Parameters:**
+- `values`- An array of strings
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an comma separated string of the possible values of the list
+
+### setFormat
+
+```java
+public void setFormat(java.lang.String format)
+```
+Set the format string for the variable
+
+**Specified by:**
+- `setFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Parameters:**
+- `format`- format string
+
+### getFormat
+
+```java
+public java.lang.String getFormat()
+```
+Get the format string for the variable
+
+**Specified by:**
+- `getFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- format string
+
+### hasFormat
+
+```java
+public boolean hasFormat()
+```
+Description copied from interface: [`IPHXFormat`](IPHXFormat.md)
+
+Whether or not the variable has a format
+
+**Specified by:**
+- `hasFormat` in interface [`IPHXFormat`](IPHXFormat.md)
+
+**Returns:**
+- `true` if variable has a format
+
+### _setMetaData
+
+```java
+protected void _setMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sets a simple type's meta data based on the meta data in this object. Override this to set additional information in sub-classes. Be sure to call `super._setMetaData(PHXSimpleType)`.
+
+**Overrides:**
+- `_setMetaData` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+### _getMetaData
+
+```java
+protected void _getMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. Override this in order to add more custom meta data in sub-classes. Be sure to call `super._getMetaData(PHXSimpleType)`, though!
+
+**Overrides:**
+- `_getMetaData` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+### getValue
+
+```java
+public PHXLong getValue(int index)
+```
+Gets the value of an element as a [`PHXLong`](PHXLong.md) object
+
+**Overrides:**
+- `getValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+**Parameters:**
+- `index`- 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### getValue
+
+```java
+public PHXLong getValue(int[] index)
+```
+Gets the value of an element as a [`PHXLong`](PHXLong.md) object
+
+**Specified by:**
+- `getValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+**Parameters:**
+- `index`- nD array index
+
+**Returns:**
+- referenced array value
+
+### getLongValue
+
+```java
+public long getLongValue(int index)
+```
+Gets the value of an element as a long
+
+**Parameters:**
+- `index`- 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### getLongValue
+
+```java
+public long getLongValue(int[] index)
+```
+Gets the value of an element as a long
+
+**Parameters:**
+- `index`- 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXLong val)
+```
+Sets the value of an element as a [`PHXLong`](PHXLong.md) object
+
+**Specified by:**
+- `setValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+**Parameters:**
+- `index`- 1D array index
+- `val`- value to set
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int index,
+ long val)
+```
+Sets the value of an element as a PHXLong object
+
+**Parameters:**
+- `index`- 1D array index
+- `val`- value to set
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ long val)
+```
+Sets the value of an element as a PHXLong object
+
+**Parameters:**
+- `index`- 1D array index
+- `val`- value to set
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement IPHXType or IPHXType2. For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class [`PHXSimpleArray`](PHXSimpleArray.md)`<`[`PHXLong`](PHXLong.md)`>`
+
+### getMax
+
+```java
+public long getMax()
+```
+
+### getMin
+
+```java
+public long getMin()
+```
+
+### getAvg
+
+```java
+public double getAvg()
+```
+
+### sortReverse
+
+```java
+public void sortReverse()
+```
+
+### sort
+
+```java
+public void sort()
+```
+
+### _sort
+
+```java
+public void _sort(PHXLongArray array,
+ boolean ascend)
+```
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)- if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [`IPHXType2`](IPHXType2.md)
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXLongArray createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXMassProperties.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXMassProperties.md
new file mode 100644
index 0000000000..de2e81cd6d
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXMassProperties.md
@@ -0,0 +1,170 @@
+# Class PHXMassProperties
+
+**Packages:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXMassProperties
+```
+---
+
+```java
+public class PHXMassProperties
+extends java.lang.Object
+```
+
+This is a utility class for holding mass property information. The class is used by the PHXGeomInfo class.
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXMassProperties(boolean hasCG, boolean hasVolume, boolean hasSurfaceArea, boolean hasMass)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `java.lang.String` | `getCG()` |
+| `double` | `getcgX()` |
+| `double` | `getcgY()` |
+| `double` | `getcgZ()` |
+| `boolean` | `getHasCG()` |
+| `boolean` | `getHasMass()` |
+| `boolean` | `getHasSurfaceArea()` |
+| `boolean` | `getHasVolume()` |
+| `double` | `getMass()` |
+| `double` | `getSurfaceArea()` |
+| `double` | `getVolume()` |
+| `void` | `setCG(double x, double y, double z)` |
+| `void` | `setcgX(double v)` |
+| `void` | `setcgY(double v)` |
+| `void` | `setcgZ(double v)` |
+| `void` | `setMass(double v)` |
+| `void` | `setSurfaceArea(double v)` |
+| `void` | `setVolume(double v)` |
+
+### Methods inherited from class java.lang.Object
+`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
+
+## Constructor Detail
+
+### PHXMassProperties
+
+```java
+public PHXMassProperties(boolean hasCG,
+ boolean hasVolume,
+ boolean hasSurfaceArea,
+ boolean hasMass)
+```
+
+## Method Detail
+
+### getcgX
+
+```java
+public double getcgX()
+```
+
+### getcgY
+
+```java
+public double getcgY()
+```
+
+### getcgZ
+
+```java
+public double getcgZ()
+```
+
+### getVolume
+
+```java
+public double getVolume()
+```
+
+### getSurfaceArea
+
+```java
+public double getSurfaceArea()
+```
+
+### getMass
+
+```java
+public double getMass()
+```
+
+### getHasCG
+
+```java
+public boolean getHasCG()
+```
+
+### getHasVolume
+
+```java
+public boolean getHasVolume()
+```
+
+### getHasSurfaceArea
+
+```java
+public boolean getHasSurfaceArea()
+```
+
+### getHasMass
+
+```java
+public boolean getHasMass()
+```
+
+### setcgX
+
+```java
+public void setcgX(double v)
+```
+
+### setcgY
+
+```java
+public void setcgY(double v)
+```
+
+### setcgZ
+
+```java
+public void setcgZ(double v)
+```
+
+### setVolume
+
+```java
+public void setVolume(double v)
+```
+
+### setSurfaceArea
+
+```java
+public void setSurfaceArea(double v)
+```
+
+### setMass
+
+```java
+public void setMass(double v)
+```
+
+### setCG
+
+```java
+public void setCG(double x,
+ double y,
+ double z)
+```
+
+### getCG
+
+```java
+public java.lang.String getCG()
+```
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXNumberFormatException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXNumberFormatException.md
new file mode 100644
index 0000000000..c549d4bd4b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXNumberFormatException.md
@@ -0,0 +1,47 @@
+# Class PHXNumberFormatException
+
+**Packages:** com.phoenix_int.aserver.types
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.types.PHXNumberFormatException
+```
+
+**All Implemented Interfaces:**
+- java.io.Serializable
+
+---
+**Declaration:**
+```java
+public class PHXNumberFormatException
+extends java.lang.Exception
+```
+
+Like a `NumberFormatException` except that it isn't a runtime exception and must be caught
+
+**See Also:**
+
+- [Serialized Form](../../../../serialized-form.md)
+
+### Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXNumberFormatException(java.lang.String msg)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNumberFormatException
+
+```java
+public PHXNumberFormatException(java.lang.String msg)
+```
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXObjectArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXObjectArray.md
new file mode 100644
index 0000000000..05aab77a18
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXObjectArray.md
@@ -0,0 +1,241 @@
+# Class PHXObjectArray
+
+
+**Packages:** `com.phoenix_int.aserver.types`
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+ ↳ com.phoenix_int.aserver.types.PHXObjectArray
+```
+
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md), java.lang.Iterable
+
+---
+
+```java
+public class PHXObjectArray
+extends PHXSimpleArray
+```
+
+Placeholder for an array of any random Java Object. This class is useful to keep the system from choking on random array types, but not designed for customer use.
+
+
+**See Also:**
+- [PHXSimpleArray](../../../../com/phoenix_int/aserver/types/PHXSimpleArray.html)
+
+## Nested Class Summary
+
+## Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_data`, `_lockDims`, `_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXObjectArray()` |
+| `PHXObjectArray(java.lang.Object data)` |
+| `PHXObjectArray(PHXObjectArrayother)`
Clone another PHXObjectArray's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)`
Allocates a single element in a default state. |
+| `PHXObjectArray` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)`
Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `PHXSimpleType` | `getValue(int[] index)`
Gets the value of an element as an object of the appropriate subtype. Must be overridden in subclasses |
+| `void` | `setValue(int[] index,PHXSimpleTypeval)`
Sets an element as an object of the appropriate PHXSimpleType. Must be overridden in subclasses |
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_getMetaData`, `_getMetaData`, `_setMetaData`, `_setMetaData`, `checkRectangular`, `copy`, `fromString`, `fromString`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `getValue`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement`
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleType
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXObjectArray
+
+```java
+public PHXObjectArray()
+```
+
+### PHXObjectArray
+
+```java
+public PHXObjectArray(java.lang.Object data)
+```
+
+### PHXObjectArray
+
+```java
+public PHXObjectArray(PHXObjectArray other)
+```
+Clone another PHXObjectArray's value and metadata.
+
+**Parameters:**
+- `other`- the other PHXObjectArray to clone.
+
+## Method Detail
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+Description copied from class: `PHXSimpleArray`. Must override this function and return true if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class `PHXSimpleArray`
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Description copied from class: `PHXSimpleArray`. Allocates a single element in a default state. If the class type in question has a default constructor, there is no need to override this.
+
+**Overrides:**
+- `allocateElement` in class `PHXSimpleArray`
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+: `java.lang.InstantiationException`
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+Description copied from class: `PHXSimpleArray`. Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [IPHXType](IPHXType.md) or [IPHXType2](IPHXType2). For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class `PHXSimpleArray`
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+ Array comparison is handled as follows:
+
+ 1) Compare the number of dimensions between the two arrays
+ 2) Compare the length of dimensions between the two arrays
+ 3) Compare the values in each of the two arrays
+
+ If these three conditions are met, the two arrays are considered naturally equal.
+
+**Overrides:**
+- `equalsNatural` in class `PHXSimpleArray`
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than toCompare, a positive number if this object is greater than to compare, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [PHXInvalidTypeException](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [PHXInvalidTypeException](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class `PHXSimpleType`
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)- if the specified object is of an invalid type or there is an error in conversion.
+
+### getValue
+
+```java
+public PHXSimpleType getValue(int[] index)
+```
+Gets the value of an element as an object of the appropriate subtype. Must be overridden in subclasses
+
+**Specified by:**
+- `getValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index`- nD array index
+
+**Returns:**
+- referenced array value
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXSimpleType val)
+```
+Sets an element as an object of the appropriate [PHXSimpleType](PHXSimpleType.md). Must be overridden in subclasses
+
+**Specified by:**
+- `setValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index`- nD array index
+: `val`- value to set
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXObjectArray createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class `PHXSimpleType`
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXOrientation.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXOrientation.md
new file mode 100644
index 0000000000..eb31efa0ab
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXOrientation.md
@@ -0,0 +1,145 @@
+# Class PHXOrientation
+
+**Packages:** `com.phoenix_int.aserver.types`
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXOrientation
+```
+---
+
+**Declaration:**
+
+```java
+public class PHXOrientation
+extends java.lang.Object
+```
+
+This is a utility class for holding orientation information. The class is used as one of the parts of the [PHXGeomInfo](PHXGeomInfo.md) class
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXOrientation(boolean hasRotation, boolean hasTranslation)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `boolean` | `getHasRotation()` |
+| `boolean` | `getHasTranslation()` |
+| `double` | `getRotX()` |
+| `double` | `getRotY()` |
+| `double` | `getRotZ()` |
+| `double` | `getTransX()` |
+| `double` | `getTransY()` |
+| `double` | `getTransZ()` |
+| `void` | `setRotX(double v)` |
+| `void` | `setRotY(double v)` |
+| `void` | `setRotZ(double v)` |
+| `void` | `setTransX(double v)` |
+| `void` | `setTransY(double v)` |
+| `void` | `setTransZ(double v)` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXOrientation
+
+```java
+public PHXOrientation(boolean hasRotation,
+ boolean hasTranslation)
+```
+
+**Parameters:**
+- `hasRotation`- true if the object uses the rotation variables
+- `hasTranslation`- true if the object uses the translation variables
+
+## Method Detail
+
+### getRotX
+
+```java
+public double getRotX()
+```
+
+### getRotY
+
+```java
+public double getRotY()
+```
+
+### getRotZ
+
+```java
+public double getRotZ()
+```
+
+### getHasRotation
+
+```java
+public boolean getHasRotation()
+```
+
+### getTransX
+
+```java
+public double getTransX()
+```
+
+### getTransY
+
+```java
+public double getTransY()
+```
+
+### getTransZ
+
+```java
+public double getTransZ()
+```
+
+### getHasTranslation
+
+```java
+public boolean getHasTranslation()
+```
+
+### setRotX
+
+```java
+public void setRotX(double v)
+```
+
+### setRotY
+
+```java
+public void setRotY(double v)
+```
+
+### setRotZ
+
+```java
+public void setRotZ(double v)
+```
+
+### setTransX
+
+```java
+public void setTransX(double v)
+```
+
+### setTransY
+
+```java
+public void setTransY(double v)
+```
+
+### setTransZ
+
+```java
+public void setTransZ(double v)
+```
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFile.md
new file mode 100644
index 0000000000..adc3e1a1cb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFile.md
@@ -0,0 +1,870 @@
+# Class PHXRawFile
+
+
+**Packages:** `com.phoenix_int.aserver.types`
+```
+- java.lang.Object
+- - com.phoenix_int.aserver.types.PHXSimpleType
+- - com.phoenix_int.aserver.types.PHXRawFile
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md), java.lang.AutoCloseable
+
+---
+
+```java
+public class PHXRawFile
+extends PHXSimpleType
+implements IPHXType2, java.lang.AutoCloseable
+```
+The ModelCenter type for Files. The working contents of the file are kept in a temporary file on disk, where changes are made before they are manually synced to the actual file. Read the documentation for each method to make sure it is doing what you expect it to.
+
+The temporary file containing the contents can optionally be maintained by calling `unmanageTempFile()`.
+
+In that case, calling code becomes responsible for deleting the contents of the file.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXRawFile()` |
+| `PHXRawFile(PHXRawFileother)`
Clone another PHXRawFile's value and metadata. |
+| `PHXRawFile(java.lang.String fileName)` |
+| `PHXRawFile(java.lang.String baseName, java.lang.String name)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_setContentFromOther(PHXRawFilevariable)` |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `void` | `addMonitor(PHXFileMonitorfm)`
PHXFileMonitor is used to monitor changes to a file as it is being created as in the UNIX `tail -f` command. |
+| `void` | `backupFile()`
Backup the actual file on disk. |
+| `void` | `backupFile(java.lang.String fileName)`
Backup the actual file on disk. |
+| `void` | `close()` |
+| `PHXRawFile` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `void` | `deleteContents()`
Releases the handle to the temporary file. |
+| `void` | `deleteFile()`
Deletes the actual file from disk. |
+| `void` | `deleteFile(java.lang.String fileName)`
Deletes the actual file from disk. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `protected void` | `finalize()`
Although close should be called manually before garbage collection, do so here as a backup. |
+| `void` | `fromAPIObject(java.util.Map object, com.phoenix_int.functional.FunctionThrows fileStore)`
Populate this instance from a string-string map. |
+| `void` | `fromFile()`
Loads the contents of the actual file on disk into the temporary file. |
+| `void` | `fromFile(java.lang.String filename)`
Sets the filename and then loads the contents of the actual file on disk into the temporary file. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
Sets the file temporary file contents to the value of the string. |
+| `void` | `fromString2(PHXStringBuffernewContents)`
Sets the file temporary file contents to the value of the PHXStringBuffer. |
+| `java.lang.String` | `getBaseName()`
gets the base name of the file |
+| `java.lang.String` | `getContents()`
Retrieves the contents of the temporary file. |
+| `java.nio.charset.Charset` | `getEncoding()`
Get the encoding of the contents. |
+| `java.lang.String` | `getFileExtension()`Returns the extension of the file that this object represents |
+| `java.util.UUID` | `getID()`
Get the ID set on this file when the contents were set. |
+| `boolean` | `getIsBinary()`
Tells whether or not the the file is binary. |
+| `java.lang.String` | `getMimeType()` |
+| `java.lang.String` | `getName()`
retrieves the name of the file |
+| `java.lang.String` | `getNameCoded()`
retrieves the name of the file in coded form (without `$variables` replaced) |
+| `java.io.File` | `getTemporaryFile()`
Get the current temporary file; if `_needRead` is `true` this will load the contents from the actual file into the temporary. |
+| `com.phoenix_int.util.ManagedFileHandle` | `getTemporaryFileHandle()`
Get an additional reference to the temporary file containing the current value, or null if there is no temp file currently. |
+| `java.lang.String` | `getURL()`
Tells whether the file is meant to be transferred by proxy |
+| `java.io.InputStream` | `getValueStream()`
**Deprecated.** using `toString2().getInputStream()` is prefered. |
+| `long` | `getValueStreamLen()`
Gets the length of a stream to the temporary file contents. |
+| `boolean` | `hasChanged()`
Checks to see if the actual file has changed since the last time getContents() was called. |
+| `void` | `markAsRead()`
Call this function after you manually get the contents of the actual file. |
+| `void` | `readFile()`
Loads the contents of the actual file on disk into the temporary file. |
+| `void` | `readFile(boolean useDFT)`
Loads the contents of the actual file on disk into the temporary file. |
+| `void` | `readFile(java.lang.String filename)`
Sets the filename and then loads the contents of the actual file on disk into the temporary file. |
+| `void` | `removeMonitor(PHXFileMonitorfm)`
Removes a file monitor from our list |
+| `void` | `setBaseName(java.lang.String v)`
sets the base name of the file |
+| `void` | `setContents(java.io.File tempFile)`
Sets the contents of the temporary file to an existing file. |
+| `void` | `setContents(java.io.File tempFile, java.util.UUID newId, java.lang.String mimeType, java.nio.charset.Charset encoding)`
Sets the contents of the temporary file to an existing file. |
+| `void` | `setContents(com.phoenix_int.util.ManagedFileHandle tempFile, java.util.UUID newId, java.lang.String mimeType, java.nio.charset.Charset encoding)`
Sets the contents of the temporary file to an existing ManagedFileHandle. |
+| `void` | `setContents(PHXStringBuffercontents)`
Sets the contents of the temporary file. |
+| `void` | `setContents(java.lang.String contents)`
Sets the contents of the temporary file. |
+| `void` | `setFileExtension(java.lang.String extension)`
Sets the extension of the file that this object represents. |
+| `void` | `setIsBinary(boolean m)`
Forces this file to be binary or not. |
+| `void` | `setMetaData(PHXRawFilemetaData)` |
+| `void` | `setMimeType(java.lang.String m)` |
+| `void` | `setName(java.lang.String v)`
sets the name of the file |
+| `void` | `setNeedWrite(boolean needWrite)` |
+| `void` | `setStringReplacer(PHXStringReplacerr)`
specifies a PHXStringReplacer object for use in forming the full file name. |
+| `void` | `setURL(java.lang.String url)`
sets whether the file is meant to be transferred by proxy or not |
+| `boolean` | `synched()`
Is this file variable's value consistent with the actual file on disk? |
+| `java.util.Map` | `toAPIObject(com.phoenix_int.functional.FunctionThrows fileStore)`
Convert this instance to a string-string map appropriate for serialization. |
+| `void` | `toFile()`
Writes from the temp file to the actual file. |
+| `void` | `toFile(java.lang.String fileName)`
Sets the filename and then writes from the temp file to the actual file. |
+| `java.lang.String` | `toString()`
converts the variable to a string |
+| `PHXStringBuffer` | `toString2()`
Gets a PHXStringBuffer representation of the contents of the temporary file. |
+| `void` | `unmanageTempFile()`
Ensure that the file containing the current contents is not deleted when the last handle to it is released. |
+| `void` | `writeFile()`
Writes from the temp file to the actual file. |
+| `void` | `writeFile(java.lang.String fileName)`
Sets the filename and then writes from the temp file to the actual file. |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Constructor Detail
+
+### PHXRawFile
+
+```java
+public PHXRawFile()
+```
+
+### PHXRawFile
+
+```java
+public PHXRawFile(java.lang.String fileName)
+```
+
+### PHXRawFile
+
+```java
+public PHXRawFile(java.lang.String baseName,
+ java.lang.String name)
+```
+
+### PHXRawFile
+
+```java
+public PHXRawFile(PHXRawFile other)
+```
+Clone another PHXRawFile's value and metadata.
+
+**Parameters:**
+- `other` - the other PHXRawFile to clone.
+
+### Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+retrieves the name of the file
+
+**Returns:**
+- the name of the file
+
+### getID
+
+```java
+public java.util.UUID getID()
+```
+Get the ID set on this file when the contents were set. Reading the same contents does not guarantee that the ID will be the same.
+
+**Returns:**
+- the ID
+
+### addMonitor
+
+```java
+public void addMonitor(PHXFileMonitor fm)
+```
+PHXFileMonitor is used to monitor changes to a file as it is being created as in the UNIX `tail -f` command. Unfortunately in Windows, this creates a file lock which prevents deleting the file. Therefore, we keep a list of all the monitors currently monitoring us, and we signal them anytime that our filename or base name changes so they can stop monitoring.
+
+### removeMonitor
+
+```java
+public void removeMonitor(PHXFileMonitor fm)
+```
+Removes a file monitor from our list
+
+### synched
+
+```java
+public boolean synched()
+```
+Is this file variable's value consistent with the actual file on disk?
+
+### setNeedWrite
+
+```java
+public void setNeedWrite(boolean needWrite)
+```
+
+### setURL
+
+```java
+public void setURL(java.lang.String url)
+```
+sets whether the file is meant to be transferred by proxy or not
+
+**Parameters:**
+- `url` - the new URL
+
+### getNameCoded
+
+```java
+public java.lang.String getNameCoded()
+```
+retrieves the name of the file in coded form (without `$variables` replaced)
+
+**Returns:**
+- the name of the file in coded form
+
+### getFileExtension
+
+```java
+public java.lang.String getFileExtension()
+```
+Returns the extension of the file that this object represents
+
+### unmanageTempFile
+
+```java
+public void unmanageTempFile()
+```
+Ensure that the file containing the current contents is not deleted when the last handle to it is released. Note that the contents can be reset by `setContents(java.lang.String)`, `setName(java.lang.String)` and `readFile(java.lang.String)` = overloads. This function affects only the current contents. Once the contents are changed, they are stored in a different temp file. That file will receive separate tracking and may be deleted unless this function is called again.
+
+### setFileExtension
+
+```java
+public void setFileExtension(java.lang.String extension)
+ throws java.io.IOException
+```
+Sets the extension of the file that this object represents. It is preferred that you use `setName()` and let the system automatically figure out the extension based on what you pass in. Then, you can use `readFile()` and `writeFile()` without passing filenames to those calls. This allows for progress monitoring to work correctly in all cases.
+
+**Throws:**
+- `java.io.IOException`
+
+### setName
+
+```java
+public void setName(java.lang.String v)
+ throws java.io.IOException
+```
+sets the name of the file
+
+**Parameters:**
+- `v` - the name
+
+**Throws:**
+- `java.io.IOException`
+
+### setBaseName
+
+```java
+public void setBaseName(java.lang.String v)
+ throws java.io.IOException
+```
+sets the base name of the file
+
+**Parameters:**
+- `v` - the name
+
+**Throws:**
+- `java.io.IOException`
+
+### getBaseName
+
+```java
+public java.lang.String getBaseName()
+```
+gets the base name of the file
+
+**Returns:**
+- the name
+
+### setStringReplacer
+
+```java
+public void setStringReplacer(PHXStringReplacer r)
+```
+specifies a PHXStringReplacer object for use in forming the full file name.
+
+**Parameters:**
+- `r` - the string replacer object
+
+### getIsBinary
+
+```java
+public boolean getIsBinary()
+```
+Tells whether or not the the file is binary. Simply switches on whether or not the mime type starts with text.
+
+### getURL
+
+```java
+public java.lang.String getURL()
+```
+Tells whether the file is meant to be transferred by proxy
+
+### setIsBinary
+
+```java
+public void setIsBinary(boolean m)
+```
+Forces this file to be binary or not. If this causes the mode to change, will set the mime type to `text/plain` or `application/octet-stream`
+ as appropriate.
+
+### getMimeType
+
+```java
+public java.lang.String getMimeType()
+```
+
+### setMimeType
+
+```java
+public void setMimeType(java.lang.String m)
+```
+
+### setContents
+
+```java
+public void setContents(java.lang.String contents)
+ throws java.io.IOException
+```
+Sets the contents of the temporary file. The actual file is not modified until the `writeFile()` method is issued. Remember that when dealing with text files, `setContents` handles Java style strings, which must be in bare LF, or Unix style newline format. In binary format, `setContents` should be the base64 encoded data.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Parameters:**
+- `contents` - the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### setContents
+
+```java
+public void setContents(PHXStringBuffer contents)
+ throws java.io.IOException
+```
+Sets the contents of the temporary file. The actual file is not modified until the `writeFile()` method is issued. Remember that when dealing with text files, `setContents` handles Java style strings, which must be in bare LF, or Unix style newline format. In binary format, `setContents` should be the base64 encoded data.
+
+ The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Parameters:**
+- `contents` - the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### setContents
+
+```java
+public void setContents(java.io.File tempFile)
+```
+Sets the contents of the temporary file to an existing file. The actual file is not modified until the `writeFile()` method is issued.
+
+The specified file is placed into a new `ManagedFileHandle`.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Parameters:**
+- `tempFile` - the temp file holding with the desired contents already on disk
+
+### setContents
+
+```java
+public void setContents(java.io.File tempFile,
+ java.util.UUID newId,
+ java.lang.String mimeType,
+ java.nio.charset.Charset encoding)
+```
+Sets the contents of the temporary file to an existing file. The actual file is not modified until the `writeFile()` method is issued.
+
+The specified file is placed into a new`ManagedFileHandle`.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Parameters:**
+- `tempFile` - the temp file holding with the desired contents already on disk
+- `newId` - the new ID to set. This will typically be a new UUID (you may use `setContents(java.io.File)` for convenience)
+- `mimeType` - the mimetype of the contents, if known (may be null)
+- `encoding` - the encoding of the file, if known
+
+### setContents
+
+```java
+public void setContents(com.phoenix_int.util.ManagedFileHandle tempFile,
+ java.util.UUID newId,
+ java.lang.String mimeType,
+ java.nio.charset.Charset encoding)
+```
+Sets the contents of the temporary file to an existing ManagedFileHandle. The actual file is not modified until the `writeFile()` method is issued.
+
+A new reference to the specified `ManagedFileHandle` is created. The reference is released when the instance is closed, `deleteContents()` is called, or the contents are replaced by another `setContents(java.lang.String)` overload.
+
+**Parameters:**
+- `tempFile` - a handle to a temporary file containing the value for the variable. This may be null for files with no contents.
+- `newId` - the new ID to set. This will typically be a new random UUID, unless these contents are being transferred from another PHXRawFile or similar structure which has maintained the ID.
+- `mimeType` - the mimetype of the contents, if known (may be null)
+- `encoding` - the encoding of the contents, if known (may be null if unknown or the file is not text)
+
+### getEncoding
+
+```java
+public java.nio.charset.Charset getEncoding()
+```
+Get the encoding of the contents. This function may return null if the encoding of the contents is unknown, or if the contents are binary and not text-based.
+
+**Returns:**
+- the encoding of the contents, if applicable and known
+
+### getContents
+
+```java
+public java.lang.String getContents()
+ throws java.io.IOException
+```
+Retrieves the contents of the temporary file. If `_needRead` is `true`, this will load the contents from the actual file into the temporary file.
+
+**Returns:**
+- the contents of the file, or an empty string if no file exists.
+
+**Throws:**
+- `java.io.IOException`
+
+### getTemporaryFile
+
+```java
+public java.io.File getTemporaryFile()
+ throws java.io.IOException
+```
+Get the current temporary file; if `_needRead` is `true` this will load the contents from the actual file into the temporary.
+
+**Returns:**
+- the file, or null if there are no contents
+
+**Throws:**
+- `java.io.IOException` - on error
+
+### getTemporaryFileHandle
+
+```java
+public com.phoenix_int.util.ManagedFileHandle getTemporaryFileHandle()
+```
+Get an additional reference to the temporary file containing the current value, or null if there is no temp file currently. Note that, according to the convention for `ManagedFileHandle`, the caller receives the results of `ManagedFileHandle.createNewReference()`, and is responsible for calling `ManagedFileHandle.close()`.
+
+**Returns:**
+- an additional reference to the temporary file handle, or null if no temporary file is in use
+
+### fromFile
+
+```java
+public void fromFile(java.lang.String filename)
+ throws java.io.IOException
+```
+Sets the filename and then loads the contents of the actual file on disk into the temporary file. It is preferred that you use `setName()` when you create a PHXRawFile and then use `readFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be loaded.
+
+### readFile
+
+```java
+public void readFile(java.lang.String filename)
+ throws java.io.IOException
+```
+Sets the filename and then loads the contents of the actual file on disk into the temporary file. It is preferred that you use `setName()` when you create a PHXRawFile and then use `readFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be loaded.
+
+### fromFile
+
+```java
+public void fromFile()
+ throws java.io.IOException
+```
+Loads the contents of the actual file on disk into the temporary file. Functionally equivalent to `readFile()`.
+
+The handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be loaded.
+
+### readFile
+
+```java
+public void readFile(boolean useDFT)
+ throws java.io.IOException
+```
+Loads the contents of the actual file on disk into the temporary file.
+
+**Parameters:**
+- `useDFT` - If true, the file won't really be read but instead its existence will be verified and a flag set.
+
+If the file is read, the handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be loaded.
+
+### deleteFile
+
+```java
+public void deleteFile(java.lang.String fileName)
+ throws java.io.IOException
+```
+Deletes the actual file from disk. Does not affect the temporary file.
+
+**Parameters:**
+- `fileName` - the file to delete
+
+**Throws:**
+- `java.io.IOException`
+
+### deleteFile
+
+```java
+public void deleteFile()
+```
+Deletes the actual file from disk. Does not affect the temporary file.
+
+### deleteContents
+
+```java
+public void deleteContents()
+```
+Releases the handle to the temporary file. This may delete the file if nobody else is holding a `ManagedFileHandle`.
+
+### backupFile
+
+```java
+public void backupFile(java.lang.String fileName)
+ throws java.io.IOException
+```
+Backup the actual file on disk. File is at the same location with ".bac" appended to the end. If a file by that name already exists, it is deleted prior to moving.
+
+**Parameters:**
+- `fileName` - the file to backup
+
+**Throws:**
+- `java.io.IOException`
+
+### backupFile
+
+```java
+public void backupFile()
+```
+Backup the actual file on disk. File is at the same location with ".bac" appended to the end. If a file by that name already exists, it is deleted prior to moving.
+
+### readFile
+
+```java
+public void readFile()
+ throws java.io.IOException
+```
+Loads the contents of the actual file on disk into the temporary file.
+
+If the file is read, the handle to the previous contents is released, potentially deleting it if no other references are being held. Because the contents are reset, you may need to call `unmanageTempFile()` again.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be loaded.
+
+### markAsRead
+
+```java
+public void markAsRead()
+```
+Call this function after you manually get the contents of the actual file. The function records its name and timestamp for use with the `hasChanged()` function.
+
+### hasChanged
+
+```java
+public boolean hasChanged()
+```
+Checks to see if the actual file has changed since the last time `getContents()` was called.
+
+**Returns:**
+- `true` if the timestamp of the file is new, or if the file name has changed
+
+### toFile
+
+```java
+public void toFile(java.lang.String fileName)
+ throws java.io.IOException
+```
+Sets the filename and then writes from the temp file to the actual file. It is preferred that you use `setName()` when you create a PHXRawFile and then use `writeFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be written.
+
+### writeFile
+
+```java
+public void writeFile(java.lang.String fileName)
+ throws java.io.IOException
+```
+Sets the filename and then writes from the temp file to the actual file. It is preferred that you use `setName()` when you create a PHXRawFile and then use `writeFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be written.
+
+### toFile
+
+```java
+public void toFile()
+ throws java.io.IOException
+```
+Writes from the temp file to the actual file.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be written.
+
+### writeFile
+
+```java
+public void writeFile()
+ throws java.io.IOException
+```
+Writes from the temp file to the actual file.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be written.
+
+### getValueStreamLen
+
+```java
+public long getValueStreamLen()
+ throws java.io.IOException
+```
+Gets the length of a stream to the temporary file contents.
+
+**Returns:**
+- The length of a stream returned by the `getValueStream` method.
+
+**Throws:**
+- `java.io.IOException`
+
+### getValueStream
+
+```java
+@Deprecated
+public java.io.InputStream getValueStream()
+ throws java.io.IOException
+```
+**Deprecated.** using `toString2().getInputStream()` is prefered.
+
+Gets an `InputStream` to the working contents of the file. Reads the contents from the actual file into the temp file if necessary.
+
+**Returns:**
+- An `InputStream` to the file contents, encoded in Base64.
+
+**Throws:**
+- `java.io.IOException` - thrown if the file can't be read.
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+ throws java.io.IOException
+```
+Gets a PHXStringBuffer representation of the contents of the temporary file.
+
+**Specified by:**
+- `toString2` in interface `IPHXType2`
+
+**Returns:**
+- PHXStringBuffer representation of the type
+
+**Throws:**
+- `java.io.IOException`
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer newContents)
+ throws java.io.IOException,
+ PHXGetByUrlException
+```
+Sets the file temporary file contents to the value of the PHXStringBuffer.
+
+**Specified by:**
+- `fromString2` in interface `IPHXType2`
+
+**Parameters:**
+- `newContents` - the new contents of the file
+
+**Throws:**
+- `java.io.IOException`
+- `PHXGetByUrlException`
+
+### toAPIObject
+
+```java
+public java.util.Map toAPIObject(com.phoenix_int.functional.FunctionThrows fileStore)
+ throws EX extends java.lang.Throwable,
+ java.io.IOException
+```
+Convert this instance to a string-string map appropriate for serialization.
+
+**Type Parameters:**
+- `EX` - the type of exception thrown by the file-store function
+
+**Parameters:**
+- `fileStore` - a file-store function that may be used to capture the file value out-of-band.
+
+**Returns:**
+- a map that is appropriate for serialization
+
+**Throws:**
+- `java.io.IOException` - if a delayed DFT read occurs and causes an exception
+- `EX` - when thrown by the file-store function
+- `EX extends java.lang.Throwable`
+
+### fromAPIObject
+
+```java
+public void fromAPIObject(java.util.Map object,
+ com.phoenix_int.functional.FunctionThrows fileStore)
+ throws EX extends java.lang.Throwable
+```
+Populate this instance from a string-string map.
+
+**Type Parameters:**
+- `EX` - the type of exception thrown by the file-store function
+
+**Parameters:**
+- `object` - the string-string map.
+- `fileStore` - a function that can reverse the storage used when the original object was serialized. Note that, according to the convention for `ManagedFileHandle`, this function `(fromAPIObject(java.util.Map, com.phoenix_int.functional.FunctionThrows))` becomes responsible for closing the returned handle.
+
+**Throws:**
+- `EX` - when thrown by the file-store function
+- `EX extends java.lang.Throwable`
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+converts the variable to a string
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+Sets the file temporary file contents to the value of the string.
+
+**Specified by:**
+- `fromString` in interface [`IPHXType`](IPHXType.md)
+
+**Parameters:**
+- `value` - the value to use
+
+### setMetaData
+
+```java
+public void setMetaData(PHXRawFile metaData)
+```
+
+### finalize
+
+```java
+protected void finalize()
+ throws java.lang.Throwable
+```
+Although close should be called manually before garbage collection, do so here as a backup. Note that Java makes no guarantee that any object is ever actually garbage collected; if the JVM exits without running GC and picking up this object, the finalizer will never be called. We cannot rely on Java GC as a defense against leaking PHXRawFile objects.
+
+**Overrides:**
+- `finalize` in class `java.lang.Object`
+
+**Throws:**
+- `java.lang.Throwable`
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare` -
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead` - to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### _setContentFromOther
+
+```java
+protected final void _setContentFromOther(PHXRawFile variable)
+```
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface `IPHXType2`
+
+**Type Parameters:**
+- `T` - Type of the result of the visit.
+
+**Parameters:**
+- `visitor` - The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### close
+
+```java
+public void close()
+```
+
+
+**Specified by:**
+- `close` in interface `java.lang.AutoCloseable`
+
+### createCopy
+
+```java
+public PHXRawFile createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFileArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFileArray.md
new file mode 100644
index 0000000000..edd606919a
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRawFileArray.md
@@ -0,0 +1,1017 @@
+# Class PHXRawFileArray
+
+
+**Packages:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+ ↳ com.phoenix_int.aserver.types.PHXRawFileArray
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md), java.lang.Iterable
+
+---
+
+**Declaration:**
+
+```java
+public class PHXRawFileArray
+extends PHXSimpleArray
+```
+Wraps an array of PHXRawFile variables for the ScriptWrapper utility.
+
+
+**See Also:**
+- [PHXSimpleArray](PHXSimpleArray.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_data,_lockDims,_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXRawFileArray()` |
+| `PHXRawFileArray(java.lang.Object data)` |
+| `PHXRawFileArray(PHXRawFileArrayother)`
Clone another PHXRawFileArray's value and metadata. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_getMetaData(PHXSimpleTypev2)`
Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. |
+| `protected void` | `_setMetaData(PHXSimpleTypev2)`
Sets a simple type's meta data based on the meta data in this object. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)`
Allocates a single element in a default state. |
+| `PHXRawFileArray` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)`
Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromFile(int index)`
loads the file from disk for an element of an 1D array. |
+| `void` | `fromFile(int[] index)`
loads the file from disk for an element of an array. |
+| `void` | `fromFile(int[] index, java.lang.String fileName)`
Sets the filename and then reads from disk for an element of an array. |
+| `void` | `fromFile(int index, java.lang.String fileName)`
Sets the filename and then reads from disk for an element of an 1D array. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(int[] index, java.lang.String value)`
converts a String representation to the internal value for an element of an array |
+| `void` | `fromString(int index, java.lang.String value)`
converts a String representation to the internal value for an element of an 1D array |
+| `java.lang.String` | `getBaseName()`
gets the base name of the files stored in the array |
+| `java.lang.String` | `getContents(int index()`
retrieves the contents of the file for an element of an 1D array |
+| `java.lang.String` | `getContents(int[] index()`
retrieves the contents of the file for an element of an array |
+| `java.lang.String` | `getFileExtension(int index()`
Returns the extension of the file for an element of an 1D array |
+| `java.lang.String` | `getFileExtension(int[] index()`
Returns the extension of the file for an element of an array |
+| `boolean` | `getIsBinary()`
Tells whether or not the array contains binary files or not. |
+| `java.lang.String` | `getMimeType()`
get mime type of the files in the array. Currently all elements of an array should have the same mime type. |
+| `java.lang.String` | `getName(int index()`
retrieves the name of the file for an element of an 1D array |
+| `java.lang.String` | `getName(int[] index()`
retrieves the name of the file for an element of an array |
+| `java.lang.String` | `getNameCoded(int index()`
retrieves the name of the file in coded form (without `$variables` replaced) for an element of an 1D array |
+| `java.lang.String` | `getNameCoded(int[] index()`
retrieves the name of the file in coded form (without `$variables` replaced) for an element of an array |
+| `java.lang.String[]` | `getNames()`
get file names of the elements as an array |
+| `java.lang.String[]` | `getNamesCoded()`
get coded file names of the elements as an array |
+| `java.lang.String` | `getNamesCodedString()`
get coded file names of the elements as a comma separated string |
+| `java.lang.String` | `getNamesString()`
get file names as a comma separated list |
+| `java.lang.String[]` | `getURLs()`
get URLs of the elements as an array |
+| `java.lang.String` | `getURLsString()`
get URLs of the elements as a comma separated string |
+| `PHXRawFile` | `getValue(int index)`
a utility function to return the internal PHXRawFile that represents the array element for the 1D array. |
+| `PHXRawFile` | `getValue(int[] index)`
a utility function to return the internal PHXRawFile that represents the array element for the array. |
+| `boolean` | `hasChanged(int index)`
checks to see if the file has changed since the last time `getContents()` was called for an element of an 1D array |
+| `boolean` | `hasChanged(int[] index)`
checks to see if the file has changed since the last time `getContents()` was called for an element of an array |
+| `void` | `markAsRead(int index)`
set `markAsRead` flag for an element for an 1D array call this function after you manually get the contents of the file. |
+| `void` | `markAsRead(int[] index)`
set `markAsRead` flag for an element for an array call this function after you manually get the contents of the file. |
+| `void` | `readFile(int index)`
loads the file from disk for an element of an 1D array. |
+| `void` | `readFile(int[] index)`
loads the file from disk for an element of an array. |
+| `void` | `setBaseName(java.lang.String name)`
sets the base name of files for this array |
+| `void` | `setContents(int[] index, java.lang.String contents)`
sets the contents of the file for an array element for an array. |
+| `void` | `setContents(int index, java.lang.String contents)`
sets the contents of the file for an array element for an 1D array. |
+| `void` | `setFileExtension(int[] index, java.lang.String extension)`
Sets the extension of the file for an element of an array |
+| `void` | `setFileExtension(int index, java.lang.String extension)`
Sets the extension of the file for an element of an 1D array |
+| `void` | `setIsBinary(boolean value)`
Forces elements of this array to be binary or not. |
+| `void` | `setMimeType(java.lang.String value)`
Set mime type the array. Currently all elements of an array should have
+ the same mime type. |
+| `void` | `setName(int[] index, java.lang.String name)`
sets the name of the file for an element of an array |
+| `void` | `setName(int index, java.lang.String name)`
sets the name of the file for an element of an 1D array |
+| `void` | `setValue(int[] index,PHXRawFileval)`
a utility function to set the internal PHXRawFile that represents the array element for the array. |
+| `void` | `setValue(int[] index,PHXSimpleTypeval)`
Sets an element as an object of the appropriate PHXSimpleType. Must be overridden in subclasses |
+| `void` | `setValue(int[] index, java.lang.String val)`
a utility function to set the value of an array element for the 1D array. |
+| `void` | `setValue(int index,PHXRawFileval)`
a utility function to set the internal PHXRawFile that represents the array element for the 1D array. |
+| `void` | `setValue(int index, java.lang.String val)`
a utility function to set the value of an array element for the 1D array. |
+| `void` | `toFile(int index)`
writes the file to disk for an element of an 1D array |
+| `void` | `toFile(int[] index)`
writes the file to disk for an element of an array |
+| `void` | `toFile(int[] index, java.lang.String fileName)`
sets the filename and then writes the file to disk for an element of an array. |
+| `void` | `toFile(int index, java.lang.String fileName)`
sets the filename and then writes the file to disk for an element of an 1D array. |
+| `java.lang.String` | `toString(int index)`
converts an element of the 1D array to a string |
+| `java.lang.String` | `toString(int[] index)`
converts an element of the array to a string |
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleArray
+`_getMetaData`, `_setMetaData`, `checkRectangular`, `copy`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement`
+
+### Methods inherited from class com.phoenix_int.aserver.types.PHXSimpleType
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXRawFileArray
+
+```java
+public PHXRawFileArray()
+```
+
+### PHXRawFileArray
+
+```java
+public PHXRawFileArray(java.lang.Object data)
+```
+
+### PHXRawFileArray
+
+```java
+public PHXRawFileArray(PHXRawFileArray other)
+```
+Clone another PHXRawFileArray's value and metadata.
+
+**Parameters:**
+- `other`- the other PHXRawFileArray to clone.
+============ METHOD DETAIL ==========
+### Method Detail
+
+### getName
+
+```java
+public java.lang.String getName(int index)
+```
+retrieves the name of the file for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the name of the file
+
+### getName
+
+```java
+public java.lang.String getName(int[] index)
+```
+retrieves the name of the file for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the name of the file
+
+### getNameCoded
+
+```java
+public java.lang.String getNameCoded(int index)
+```
+retrieves the name of the file in coded form (without `$variables` replaced) for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the name of the file in coded form
+
+### getNameCoded
+
+```java
+public java.lang.String getNameCoded(int[] index)
+```
+retrieves the name of the file in coded form (without `$variables` replaced) for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the name of the file in coded form
+
+### getFileExtension
+
+```java
+public java.lang.String getFileExtension(int index)
+```
+Returns the extension of the file for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- extension
+
+### getFileExtension
+
+```java
+public java.lang.String getFileExtension(int[] index)
+```
+Returns the extension of the file for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- extension
+
+### setFileExtension
+
+```java
+public void setFileExtension(int index,
+ java.lang.String extension)
+ throws java.io.IOException
+```
+Sets the extension of the file for an element of an 1D array.
+
+It is preferred that you use `setName()` and let the system automatically figure out the extension based on what you pass in. Then, you can use `readFile()` and `writeFile()` without passing filenames to those calls. This allows for progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `extension`- file extension
+
+**Throws:**
+- `java.io.IOException`
+
+### setFileExtension
+
+```java
+public void setFileExtension(int[] index,
+ java.lang.String extension)
+ throws java.io.IOException
+```
+Sets the extension of the file for an element of an array
+
+It is preferred that you use `setName()` and let the system automatically figure out the extension based on what you pass in. Then, you can use `readFile()` and `writeFile()` without passing filenames to those calls. This allows for progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `extension`- file extension
+
+**Throws:**
+- `java.io.IOException`
+
+### setName
+
+```java
+public void setName(int index,
+ java.lang.String name)
+ throws java.io.IOException
+```
+sets the name of the file for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+- `name`- file name
+
+**Throws:**
+- `java.io.IOException`
+
+### setName
+
+```java
+public void setName(int[] index,
+ java.lang.String name)
+ throws java.io.IOException
+```
+sets the name of the file for an element of an array
+
+**Parameters:**
+- `index`- array index
+- `name`- file name
+
+**Throws:**
+- `java.io.IOException`
+
+### setBaseName
+
+```java
+public void setBaseName(java.lang.String name)
+ throws java.io.IOException
+```
+sets the base name of files for this array
+
+**Parameters:**
+- `name`- base name
+
+**Throws:**
+- `java.io.IOException`
+
+### getBaseName
+
+```java
+public java.lang.String getBaseName()
+```
+gets the base name of the files stored in the array
+
+**Returns:**
+- the name
+
+### getIsBinary
+
+```java
+public boolean getIsBinary()
+```
+Tells whether or not the array contains binary files or not.
+
+Simply switches on whether or not the mime type starts with text. Currently all elements of an array should have the same binaryness.
+
+**Returns:**
+- true if the file is binary
+
+### setIsBinary
+
+```java
+public void setIsBinary(boolean value)
+```
+Forces elements of this array to be binary or not.
+
+If this causes the mode to change, will set the mime type to `text/plain` or `application/octet-stream` as appropriate. Currently all elements of an array should have the same binaryness.
+
+**Parameters:**
+- `value`- the value to set
+
+### getMimeType
+
+```java
+public java.lang.String getMimeType()
+```
+get mime type of the files in the array
+
+Currently all elements of an array should have the same mime type.
+
+**Returns:**
+- mime type
+
+### setMimeType
+
+```java
+public void setMimeType(java.lang.String value)
+```
+Set mime type the array
+
+Currently all elements of an array should have the same mime type.
+
+**Parameters:**
+- `value`- the mimeType mime type
+
+### getNames
+
+```java
+public java.lang.String[] getNames()
+```
+get file names of the elements as an array
+
+**Returns:**
+- list of file names
+
+### getNamesString
+
+```java
+public java.lang.String getNamesString()
+```
+get file names as a comma separated list
+
+**Returns:**
+- list of file names
+
+### getNamesCoded
+
+```java
+public java.lang.String[] getNamesCoded()
+```
+get coded file names of the elements as an array
+
+**Returns:**
+- list of coded file names
+
+### getNamesCodedString
+
+```java
+public java.lang.String getNamesCodedString()
+```
+get coded file names of the elements as a comma separated string
+
+**Returns:**
+- list of coded file names
+
+### getURLs
+
+```java
+public java.lang.String[] getURLs()
+```
+get URLs of the elements as an array
+
+**Returns:**
+- list of file URLs
+
+### getURLsString
+
+```java
+public java.lang.String getURLsString()
+```
+get URLs of the elements as a comma separated string
+
+**Returns:**
+- list of file URLs
+
+### setContents
+
+```java
+public void setContents(int index,
+ java.lang.String contents)
+ throws java.io.IOException
+```
+sets the contents of the file for an array element for an 1D array.
+
+The actual file is not modified until the `writeFile()` method is issued.
+
+Remember that when dealing with text files, `setContents` handles Java style strings, which must be in bare LF, or Unix style newline format. In binary format, `setContents` should be the base64 encoded data.
+
+**Parameters:**
+- `index`- array index
+- `contents`- the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### setContents
+
+```java
+public void setContents(int[] index,
+ java.lang.String contents)
+ throws java.io.IOException
+```
+sets the contents of the file for an array element for an array.
+
+The actual file is not modified until the `writeFile()` method is issued.
+
+Remember that when dealing with text files, `setContents` handles Java style strings, which must be in bare LF, or Unix style newline format. In binary format, `setContents` should be the base64 encoded data.
+
+**Parameters:**
+- `index`- array index
+- `contents`- the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### getContents
+
+```java
+public java.lang.String getContents(int index)
+ throws java.lang.Exception
+```
+retrieves the contents of the file for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the contents of the file
+
+**Throws:**
+- `java.lang.Exception`
+
+### getContents
+
+```java
+public java.lang.String getContents(int[] index)
+ throws java.io.IOException
+```
+retrieves the contents of the file for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- the contents of the file
+
+**Throws:**
+- `java.io.IOException`
+
+### fromFile
+
+```java
+public void fromFile(int index)
+ throws java.io.IOException
+```
+loads the file from disk for an element of an 1D array.
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### fromFile
+
+```java
+public void fromFile(int[] index)
+ throws java.io.IOException
+```
+loads the file from disk for an element of an array.
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### readFile
+
+```java
+public void readFile(int index)
+ throws java.io.IOException
+```
+loads the file from disk for an element of an 1D array.
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### readFile
+
+```java
+public void readFile(int[] index)
+ throws java.io.IOException
+```
+loads the file from disk for an element of an array.
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### fromFile
+
+```java
+public void fromFile(int index,
+ java.lang.String fileName)
+ throws java.io.IOException
+```
+Sets the filename and then reads from disk for an element of an 1D array.
+
+It is preferred that you use `setName()` when you create a PHXRawFile and then use `readFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `fileName`- file name
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### fromFile
+
+```java
+public void fromFile(int[] index,
+ java.lang.String fileName)
+ throws java.io.IOException
+```
+Sets the filename and then reads from disk for an element of an array.
+
+It is preferred that you use `setName()` when you create a PHXRawFile and then use `readFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `fileName`- file name
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be loaded.
+
+### markAsRead
+
+```java
+public void markAsRead(int index)
+```
+set `markAsRead` flag for an element for an 1D array
+
+call this function after you manually get the contents of the file. The function records its name and timestamp for use with the `hasChanged()` function
+
+**Parameters:**
+- `index`- array index
+
+### markAsRead
+
+```java
+public void markAsRead(int[] index)
+```
+set `markAsRead` flag for an element for an array
+
+call this function after you manually get the contents of the file. The function records it's name and timestamp for use with the `hasChanged()` function
+
+**Parameters:**
+- `index`- array index
+
+### hasChanged
+
+```java
+public boolean hasChanged(int index)
+```
+checks to see if the file has changed since the last time `getContents()` was called for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- `true` if the timestamp of the file is new, or if the file name has changed
+
+### hasChanged
+
+```java
+public boolean hasChanged(int[] index)
+```
+checks to see if the file has changed since the last time `getContents()` was called for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- `true` if the timestamp of the file is new, or if the file name has changed
+
+### toFile
+
+```java
+public void toFile(int index,
+ java.lang.String fileName)
+ throws java.io.IOException
+```
+sets the filename and then writes the file to disk for an element of an 1D array.
+
+It is preferred that you use `setName()` when you create a PHXRawFile and then use `writeFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `fileName`- name of the file to write
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be written.
+
+### toFile
+
+```java
+public void toFile(int[] index,
+ java.lang.String fileName)
+ throws java.io.IOException
+```
+sets the filename and then writes the file to disk for an element of an array.
+
+It is preferred that you use `setName()` when you create a PHXRawFile and then use `writeFile()` without passing a filename to it. This allows progress monitoring to work correctly in all cases.
+
+**Parameters:**
+- `index`- array index
+- `fileName`- name of the file to write
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be written.
+
+### toFile
+
+```java
+public void toFile(int index)
+ throws java.io.IOException
+```
+writes the file to disk for an element of an 1D array
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be written.
+
+### toFile
+
+```java
+public void toFile(int[] index)
+ throws java.io.IOException
+```
+writes the file to disk for an element of an array
+
+**Parameters:**
+- `index`- array index
+
+**Throws:**
+- `java.io.IOException`- thrown if the file can't be written.
+
+### toString
+
+```java
+public java.lang.String toString(int index)
+```
+converts an element of the 1D array to a string
+
+**Overrides:**
+- `toString` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- a String representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString(int[] index)
+```
+converts an element of the array to a string
+
+**Overrides:**
+- `toString` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- a String representation of the variable
+
+### fromString
+
+```java
+public void fromString(int index,
+ java.lang.String value)
+```
+converts a String representation to the internal value
+ for an element of an 1D array
+
+**Overrides:**
+- `fromString` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+- `value`- the value to convert
+
+### fromString
+
+```java
+public void fromString(int[] index,
+ java.lang.String value)
+```
+converts a String representation to the internal value for an element of an array
+
+**Overrides:**
+- `fromString` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+- `value`- the value to convert
+
+### getValue
+
+```java
+public PHXRawFile getValue(int index)
+```
+a utility function to return the internal PHXRawFile that represents the array element for the 1D array.
+
+**Overrides:**
+- `getValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- array element
+
+### getValue
+
+```java
+public PHXRawFile getValue(int[] index)
+```
+a utility function to return the internal PHXRawFile that represents the array element for the array.
+
+**Specified by:**
+- `getValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- array index
+
+**Returns:**
+- array element
+
+### setValue
+
+```java
+public void setValue(int index,
+ PHXRawFile val)
+```
+a utility function to set the internal PHXRawFile that represents the array element for the 1D array.
+
+**Parameters:**
+- `index`- array index
+- `val`- array element to set
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXRawFile val)
+```
+a utility function to set the internal PHXRawFile that represents the array element for the array.
+
+**Parameters:**
+- `index`- array index
+- `val`- array element to set
+
+### setValue
+
+```java
+public void setValue(int index,
+ java.lang.String val)
+ throws java.io.IOException
+```
+a utility function to set the value of an array element for the 1D array. This is a synomym of `setContent()`.
+
+**Parameters:**
+- `index`- array index
+- `val`- value to set
+
+**Throws:**
+- `java.io.IOException`
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ java.lang.String val)
+ throws java.io.IOException
+```
+a utility function to set the value of an array element for the 1D array. This is a synomym of `setContent()`.
+
+**Parameters:**
+- `index`- array index
+- `val`- value to set
+
+**Throws:**
+- `java.io.IOException`
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Must override this function and return true if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [`IPHXType`](IPHXType.md) or [`IPHXType2`](IPHXType2.md). For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+### _getMetaData
+
+```java
+protected void _getMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Worker which takes the meta data from an instance of [PHXSimpleType](PHXSimpleType.md) and sets it into our meta data. Override this in order to add more custom meta data in sub-classes. Be sure to call `super._getMetaData(PHXSimpleType)`, though!
+
+**Overrides:**
+- `_getMetaData` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+### _setMetaData
+
+```java
+protected void _setMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sets a simple type's meta data based on the meta data in this object. Override this to set additional information in sub-classes. Be sure to call `super._setMetaData(PHXSimpleType)`.
+
+**Overrides:**
+- `_setMetaData` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Allocates a single element in a default state.
+
+This overrides `allocateElement` to set the common metadata for the newly created element
+
+**Overrides:**
+- `allocateElement` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+ Array comparison is handled as follows:
+
+ 1) Compare the number of dimensions between the two arrays
+ 2) Compare the length of dimensions between the two arrays
+ 3) Compare the values in each of the two arrays
+
+ If these three conditions are met, the two arrays are considered naturally equal.
+
+**Overrides:**
+- `equalsNatural` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md) - if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class `PHXSimpleType`
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- `PHXInvalidTypeException`- if the specified object is of an invalid type or there is an error in conversion.
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXSimpleType val)
+```
+Sets an element as an object of the appropriate [`PHXSimpleType `](PHXSimpleType.md)
+
+Must be overridden in subclasses
+
+**Specified by:**
+- `setValue` in class [`PHXSimpleArray`](PHXSimpleArray.md)
+
+**Parameters:**
+- `index`- nD array index
+- `val`- value to set
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXRawFileArray createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class `PHXSimpleType`
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefArrayProperty.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefArrayProperty.md
new file mode 100644
index 0000000000..054d88e3ab
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefArrayProperty.md
@@ -0,0 +1,226 @@
+# Class PHXRefArrayProperty
+
+
+**Packages:** `com.phoenix_int.aserver.types`
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXRefArrayProperty
+```
+
+
+**All Implemented Interfaces:**
+- [IPHXDescription](IPHXDescription.md), [IPHXRefPropInfo](IPHXRefPropInfo.md)
+
+---
+
+
+**Declaration:**
+
+```java
+public class PHXRefArrayProperty
+extends java.lang.Object
+implements IPHXRefPropInfo
+```
+
+This is a class for holding properties of a reference object
+
+- **type**: String
+- **enumValues**: String[]
+- **description**: String
+- **title**: String
+- **input**: boolean
+
+where type may be any of the following:
+
+- "long"
+- "double"
+- "boolean"
+- "string"
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `void` | `enumValuesFromString(java.lang.String enumValues)`
sets the enum values from a comma-separated list of values |
+| `java.lang.String` | `getDescription()`
retrieves a description of the ref prop |
+| `java.lang.String[]` | `getEnumValues()`
lists enum values |
+| `boolean` | `getInput()`
retrieves an indicator of whether the ref prop is an input or an output. |
+| `java.lang.String` | `getName()`
retrieves the name of the variable |
+| `java.lang.String` | `getTitle()`
retrieves a title of the ref prop. |
+| `java.lang.String` | `getType()`
retrieves the current type of the variable |
+| `java.lang.String` | `getValues(int index)`
gets the value at an index |
+| `void` | `setDescription(java.lang.String value)`
sets a description of the ref prop |
+| `void` | `setEnumValues(java.lang.String[] enumValues)`
sets the enum values |
+| `void` | `setInput(boolean value)`
sets an indicator for the ref prop |
+| `void` | `setTitle(java.lang.String value)`
sets a title of the ref prop |
+| `void` | `setValues(int index, java.lang.String v)`
sets the value for the variable |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+retrieves the name of the variable
+
+**Specified by:**
+- `getName` in interface `IPHXRefPropInfo`###
+
+**Returns:**
+- the name of the variable
+
+### getDescription
+
+```java
+public java.lang.String getDescription()
+```
+retrieves a description of the ref prop
+
+**Specified by:**
+- `getDescription` in interface `IPHXDescription`
+
+**Returns:**
+- a description of the ref prop
+
+### setDescription
+
+```java
+public void setDescription(java.lang.String value)
+```
+sets a description of the ref prop
+
+**Specified by:**
+- `setDescription` in interface `IPHXDescription`
+
+**Parameters:**
+- `value`- a description of the ref prop
+
+### getTitle
+
+```java
+public java.lang.String getTitle()
+```
+retrieves a title of the ref prop. Used by ModelCenter when displaying the variable in certain dialogs
+
+**Specified by:**
+- `getTitle` in interface `IPHXRefPropInfo`
+
+**Returns:**
+- a title for the ref prop
+
+### setTitle
+
+```java
+public void setTitle(java.lang.String value)
+```
+sets a title of the ref prop
+
+**Specified by:**
+- `setTitle` in interface `IPHXRefPropInfo`
+
+**Parameters:**
+- `value`- a title for the ref prop
+
+### getInput
+
+```java
+public boolean getInput()
+```
+retrieves an indicator of whether the ref prop is an input or an output. If it's an output, the driver component will calculate a value for it.
+
+**Specified by:**
+- `getInput` in interface `IPHXRefPropInfo`
+
+**Returns:**
+- an indicator if the ref prop is an input
+
+### setInput
+
+```java
+public void setInput(boolean value)
+```
+sets an indicator for the ref prop
+
+**Specified by:**
+- `setInput` in interface `IPHXRefPropInfo`
+
+**Parameters:**
+- `value`- an indicator for the ref prop
+
+### getValues
+
+```java
+public java.lang.String getValues(int index)
+```
+gets the value at an index
+
+**Parameters:**
+- `index`- the desired index
+
+### setValues
+
+```java
+public void setValues(int index,
+ java.lang.String v)
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+### getType
+
+```java
+public java.lang.String getType()
+```
+retrieves the current type of the variable
+
+**Specified by:**
+- `getType` in interface `IPHXRefPropInfo`
+
+**Returns:**
+- the value of the variable
+
+### getEnumValues
+
+```java
+public java.lang.String[] getEnumValues()
+```
+lists enum values
+
+**Specified by:**
+- `getEnumValues` in interface `IPHXRefPropInfo`
+
+**Returns:**
+- enum values
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String[] enumValues)
+```
+sets the enum values
+
+**Specified by:**
+- `setEnumValues` in interface `IPHXRefPropInfo`
+
+**Parameters:**
+- `enumValues`- an array enum values
+
+### enumValuesFromString
+
+```java
+public void enumValuesFromString(java.lang.String enumValues)
+```
+sets the enum values from a comma-separated list of values
+
+**Specified by:**
+- `enumValuesFromString` in interface `IPHXRefPropInfo`
+
+**Parameters:**
+- `enumValues`- a comma-separated list of values
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefProperty.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefProperty.md
new file mode 100644
index 0000000000..cb8b97a71b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXRefProperty.md
@@ -0,0 +1,247 @@
+# Class PHXRefProperty
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXRefProperty
+```
+
+**All Implemented Interfaces:**
+- [IPHXDescription](IPHXDescription.md), [IPHXRefPropInfo](IPHXRefPropInfo.md)
+
+---
+
+**Declaration:**
+
+```java
+public class PHXRefProperty
+extends java.lang.Object
+implements IPHXRefPropInfo
+```
+
+This is a class for holding properties of a reference object
+
+- **type**: String
+- **enumValues**: String[]
+- **description**: String
+- **title**: String
+- **input**: boolean
+
+where type may be any of the following:
+
+- "long"
+- "double"
+- "boolean"
+- "string"
+
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXRefProperty(java.lang.String name, java.lang.String type)`
constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `void` | `enumValuesFromString(java.lang.String enumValues)`
sets the enum values from a comma-separated list of values |
+| `java.lang.String` | `getDescription()`
retrieves a description of the ref prop |
+| `java.lang.String[]` | `getEnumValues()`
lists enum values |
+| `boolean` | `getInput()`
retrieves an indicator of whether the ref prop is an input or an output. |
+| `java.lang.String` | `getName()`
retrieves the name of the variable |
+| `java.lang.String` | `getTitle()`
retrieves a title of the ref prop. |
+| `java.lang.String` | `getType()`
retrieves the current type of the variable |
+| `java.lang.String` | `getValue()`
retrieves the current value of the variable |
+| `void` | `setDescription(java.lang.String value)`
sets a description of the ref prop |
+| `void` | `setEnumValues(java.lang.String[] enumValues)`
sets the enum values |
+| `void` | `setInput(boolean value)`
sets an indicator for the ref prop |
+| `void` | `setTitle(java.lang.String value)`
sets a title of the ref prop |
+| `void` | `setValue(java.lang.String v)`
sets the value for the variable |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXRefProperty
+
+```java
+public PHXRefProperty(java.lang.String name,
+ java.lang.String type)
+```
+constructor
+
+**Parameters:**
+- `name`- the name of the property
+- `type`- the type of the property
+
+### Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+retrieves the name of the variable
+
+**Specified by:**
+- `getName` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Returns:**
+- the name of the variable
+
+### getDescription
+
+```java
+public java.lang.String getDescription()
+```
+retrieves a description of the ref prop
+
+**Specified by:**
+- `getDescription` in interface [`IPHXDescription`](IPHXDescription.md)
+
+**Returns:**
+- a description of the ref prop
+
+### setDescription
+
+```java
+public void setDescription(java.lang.String value)
+```
+sets a description of the ref prop
+
+**Specified by:**
+- `setDescription` in interface [`IPHXDescription`](IPHXDescription.md)
+
+**Parameters:**
+- `value`- a description of the ref prop
+
+### getTitle
+
+```java
+public java.lang.String getTitle()
+```
+retrieves a title of the ref prop. Used by ModelCenter when displaying the variable in certain dialogs
+
+**Specified by:**
+- `getTitle` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Returns:**
+- a title for the ref prop
+
+### setTitle
+
+```java
+public void setTitle(java.lang.String value)
+```
+sets a title of the ref prop
+
+**Specified by:**
+- `setTitle` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Parameters:**
+- `value`- a title for the ref prop
+
+### getInput
+
+```java
+public boolean getInput()
+```
+retrieves an indicator of whether the ref prop is an input or an output. If it's an output, the driver component will calculate a value for it.
+
+**Specified by:**
+- `getInput` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Returns:**
+- an indicator if the ref prop is an input
+
+### setInput
+
+```java
+public void setInput(boolean value)
+```
+sets an indicator for the ref prop
+
+**Specified by:**
+- `setInput` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Parameters:**
+- `value`- an indicator for the ref prop
+
+### getValue
+
+```java
+public java.lang.String getValue()
+ throws PHXTypeMismatchException
+```
+retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### setValue
+
+```java
+public void setValue(java.lang.String v)
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+### getType
+
+```java
+public java.lang.String getType()
+```
+retrieves the current type of the variable
+
+**Specified by:**
+- `getType` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Returns:**
+- the value of the variable
+
+### getEnumValues
+
+```java
+public java.lang.String[] getEnumValues()
+```
+lists enum values
+
+**Specified by:**
+- `getEnumValues` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Returns:**
+- enum values
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String[] enumValues)
+```
+sets the enum values
+
+**Specified by:**
+- `setEnumValues` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Parameters:**
+- `enumValues`- an array enum values
+
+### enumValuesFromString
+
+```java
+public void enumValuesFromString(java.lang.String enumValues)
+```
+sets the enum values from a comma-separated list of values
+
+**Specified by:**
+- `enumValuesFromString` in interface [`IPHXRefPropInfo`](IPHXRefPropInfo.md)
+
+**Parameters:**
+- `enumValues`- a comma-separated list of values
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReference.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReference.md
new file mode 100644
index 0000000000..c82a7b4c81
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReference.md
@@ -0,0 +1,352 @@
+# Class PHXReference
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXReference
+```
+
+
+**All Implemented Interfaces:**
+- [IPHXAlwaysWriteable](IPHXAlwaysWriteable.md), [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md)
+
+---
+
+```java
+public class PHXReference
+extends java.lang.Object
+implements IPHXAlwaysWriteable, IPHXType2
+```
+The type for references. This class matches up to references in ModelCenter. Users may define their own properties in addition to the value property.
+
+
+**value**: double
+
+
+**properties**: PHXRefProperty[]
+
+
+**reference**: String
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.IPHXType2
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXReference()`constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `PHXRefProperty` | `_getProperty(java.lang.String name)`
retrieves a named property |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `IPHXRefPropInfo` | `createRefProp(java.lang.String name, java.lang.String type)`
adds a property to the variable |
+| `void` | `fromString(java.lang.String s)`
converts from a string |
+| `void` | `fromString2(PHXStringBuffers)`
converts from a PHXStringBuffer |
+| `java.lang.String` | `getDescription()` |
+| `PHXRefProperty[]` | `getProperties()`
retrieves the properties of the variable |
+| `java.lang.String` | `getReference()`
retrieves the current reference string. |
+| `boolean` | `getRefPropValueBoolean(java.lang.String name)` |
+| `double` | `getRefPropValueDouble(java.lang.String name)`
gets a value for a ref prop |
+| `long` | `getRefPropValueLong(java.lang.String name)` |
+| `java.lang.String` | `getRefPropValueString(java.lang.String name)` |
+| `double` | `getValue()`
retrieves the current value of the variable |
+| `void` | `setDescription(java.lang.String desc)` |
+| `void` | `setProperties(PHXRefProperty[] v)` |
+| `void` | `setReference(java.lang.String ref)`
sets the value for the reference string. |
+| `void` | `setRefPropValue(java.lang.String name, boolean value)` |
+| `void` | `setRefPropValue(java.lang.String name, double value)`
sets a value for a ref prop |
+| `void` | `setRefPropValue(java.lang.String name, long value)` |
+| `void` | `setRefPropValue(java.lang.String name, java.lang.String value)` |
+| `void` | `setValue(double v)`
sets the value for the variable |
+| `java.lang.String` | `toString()`
converts to a string |
+| `PHXStringBuffer` | `toString2()`
converts to a PHXStringBuffer |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXReference
+
+```java
+public PHXReference()
+```
+constructor
+
+## Method Detail
+
+### getValue
+
+```java
+public double getValue()
+```
+retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+### setValue
+
+```java
+public void setValue(double v)
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+### getReference
+
+```java
+public java.lang.String getReference()
+```
+retrieves the current reference string. This is a client-supplied value describing what the reference value points to.
+
+**Returns:**
+- the reference string
+
+### setReference
+
+```java
+public void setReference(java.lang.String ref)
+```
+sets the value for the reference string. This should only be called by the client application, e.g. ModelCenter.
+
+**Parameters:**
+- `ref`- the reference string
+
+### getProperties
+
+```java
+public PHXRefProperty[] getProperties()
+```
+retrieves the properties of the variable
+
+**Returns:**
+- the properties of the variable
+
+### setProperties
+
+```java
+public void setProperties(PHXRefProperty[] v)
+```
+
+### createRefProp
+
+```java
+public IPHXRefPropInfo createRefProp(java.lang.String name,
+ java.lang.String type)
+```
+adds a property to the variable
+
+**Parameters:**
+- `name`- the name of the property
+- `type`- property type: "long", "double", "boolean", or "string"
+
+### getRefPropValueDouble
+
+```java
+public double getRefPropValueDouble(java.lang.String name)
+ throws PHXTypeMismatchException
+```
+gets a value for a ref prop
+
+**Parameters:**
+- `name`- the name of the property
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### getRefPropValueLong
+
+```java
+public long getRefPropValueLong(java.lang.String name)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### getRefPropValueBoolean
+
+```java
+public boolean getRefPropValueBoolean(java.lang.String name)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### getRefPropValueString
+
+```java
+public java.lang.String getRefPropValueString(java.lang.String name)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ double value)
+ throws PHXTypeMismatchException
+```
+sets a value for a ref prop
+
+**Parameters:**
+- `name`- the name of the property
+- `value`- the value of the property
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ long value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ boolean value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ java.lang.String value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- `PHXTypeMismatchException`
+
+### _getProperty
+
+```java
+public PHXRefProperty _getProperty(java.lang.String name)
+```
+retrieves a named property
+
+**Parameters:**
+- `name`- the name of the property
+
+**Returns:**
+- the property matching the specified name
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+converts to a PHXStringBuffer
+
+**Specified by:**
+- `toString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Returns:**
+- a PHXStringBuffer
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+converts to a string
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString`in class`java.lang.Object`
+
+**Returns:**
+- a string
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer s)
+```
+converts from a PHXStringBuffer
+
+**Specified by:**
+- `fromString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Parameters:**
+- `s`- the PHXStringBuffer value
+
+### fromString
+
+```java
+public void fromString(java.lang.String s)
+```
+converts from a string
+
+**Specified by:**
+- `fromString` in interface [`IPHXType`](IPHXType.md)
+
+**Parameters:**
+- `s`- the string value
+
+### getDescription
+
+```java
+public java.lang.String getDescription()
+```
+
+### setDescription
+
+```java
+public void setDescription(java.lang.String desc)
+```
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Specified by:**
+- `Accept` in interface [`IPHXType2`](IPHXType2.md)
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReferenceArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReferenceArray.md
new file mode 100644
index 0000000000..c39e2de262
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXReferenceArray.md
@@ -0,0 +1,304 @@
+# Class PHXReferenceArray
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXReferenceArray
+```
+
+**All Implemented Interfaces:**
+- [IPHXAlwaysWriteable](../../../../com/phoenix_int/aserver/IPHXAlwaysWriteable.html)
+
+---
+**Declaration:**
+
+```java
+public class PHXReferenceArray
+extends java.lang.Object
+implements IPHXAlwaysWriteable
+```
+
+The type for references. This class matches up to references in ModelCenter. Users may define their own properties in addition to the value property.
+
+- **value**: double[]
+- **length**: int
+- **autoGrow**: boolean
+- **properties**: PHXRefArrayProperty[]
+- **reference**: String[]
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXReferenceArray()`constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `IPHXRefPropInfo` | `createRefProp(java.lang.String name, java.lang.String type)`
adds a ref prop to the variable. |
+| `boolean` | `getAutoGrow()`
retrieves the autoGrow value |
+| `int` | `getLength()`
retrieves the number of references in the array |
+| `PHXRefArrayProperty[]` | `getProperties()`
get-set function for AServer |
+| `java.lang.String[]` | `getReference()`
retrieves the current reference string. |
+| `java.lang.String` | `getReference(int i)` |
+| `boolean` | `getRefPropValueBoolean(java.lang.String name, int index)` |
+| `double` | `getRefPropValueDouble(java.lang.String name, int index)`
gets a value for a ref prop |
+| `long` | `getRefPropValueLong(java.lang.String name, int index)` |
+| `java.lang.String` | `getRefPropValueString(java.lang.String name, int index)` |
+| `double[]` | `getValues()`
retrieves the current value of the variable |
+| `void` | `setAutoGrow(boolean flag)`
sets the autoGrow value. |
+| `void` | `setLength(int v)`
sets the number of references |
+| `void` | `setProperties(PHXRefArrayProperty[] p)` |
+| `void` | `setReference(int i, java.lang.String ref)` |
+| `void` | `setReference(java.lang.String[] ref)`
sets the value for the reference string. |
+| `void` | `setRefPropValue(java.lang.String name, int index, boolean value)` |
+| `void` | `setRefPropValue(java.lang.String name, int index, double value)`
sets a value for a ref prop |
+| `void` | `setRefPropValue(java.lang.String name, int index, long value)` |
+| `void` | `setRefPropValue(java.lang.String name, int index, java.lang.String value)` |
+| `void` | `setValues(double[] v)`
sets the value for the variable |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXReferenceArray
+
+```java
+public PHXReferenceArray()
+```
+constructor
+
+## Method Detail
+
+### getProperties
+
+```java
+public PHXRefArrayProperty[] getProperties()
+```
+get-set function for MCRE
+
+### setProperties
+
+```java
+public void setProperties(PHXRefArrayProperty[] p)
+```
+
+### getValues
+
+```java
+public double[] getValues()
+```
+retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+### setValues
+
+```java
+public void setValues(double[] v)
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+### getReference
+
+```java
+public java.lang.String[] getReference()
+```
+retrieves the current reference string. This is a client-supplied value describing what the reference value points to.
+
+**Returns:**
+- the reference string
+
+### getReference
+
+```java
+public java.lang.String getReference(int i)
+```
+
+### setReference
+
+```java
+public void setReference(java.lang.String[] ref)
+```
+sets the value for the reference string. This should only be called by the client application, e.g. ModelCenter.
+
+**Parameters:**
+- `ref`- the reference string
+
+### setReference
+
+```java
+public void setReference(int i,
+ java.lang.String ref)
+```
+
+### getLength
+
+```java
+public int getLength()
+```
+retrieves the number of references in the array
+
+**Returns:**
+- the number of references
+
+### setLength
+
+```java
+public void setLength(int v)
+```
+sets the number of references
+
+**Parameters:**
+- `v`- the number of references
+
+### getAutoGrow
+
+```java
+public boolean getAutoGrow()
+```
+retrieves the autoGrow value
+
+**Returns:**
+- true or false
+
+### setAutoGrow
+
+```java
+public void setAutoGrow(boolean flag)
+```
+sets the autoGrow value. If true, the client application is allowed to resize the array as needed.
+
+**Parameters:**
+- `flag`- true or false
+
+### createRefProp
+
+```java
+public IPHXRefPropInfo createRefProp(java.lang.String name,
+ java.lang.String type)
+```
+adds a ref prop to the variable.
+
+**Parameters:**
+- `name`- the name of the property
+- `type`- property type: "long", "double", "boolean", or "string"
+
+### getRefPropValueDouble
+
+```java
+public double getRefPropValueDouble(java.lang.String name,
+ int index)
+ throws PHXTypeMismatchException
+```
+gets a value for a ref prop
+
+**Parameters:**
+- `name`- the name of the property
+- `index`- the array element
+
+**Returns:**
+- the value of the property
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### getRefPropValueLong
+
+```java
+public long getRefPropValueLong(java.lang.String name,
+ int index)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### getRefPropValueBoolean
+
+```java
+public boolean getRefPropValueBoolean(java.lang.String name,
+ int index)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### getRefPropValueString
+
+```java
+public java.lang.String getRefPropValueString(java.lang.String name,
+ int index)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ int index,
+ double value)
+ throws PHXTypeMismatchException
+```
+sets a value for a ref prop
+
+**Parameters:**
+- `name`- the name of the property
+- `index`- the array element
+- `value`- the value of the property
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ int index,
+ long value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ int index,
+ boolean value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
+
+### setRefPropValue
+
+```java
+public void setRefPropValue(java.lang.String name,
+ int index,
+ java.lang.String value)
+ throws PHXTypeMismatchException
+```
+
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md)
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXScriptObject.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXScriptObject.md
new file mode 100644
index 0000000000..ec4d3a1155
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXScriptObject.md
@@ -0,0 +1,1161 @@
+# Class PHXScriptObject
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXScriptObject
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md)
+
+---
+
+**Declaration:**
+```java
+public class PHXScriptObject
+extends PHXSimpleType
+```
+The type for object variables.
+
+This class holds an instance of `PHXObjectHost` that wraps around a Java or Python object, and uses introspection to get and set values of the internal object.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXScriptObject()`Creates a new instance of PHXScriptObject |
+
+### Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `java.lang.Object` | `callMethod(java.lang.String method)`
call a method |
+| `PHXSimpleType` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `void` | `deleteAllMembers()`
delete all members for non-strict type object. |
+| `void` | `deleteMember(java.lang.String mIndex)`
delete a member for non-strict type object. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromFile(java.lang.String mIndex)`
load a file into a file member. |
+| `void` | `fromFile(java.lang.String mIndex, java.lang.String fileName)`
load a file into a file member |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
update object using the XML value |
+| `void` | `fromString2(PHXStringBuffervalue)`
update object using the XML value |
+| `void` | `fromXML(java.lang.String xmlStr)
`update the object from an XML string |
+| `boolean` | `getBooleanArrayMemberValue(java.lang.String mIndex, int index)`
get the value of an 1D boolean array element |
+| `boolean` | `getBooleanArrayMemberValue(java.lang.String mIndex, int[] index)`
get the value of a boolean array element |
+| `boolean` | `getBooleanMemberValue(java.lang.String mIndex)`
gets the value of boolean member |
+| `java.lang.String` | `getClassURL()`
get the class type. |
+| `double` | `getDoubleArrayMemberValue(java.lang.String mIndex, int index)`
get the value of an 1D double array element |
+| `double` | `getDoubleArrayMemberValue(java.lang.String mIndex, int[] index)`
get the value of a double array element |
+| `double` | `getDoubleMemberValue(java.lang.String mIndex)`
gets the value of a double member |
+| `java.lang.String` | `getFileName(java.lang.String mIndex)`
return name of the data source file |
+| `int` | `getIntArrayMemberValue(java.lang.String mIndex, int index)`
get the value of an 1D integer array element |
+| `int` | `getIntArrayMemberValue(java.lang.String mIndex, int[] index)`
get the value of an integer array element |
+| `java.lang.Object` | `getInternalObject()`
get internal Java object that represent the data |
+| `int` | `getIntMemberValue(java.lang.String mIndex)`
gets the value of an integer member |
+| `boolean` | `getIsBinary(java.lang.String mIndex)`
return true if the file member contains a binary file |
+| `java.lang.String` | `getMemberDescription(java.lang.String mIndex)`
get description of the member |
+| `int[]` | `getMemberDimensions(java.lang.String mIndex)`
get dimensions and size of an array member |
+| `java.lang.String` | `getMemberEnumAliases(java.lang.String mIndex)`
get enum aliases of the member |
+| `java.lang.String` | `getMemberEnumValues(java.lang.String mIndex)`
return enum values of the member |
+| `int` | `getMemberLength(java.lang.String mIndex)`
get length of an 1D array member |
+| `int` | `getMemberLength(java.lang.String mIndex, int dimension)`
get length of an array member |
+| `java.lang.String[]` | `getMemberList(java.lang.String mIndex)`
get a list of child members. |
+| `java.lang.String` | `getMemberLowerBound(java.lang.String mIndex)`
get lowerBound of a member |
+| `int` | `getMemberNumDimensions(java.lang.String mIndex)`
get number of dimensions of an array member |
+| `java.lang.String` | `getMemberProperty(java.lang.String mIndex, java.lang.String propertyName)`
get value of a property of the member |
+| `java.lang.String` | `getMemberType(java.lang.String mIndex)`
return type of the member |
+| `java.lang.String` | `getMemberUnits(java.lang.String mIndex)`
get units of the member |
+| `java.lang.String` | `getMemberUpperBound(java.lang.String mIndex)`
return upperBound of the member |
+| `java.lang.String` | `getMemberValueAsString(java.lang.String mIndex)`
gets the value of a member as a string |
+| `java.lang.String[]` | `getMethodList()`
get a list of methods |
+| `java.lang.String` | `getStringArrayMemberValue(java.lang.String mIndex, int index)`
get the value of an 1D String array element |
+| `java.lang.String` | `getStringArrayMemberValue(java.lang.String mIndex, int[] index)`
get the value of a string array element |
+| `java.lang.String` | `getStringMemberValue(java.lang.String mIndex)`
gets the value of string member |
+| `boolean` | `hasMember(java.lang.String mIndex)`
check if a member exists |
+| `boolean` | `hasMemberLowerBound(java.lang.String mIndex)`
check if a member has lower bound defined |
+| `boolean` | `hasMemberUpperBound(java.lang.String mIndex)`
check if a member has lower bound defined |
+| `void` | `initialize(com.phoenix_int.object.PHXDataObjectClass pClass)`
initialize object variable with the specified class |
+| `boolean` | `isNonStrictType()`
check whether a class is a non-strict type |
+| `void` | `setBaseName(java.lang.String mIndex, java.lang.String baseName)`
set base name for the data source file |
+| `void` | `setBooleanArrayMemberValue(java.lang.String mIndex, int[] index, boolean value)`
sets the value of a boolean array member |
+| `void` | `setBooleanArrayMemberValue(java.lang.String mIndex, int index, boolean value)`
sets the value of an 1D boolean array member |
+| `void` | `setBooleanMemberValue(java.lang.String mIndex, boolean value)`
sets the value of a boolean member |
+| `void` | `setDoubleArrayMemberValue(java.lang.String mIndex, int[] index, double value)`
sets the value of a double array member |
+| `void` | `setDoubleArrayMemberValue(java.lang.String mIndex, int index, double value)`
sets the value of a 1D double array member |
+| `void` | `setDoubleMemberValue(java.lang.String mIndex, double value)`
sets the value of a double member |
+| `void` | `setFileExtension(java.lang.String mIndex, java.lang.String fileExtension)`
set file extesion of the data source file |
+| `void` | `setFileName(java.lang.String mIndex, java.lang.String fileName)`
set name of the data source file |
+| `void` | `setIntArrayMemberValue(java.lang.String mIndex, int[] index, int value)`
sets the value of an integer array member |
+| `void` | `setIntArrayMemberValue(java.lang.String mIndex, int index, int value)`
sets the value of an 1D integer array member |
+| `void` | `setIntMemberValue(java.lang.String mIndex, int value)`
sets the value of an integer member |
+| `void` | `setIsBinary(java.lang.String mIndex, boolean isBinary)`
set binary flag for a file member |
+| `void` | `setMember(java.lang.String mIndex, java.lang.String value, java.lang.String type)`
sets the value of a member. |
+| `void` | `setMemberDescription(java.lang.String mIndex, java.lang.String description)`
set description of the member |
+| `void` | `setMemberDimensions(java.lang.String mIndex, int[] dims)`
set dimensions of an array member |
+| `void` | `setMemberEnumAliases(java.lang.String mIndex, java.lang.String enumAliases)`
set enum aliases of the member |
+| `void` | `setMemberEnumValues(java.lang.String mIndex, java.lang.String enumValues)`
set enum values of the member |
+| `void` | `setMemberLength(java.lang.String mIndex, int length)`
set length of an 1D array member |
+| `void` | `setMemberLength(java.lang.String mIndex, int length, int dimension)`
set length of an array member |
+| `void` | `setMemberLowerBound(java.lang.String mIndex, java.lang.String lowerBound)`
set lowerBound of the member |
+| `void` | `setMemberProperty(java.lang.String mIndex, java.lang.String propertyName, java.lang.String propertyValue)`
set value of a property of the member |
+| `void` | `setMemberUnits(java.lang.String mIndex, java.lang.String units)`
set units of the member |
+| `void` | `setMemberUpperBound(java.lang.String mIndex, java.lang.String upperBound)`
set upperBound of the member |
+| `void` | `setMemberValueFromString(java.lang.String mIndex, java.lang.String value)`
sets the value of a member from string |
+| `void` | `setStringArrayMemberValue(java.lang.String mIndex, int[] index, java.lang.String value)`
sets the value of a string array member |
+| `void` | `setStringArrayMemberValue(java.lang.String mIndex, int index, java.lang.String value)`
sets the value of a 1D string array member |
+| `void` | `setStringMemberValue(java.lang.String mIndex, java.lang.String value)`
sets the value of a string member |
+| `void` | `toFile(java.lang.String mIndex)`
write a file member to a file file name must have been specified |
+| `void` | `toFile(java.lang.String mIndex, java.lang.String fileName)`
write a file member to a file |
+| `java.lang.String` | `toString()`
get XML representation of the object variable |
+| `PHXStringBuffer` | `toString2()`
converts the variable to a PHXStringBuffer |
+| `java.lang.String` | `toXML()`
get XML representation of the object |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+### Constructor Detail
+
+#### PHXScriptObject
+
+```java
+public PHXScriptObject()
+```
+Creates a new instance of PHXScriptObject
+
+### Method Detail
+
+#### initialize
+
+```java
+public void initialize(com.phoenix_int.object.PHXDataObjectClass pClass)
+ throws java.io.IOException
+```
+initialize object variable with the specified class
+
+**Parameters:**
+- `pClass`- class information
+
+**Throws:**
+- `java.io.IOException`
+
+#### toString
+
+```java
+public java.lang.String toString()
+```
+get XML representation of the object variable
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- XML string
+
+#### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+update object using the XML value
+
+**Parameters:**
+- `value`- XML string for the object
+
+#### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+converts the variable to a PHXStringBuffer
+
+**Returns:**
+- the PHXStringBuffer representation of the variable
+
+#### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+update object using the XML value
+
+**Parameters:**
+- `value`- the value to convert
+
+#### getClassURL
+
+```java
+public java.lang.String getClassURL()
+```
+get the class type. The class type is defined in a URL format
+
+**Returns:**
+- class type
+
+#### getMemberValueAsString
+
+```java
+public java.lang.String getMemberValueAsString(java.lang.String mIndex)
+```
+gets the value of a member as a string
+
+**Parameters:**
+- `mIndex`- member index (e.g., `member1, grp1.member1, member1[1], member1[1,2]`)
+
+**Returns:**
+- the value of the variable
+
+#### getDoubleMemberValue
+
+```java
+public double getDoubleMemberValue(java.lang.String mIndex)
+```
+gets the value of a double member
+
+**Parameters:**
+- `mIndex`- member index
+
+**Returns:**
+- the value of the variable
+
+#### getIntMemberValue
+
+```java
+public int getIntMemberValue(java.lang.String mIndex)
+```
+gets the value of an integer member
+
+**Parameters:**
+- `mIndex`- member index
+
+**Returns:**
+- the value of the variable
+
+#### getBooleanMemberValue
+
+```java
+public boolean getBooleanMemberValue(java.lang.String mIndex)
+```
+gets the value of boolean member
+
+**Parameters:**
+- `mIndex`- member index
+
+**Returns:**
+- the value of the variable
+
+#### getStringMemberValue
+
+```java
+public java.lang.String getStringMemberValue(java.lang.String mIndex)
+```
+gets the value of string member
+
+**Parameters:**
+- `mIndex`- member index
+
+**Returns:**
+- the value of the variable
+
+#### getDoubleArrayMemberValue
+
+```java
+public double getDoubleArrayMemberValue(java.lang.String mIndex,
+ int index)
+```
+get the value of an 1D double array element
+
+**Parameters:**
+- `mIndex`- member index
+
+**Returns:**
+- the value of the variable
+
+#### getDoubleArrayMemberValue
+
+```java
+public double getDoubleArrayMemberValue(java.lang.String mIndex,
+ int[] index)
+```
+get the value of a double array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getIntArrayMemberValue
+
+```java
+public int getIntArrayMemberValue(java.lang.String mIndex,
+ int index)
+```
+get the value of an 1D integer array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getIntArrayMemberValue
+
+```java
+public int getIntArrayMemberValue(java.lang.String mIndex,
+ int[] index)
+```
+get the value of an integer array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getBooleanArrayMemberValue
+
+```java
+public boolean getBooleanArrayMemberValue(java.lang.String mIndex,
+ int index)
+```
+get the value of an 1D boolean array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getBooleanArrayMemberValue
+
+```java
+public boolean getBooleanArrayMemberValue(java.lang.String mIndex,
+ int[] index)
+```
+get the value of a boolean array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getStringArrayMemberValue
+
+```java
+public java.lang.String getStringArrayMemberValue(java.lang.String mIndex,
+ int index)
+```
+get the value of an 1D String array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### getStringArrayMemberValue
+
+```java
+public java.lang.String getStringArrayMemberValue(java.lang.String mIndex,
+ int[] index)
+```
+get the value of a string array element
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+
+**Returns:**
+- the value of the variable
+
+#### setMemberValueFromString
+
+```java
+public void setMemberValueFromString(java.lang.String mIndex,
+ java.lang.String value)
+```
+sets the value of a member from string
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- the value of the member
+
+#### setDoubleMemberValue
+
+```java
+public void setDoubleMemberValue(java.lang.String mIndex,
+ double value)
+```
+sets the value of a double member
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- value of the member
+
+#### setIntMemberValue
+
+```java
+public void setIntMemberValue(java.lang.String mIndex,
+ int value)
+```
+sets the value of an integer member
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- value of the member
+
+#### setBooleanMemberValue
+
+```java
+public void setBooleanMemberValue(java.lang.String mIndex,
+ boolean value)
+```
+sets the value of a boolean member
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- value of the member
+
+#### setStringMemberValue
+
+```java
+public void setStringMemberValue(java.lang.String mIndex,
+ java.lang.String value)
+```
+sets the value of a string member
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- value of the member
+
+#### setDoubleArrayMemberValue
+
+```java
+public void setDoubleArrayMemberValue(java.lang.String mIndex,
+ int index,
+ double value)
+```
+sets the value of a 1D double array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setDoubleArrayMemberValue
+
+```java
+public void setDoubleArrayMemberValue(java.lang.String mIndex,
+ int[] index,
+ double value)
+```
+sets the value of a double array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setIntArrayMemberValue
+
+```java
+public void setIntArrayMemberValue(java.lang.String mIndex,
+ int index,
+ int value)
+```
+sets the value of an 1D integer array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setIntArrayMemberValue
+
+```java
+public void setIntArrayMemberValue(java.lang.String mIndex,
+ int[] index,
+ int value)
+```
+sets the value of an integer array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setBooleanArrayMemberValue
+
+```java
+public void setBooleanArrayMemberValue(java.lang.String mIndex,
+ int index,
+ boolean value)
+```
+sets the value of an 1D boolean array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setBooleanArrayMemberValue
+
+```java
+public void setBooleanArrayMemberValue(java.lang.String mIndex,
+ int[] index,
+ boolean value)
+```
+sets the value of a boolean array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setStringArrayMemberValue
+
+```java
+public void setStringArrayMemberValue(java.lang.String mIndex,
+ int index,
+ java.lang.String value)
+```
+sets the value of a 1D string array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setStringArrayMemberValue
+
+```java
+public void setStringArrayMemberValue(java.lang.String mIndex,
+ int[] index,
+ java.lang.String value)
+```
+sets the value of a string array member
+
+**Parameters:**
+- `mIndex`- member index
+- `index`- array index
+- `value`- value of the member
+
+#### setMember
+
+```java
+public void setMember(java.lang.String mIndex,
+ java.lang.String value,
+ java.lang.String type)
+```
+sets the value of a member. A new member will be create if the member does not exist or the current type is not the same as the type specified.
+
+**Parameters:**
+- `mIndex`- member index
+- `value`- the value of the member
+- `type`- type of the member
+
+#### deleteMember
+
+```java
+public void deleteMember(java.lang.String mIndex)
+```
+delete a member for non-strict type object. An exception will be thrown for strict types
+
+**Parameters:**
+- `mIndex`- member index
+
+#### deleteAllMembers
+
+```java
+public void deleteAllMembers()
+```
+delete all members for non-strict type object. An exception will be thrown for strict types
+
+#### callMethod
+
+```java
+public java.lang.Object callMethod(java.lang.String method)
+```
+call a method
+
+**Parameters:**
+- `method`- name of the method
+
+**Returns:**
+- primitives object (e.g., `java.lang.Double`) or array of primitives (e.g., `double[]`)
+
+#### isNonStrictType
+
+```java
+public boolean isNonStrictType()
+```
+check whether a class is a non-strict type
+
+**Returns:**
+- true if the class is a non-strict type
+
+#### toXML
+
+```java
+public java.lang.String toXML()
+```
+get XML representation of the object
+
+**Returns:**
+- XML representation of the object
+
+#### fromXML
+
+```java
+public void fromXML(java.lang.String xmlStr)
+```
+update the object from an XML string
+
+**Parameters:**
+- `xmlStr`- content of an object in XML format
+
+#### hasMember
+
+```java
+public boolean hasMember(java.lang.String mIndex)
+```
+check if a member exists
+
+**Parameters:**
+- `mIndex`- member name
+
+**Returns:**
+- `true` if the member exists
+
+#### getMemberLength
+
+```java
+public int getMemberLength(java.lang.String mIndex,
+ int dimension)
+```
+get length of an array member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `dimension`- dimension id of the array member
+
+**Returns:**
+- length of the array member
+
+#### getMemberLength
+
+```java
+public int getMemberLength(java.lang.String mIndex)
+```
+get length of an 1D array member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- length of the array member
+
+#### setMemberLength
+
+```java
+public void setMemberLength(java.lang.String mIndex,
+ int length,
+ int dimension)
+```
+set length of an array member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `length`- of the array
+- `dimension`- dimension id of the array member
+
+#### setMemberLength
+
+```java
+public void setMemberLength(java.lang.String mIndex,
+ int length)
+```
+set length of an 1D array member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `length`- of the array
+
+#### setMemberDimensions
+
+```java
+public void setMemberDimensions(java.lang.String mIndex,
+ int[] dims)
+```
+set dimensions of an array member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `dims`- length of the array
+
+#### getMemberNumDimensions
+
+```java
+public int getMemberNumDimensions(java.lang.String mIndex)
+```
+get number of dimensions of an array member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### getMemberDimensions
+
+```java
+public int[] getMemberDimensions(java.lang.String mIndex)
+```
+get dimensions and size of an array member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### getMemberList
+
+```java
+public java.lang.String[] getMemberList(java.lang.String mIndex)
+```
+get a list of child members.
+
+**Parameters:**
+- `mIndex`- name of the parent member
+
+**Returns:**
+- String array of child names
+
+#### getMemberType
+
+```java
+public java.lang.String getMemberType(java.lang.String mIndex)
+```
+return type of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### getMethodList
+
+```java
+public java.lang.String[] getMethodList()
+```
+get a list of methods
+
+**Returns:**
+- String array of methods
+
+#### hasMemberLowerBound
+
+```java
+public boolean hasMemberLowerBound(java.lang.String mIndex)
+```
+check if a member has lower bound defined
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- `true` if the member has lower bound defined
+
+#### hasMemberUpperBound
+
+```java
+public boolean hasMemberUpperBound(java.lang.String mIndex)
+```
+check if a member has lower bound defined
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- `true` if the member has upper bound defined
+
+#### getMemberLowerBound
+
+```java
+public java.lang.String getMemberLowerBound(java.lang.String mIndex)
+```
+get lowerBound of a member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- lowerBound of the member
+
+#### setMemberLowerBound
+
+```java
+public void setMemberLowerBound(java.lang.String mIndex,
+ java.lang.String lowerBound)
+```
+set lowerBound of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `lowerBound`- lower bound
+
+#### getMemberUpperBound
+
+```java
+public java.lang.String getMemberUpperBound(java.lang.String mIndex)
+```
+return upperBound of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### setMemberUpperBound
+
+```java
+public void setMemberUpperBound(java.lang.String mIndex,
+ java.lang.String upperBound)
+```
+set upperBound of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `upperBound`- upper bound
+
+#### getMemberEnumValues
+
+```java
+public java.lang.String getMemberEnumValues(java.lang.String mIndex)
+```
+return enum values of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- enum values of the member as a comma separated string
+
+#### setMemberEnumValues
+
+```java
+public void setMemberEnumValues(java.lang.String mIndex,
+ java.lang.String enumValues)
+```
+set enum values of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `enumValues`- enumerated values as a comma separated string
+
+#### getMemberEnumAliases
+
+```java
+public java.lang.String getMemberEnumAliases(java.lang.String mIndex)
+```
+get enum aliases of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- enum aliases of the member as a comma separated string
+
+#### setMemberEnumAliases
+
+```java
+public void setMemberEnumAliases(java.lang.String mIndex,
+ java.lang.String enumAliases)
+```
+set enum aliases of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `enumAliases`- enumerated aliases as a comma separated string
+
+#### getMemberDescription
+
+```java
+public java.lang.String getMemberDescription(java.lang.String mIndex)
+```
+get description of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- description of the member
+
+#### setMemberDescription
+
+```java
+public void setMemberDescription(java.lang.String mIndex,
+ java.lang.String description)
+```
+set description of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `description`-
+
+#### getMemberUnits
+
+```java
+public java.lang.String getMemberUnits(java.lang.String mIndex)
+```
+get units of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+
+**Returns:**
+- units of the member
+
+#### setMemberUnits
+
+```java
+public void setMemberUnits(java.lang.String mIndex,
+ java.lang.String units)
+```
+set units of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `units`-
+
+#### getMemberProperty
+
+```java
+public java.lang.String getMemberProperty(java.lang.String mIndex,
+ java.lang.String propertyName)
+```
+get value of a property of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `propertyName`- name of the property
+
+**Returns:**
+- value of a property of the member
+
+#### setMemberProperty
+
+```java
+public void setMemberProperty(java.lang.String mIndex,
+ java.lang.String propertyName,
+ java.lang.String propertyValue)
+```
+set value of a property of the member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `propertyName`- name of the property
+- `propertyValue`- value of the property
+
+#### fromFile
+
+```java
+public void fromFile(java.lang.String mIndex,
+ java.lang.String fileName)
+```
+load a file into a file member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `fileName`- source file name
+
+#### fromFile
+
+```java
+public void fromFile(java.lang.String mIndex)
+```
+load a file into a file member. The file name must have been specified by `setFileName`.
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### toFile
+
+```java
+public void toFile(java.lang.String mIndex,
+ java.lang.String fileName)
+```
+write a file member to a file
+
+**Parameters:**
+- `mIndex`- name of the member
+- `fileName`- destination file name
+
+#### toFile
+
+```java
+public void toFile(java.lang.String mIndex)
+```
+write a file member to a file file name must have been specified
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### getIsBinary
+
+```java
+public boolean getIsBinary(java.lang.String mIndex)
+```
+return true if the file member contains a binary file
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### setIsBinary
+
+```java
+public void setIsBinary(java.lang.String mIndex,
+ boolean isBinary)
+```
+set binary flag for a file member
+
+**Parameters:**
+- `mIndex`- name of the member
+- `isBinary`- binary flag
+
+#### getFileName
+
+```java
+public java.lang.String getFileName(java.lang.String mIndex)
+```
+return name of the data source file
+
+**Parameters:**
+- `mIndex`- name of the member
+
+#### setFileName
+
+```java
+public void setFileName(java.lang.String mIndex,
+ java.lang.String fileName)
+```
+set name of the data source file
+
+**Parameters:**
+- `mIndex`- name of the member
+- `fileName`- file name
+
+#### setFileExtension
+
+```java
+public void setFileExtension(java.lang.String mIndex,
+ java.lang.String fileExtension)
+```
+set file extesion of the data source file
+
+**Parameters:**
+- `mIndex`- name of the member
+- `fileExtension`- file extension
+
+#### setBaseName
+
+```java
+public void setBaseName(java.lang.String mIndex,
+ java.lang.String baseName)
+```
+set base name for the data source file
+
+**Parameters:**
+- `mIndex`- name of the member
+- `baseName`- the new base name
+
+#### getInternalObject
+
+```java
+public java.lang.Object getInternalObject()
+```
+get internal Java object that represent the data
+
+**Returns:**
+- internal Java object that represent the actual data
+
+#### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
+
+#### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [PHXInvalidTypeException](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [PHXInvalidTypeException](PHXInvalidTypeException.md)
+
+ NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)- if the specified object is of an invalid type or there is an error in conversion.
+
+#### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+#### createCopy
+
+```java
+public PHXSimpleType createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleArray.md
new file mode 100644
index 0000000000..999955d25b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleArray.md
@@ -0,0 +1,841 @@
+# Class PHXSimpleArray``
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md),[IPHXUnits](IPHXUnits.md), java.lang.Iterable``
+
+
+**Direct Known Subclasses:**
+- [PHXBooleanArray](PHXBooleanArray.md), [PHXDoubleArray](PHXDoubleArray.md), [PHXLongArray](PHXLongArray.md), [PHXObjectArray](PHXObjectArray.md), [PHXRawFileArray](PHXRawFileArray.md), [PHXStringArray](PHXStringArray.md)
+
+---
+
+```java
+public abstract class PHXSimpleArray
+extends PHXSimpleType
+implements IPHXType2, java.lang.Iterable
+```
+This class enables components to create resizeable arrays where the number of dimensions is variable as well as the size of each dimension.Typically you don't use this class directly but one of its sub-classes that are created and passed to you automatically.
+
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+| --- | --- |
+| `protected java.lang.Object` | `_data` |
+| `protected boolean` | `_lockDims` |
+| `protected boolean` | `_lockResize` |
+
+## Constructor Summary
+
+| Modifier | Constructor and Description |
+| --- | --- |
+| `protected` | `PHXSimpleArray()`
Default Constructor |
+| `protected` | `PHXSimpleArray(java.lang.Object data)`
Constructs a PHXSimpleArray that wraps a particular ModelCenter Remote Execution style variable. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_getMetaData()`
Gets the meta data off of the first element of the array and sets it into our meta data info. |
+| `protected void` | `_getMetaData(PHXSimpleTypev)`
Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. |
+| `protected void` | `_setMetaData()`
Call this function to set the meta data from this object into every element of the array. |
+| `protected void` | `_setMetaData(PHXSimpleTypev)`
Sets a simple type's meta data based on the meta data in this object. |
+| `protected java.lang.Object` | `allocateElement(java.lang.Class elementClass)`
Allocates a single element in a default state. |
+| `static boolean` | `checkRectangular(java.lang.Object obj)`
Check if the array is rectangular |
+| `protected void` | `copy(PHXSimpleArrayother)`
Clone another PHXSimpleArray's value and metadata. |
+| `protected abstract boolean` | `dataTypeOK(java.lang.Class c)`
Must override this function and return true if the specified class is acceptable as an array element component type. |
+| `protected abstract java.lang.Object` | `elementFromString(java.lang.String value)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromString(int[] index,PHXStringBuffervalue)`
Sets the value of a single element based on string input. |
+| `void` | `fromString(int[] index, java.lang.String value)`
Sets the value of a single element based on string input. |
+| `void` | `fromString(int index, java.lang.String value)`
Sets the value of a single element based on string input for 1-d arrays. |
+| `void` | `fromString(java.lang.String in)`
reads in the entire array in string form. |
+| `void` | `fromString2(PHXStringBufferin)`
reads in the entire array in string form. |
+| `staticPHXSimpleArray` | `generateFor(java.lang.Object o)`
Static method to generate a new instance of one of the sub-classes of PHXSimpleArray as appropriate for the type of variable passed in. |
+| `staticPHXSimpleArray` | `generateFor(java.lang.Object o, java.lang.Class c)`
Static method to generate a new instance of one of the sub-classes of PHXSimpleArray as appropriate for the type of variable passed in. |
+| `java.lang.Object` | `getArray()`
Gets the entire contents of the array |
+| `java.lang.Object` | `getArrayElement(int index)`
Gets a particular element from a 1-d array |
+| `java.lang.Object` | `getArrayElement(int[] index)`
Gets a particular element from the array |
+| `java.lang.Class` | `getComponentType()`
Returns the component type of the array wrapped with this class |
+| `static java.lang.Class` | `getComponentType(java.lang.Object v)`
Gets the component type of an array, even for n-d arrays. |
+| `int[]` | `getDimensions()` |
+| `static int[]` | `getDimensions(java.lang.Object array)`
Gets the array of dimensions of the array |
+| `java.lang.Object` | `getFirst()`
Returns the first element of the array, or throws `ArrayIndexOutOfBounds` if there are no elements. |
+| `int` | `getLength()`
Gets the length of the first dimension of the array |
+| `int` | `getLength(int dim)`
Gets the length of a dimension of the array |
+| `boolean` | `getLockResize()` |
+| `protected int[]` | `getnDIndex(long oneDIndex, int[] actualSize)` |
+| `int` | `getNumDimensions()`
Gets the number of dimensions of the array |
+| `static int` | `getNumDimensions(java.lang.Object o)` |
+| `PHXSimpleArray` | `getSelf()` |
+| `T` | `getValue(int index)`
Gets an element as PHXSimpleType object of the appropriate subtype |
+| `abstractT` | `getValue(int[] index)`
Gets the value of an element as an object of the appropriate subtype Must be overridden in subclasses |
+| `static boolean` | `incrementIndex(int[] index, int[] size)`
Utility function for incrementing an nD index on the array |
+| `java.util.Iterator` | `iterator()`
Returns an iterator that loops over the array in the standard order, rightmost index varies fastest. |
+| `void` | `lockDimensions()`
Tells this array that the number of dimensions cannot be changed from what they are right now. |
+| `int[]` | `newIndex()`
Produces a new index based zeroed out, but with the proper dimensions |
+| `static int[]` | `parseIndex(java.lang.String index)`
Takes a string of the form "anything[n, n2, n3]" or "n, n2, n3" and returns an int[] of the index values. |
+| `void` | `resize(int[] newSize)`
Resize the nD array to the new size specified. |
+| `void` | `setArray(java.lang.Object v)`
Sets the entire array. |
+| `void` | `setArrayElement(int[] index, java.lang.Object v)`
Sets a particular element of the array |
+| `void` | `setArrayElement(int index, java.lang.Object v)`
Sets a particular element of a 1-d array |
+| `void` | `setDimensions(int[] dim)`
Sets the dimensions of the array. |
+| `void` | `setFirst(java.lang.Object val)`
Sets the first element of the array, or throws `ArrayIndexOutOfBounds` if there are no elements. |
+| `void` | `setLength(int len)`
Sets the length of the first dimension of the array. |
+| `void` | `setLength(int len, int dim)`
Sets the length of a dimensions of the array. |
+| `void` | `setLockResize(boolean lockResize)`
Tells this array that it cannot be resized. |
+| `abstract void` | `setValue(int[] index,Tval)`
Sets an element as an object of the appropriate PHXSimpleType. Must be overridden in subclasses |
+| `void` | `setValue(int index,Tval)`
Sets an element as an object of the appropriate PHXSimpleType |
+| `java.lang.String` | `toString()`
Returns the string form of this array. |
+| `java.lang.String` | `toString(int index)`
Converts a single element of a 1-d array to a string |
+| `java.lang.String` | `toString(int[] index)`
Converts a single element to a string |
+| `java.lang.String` | `toString(java.lang.String index)`
Converts a single element to a string |
+| `PHXStringBuffer` | `toString2()`
Returns the string form of this array. |
+| `PHXStringBuffer` | `toString2(int[] index)`
Converts a single element to a string |
+| `PHXStringBuffer` | `toString2(java.lang.String index)`
Converts a single element to a string |
+| `boolean` | `validElement(int[] index, int[] size)`
Is the given index valid? |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `createCopy`, `fromObject`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`Accept`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach, spliterator`
+
+## Field Detail
+
+### _data
+
+```java
+protected java.lang.Object _data
+```
+
+### _lockDims
+
+```java
+protected boolean _lockDims
+```
+
+### _lockResize
+
+```java
+protected boolean _lockResize
+```
+
+## Constructor Detail
+
+### PHXSimpleArray
+
+```java
+protected PHXSimpleArray(java.lang.Object data)
+```
+Constructs a PHXSimpleArray that wraps a particular ModelCenter Remote Execution style variable.
+
+**Parameters:**
+- `data`- The ModelCenter Remote Execution variable to wrap, which must
+ be an array.
+
+### PHXSimpleArray
+
+```java
+protected PHXSimpleArray()
+```
+Default Constructor
+============ METHOD DETAIL ==========
+### Method Detail
+
+### copy
+
+```java
+protected void copy(PHXSimpleArray other)
+```
+Clone another PHXSimpleArray's value and metadata.
+
+**Parameters:**
+- `other`- the other PHXSimpleArray to clone.
+
+### lockDimensions
+
+```java
+public void lockDimensions()
+```
+Tells this array that the number of dimensions cannot be changed from what they are right now.
+
+### setLockResize
+
+```java
+public void setLockResize(boolean lockResize)
+```
+Tells this array that it cannot be resized. Implies `lockDimensions`.
+
+### getLockResize
+
+```java
+public boolean getLockResize()
+```
+
+### _getMetaData
+
+```java
+protected void _getMetaData()
+```
+Gets the meta data off of the first element of the array and sets it into our meta data info. Call this from base classes in the constructor and after anything that might change the meta information on the first array element.
+
+### _getMetaData
+
+```java
+protected void _getMetaData(PHXSimpleType v)
+```
+Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. Override this in order to add more custom meta data in sub-classes. Be sure to call `super._getMetaData(PHXSimpleType)`, though!
+
+### dataTypeOK
+
+```java
+protected abstract boolean dataTypeOK(java.lang.Class c)
+```
+Must override this function and return true if the specified class is acceptable as an array element component type.
+
+### resize
+
+```java
+public void resize(int[] newSize)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Resize the nD array to the new size specified. Preserve elements if the # of dimensions stays the same, else initialize the array with default values.
+
+**Parameters:**
+- `newSize`- new dimensions for the array
+
+**Throws:**
+- `java.lang.IllegalAccessException`- if an error occurs allocating new array size
+- `java.lang.InstantiationException`- if an error occurs allocating new array size
+
+### getFirst
+
+```java
+public java.lang.Object getFirst()
+```
+Returns the first element of the array, or throws `ArrayIndexOutOfBounds` if there are no elements.
+
+### setFirst
+
+```java
+public void setFirst(java.lang.Object val)
+```
+Sets the first element of the array, or throws `ArrayIndexOutOfBounds` if there are no elements.
+
+### getLength
+
+```java
+public int getLength()
+```
+Gets the length of the first dimension of the array
+
+### getLength
+
+```java
+public int getLength(int dim)
+```
+Gets the length of a dimension of the array
+
+**Parameters:**
+- `dim`- the dimension of interest
+
+**Returns:**
+- the size of the dimension
+
+### setLength
+
+```java
+public void setLength(int len)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Sets the length of the first dimension of the array. Will preserve as many element values as possible.
+
+**Parameters:**
+- `len`- the new length of the 1D array
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if arguments are incorrect or don't jive with the current array
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### setLength
+
+```java
+public void setLength(int len,
+ int dim)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Sets the length of a dimensions of the array. You may grow the array by 1 dimension if 'dim' is the next dim that needs defining. You may shorten the array by passing in 'len' < 0 and 'dim' as the first dimension after the valid dimensions.
+
+**Parameters:**
+- `len`- the new length of the dimension.
+- `dim`- the dimension to change
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if arguments are incorrect or don't jive with the current array
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### getDimensions
+
+```java
+public static int[] getDimensions(java.lang.Object array)
+```
+Gets the array of dimensions of the array
+
+**Returns:**
+- the array with the dimensions
+
+### getDimensions
+
+```java
+public int[] getDimensions()
+```
+
+### setDimensions
+
+```java
+public void setDimensions(int[] dim)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Sets the dimensions of the array. Will preserve as many element values as possible.
+
+**Parameters:**
+- `dim`- the new dimensions for the array
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### getNumDimensions
+
+```java
+public static int getNumDimensions(java.lang.Object o)
+```
+
+### getNumDimensions
+
+```java
+public int getNumDimensions()
+```
+Gets the number of dimensions of the array
+
+### fromString
+
+```java
+public void fromString(int index,
+ java.lang.String value)
+```
+Sets the value of a single element based on string input for 1-d arrays. Data is converted as appropriate.
+
+**Parameters:**
+- `index`- Which element to set.
+- `value`- The new value.
+
+### fromString
+
+```java
+public void fromString(int[] index,
+ PHXStringBuffer value)
+```
+Sets the value of a single element based on string input. Data is converted as appropriate.
+
+**Parameters:**
+- `index`- Which element to set.
+- `value`- The new value.
+
+### fromString
+
+```java
+public void fromString(int[] index,
+ java.lang.String value)
+```
+Sets the value of a single element based on string input. Data is converted as appropriate.
+
+**Parameters:**
+- `index`- Which element to set.
+- `value`- The new value.
+
+### elementFromString
+
+```java
+protected abstract java.lang.Object elementFromString(java.lang.String value)
+```
+Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [IPHXType](IPHXType.md) or [IPHXType2](IPHXType2.md). For primitives, return the wrapper objects.
+
+### toString
+
+```java
+public java.lang.String toString(int index)
+```
+Converts a single element of a 1-d array to a string
+
+**Parameters:**
+- `index`- the index of the desired element
+
+**Returns:**
+- the desired element, in string form
+
+### parseIndex
+
+```java
+public static int[] parseIndex(java.lang.String index)
+```
+Takes a string of the form "anything[n, n2, n3]" or "n, n2, n3" and returns an int[] of the index values.
+
+### toString
+
+```java
+public java.lang.String toString(java.lang.String index)
+```
+Converts a single element to a string
+
+**Parameters:**
+- `index`- the index of the desired element
+
+**Returns:**
+- the desired element, in string form
+
+### toString2
+
+```java
+public PHXStringBuffer toString2(java.lang.String index)
+ throws java.io.IOException
+```
+Converts a single element to a string
+
+**Parameters:**
+- `index`- the index of the desired element
+
+**Returns:**
+- the desired element, in string form
+
+**Throws:**
+- `java.io.IOException`
+
+### toString
+
+```java
+public java.lang.String toString(int[] index)
+```
+Converts a single element to a string
+
+**Parameters:**
+- `index`- the index of the desired element
+
+**Returns:**
+- the desired element, in string form
+
+### toString2
+
+```java
+public PHXStringBuffer toString2(int[] index)
+ throws java.io.IOException
+```
+Converts a single element to a string
+
+**Parameters:**
+- `index`- the index of the desired element
+
+**Returns:**
+- the desired element, in string form
+
+**Throws:**
+- `java.io.IOException`
+
+### getArrayElement
+
+```java
+public java.lang.Object getArrayElement(int index)
+```
+Gets a particular element from a 1-d array
+
+**Parameters:**
+- `index`- the 1D array index into the 1D array
+
+**Returns:**
+- the specified element
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if 1D reference is given to a >1D array
+
+### getArrayElement
+
+```java
+public java.lang.Object getArrayElement(int[] index)
+```
+Gets a particular element from the array
+
+**Parameters:**
+- `index`- the 1D array index into the 1D array
+
+**Returns:**
+- the specified element
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if 1D reference is given to a >1D array
+
+### setArrayElement
+
+```java
+public void setArrayElement(int index,
+ java.lang.Object v)
+```
+Sets a particular element of a 1-d array
+
+**Parameters:**
+- `index`- Which index to set
+- `v`- The new value. Note that this takes an instance of a PHXType.
+
+### setArrayElement
+
+```java
+public void setArrayElement(int[] index,
+ java.lang.Object v)
+```
+Sets a particular element of the array
+
+**Parameters:**
+- `index`- Which index to set
+- `v`- The new value. Note that this takes an instance of a PHXType.
+
+### getArray
+
+```java
+public java.lang.Object getArray()
+```
+Gets the entire contents of the array
+
+**Returns:**
+- the base array object
+
+### setArray
+
+```java
+public void setArray(java.lang.Object v)
+```
+Sets the entire array. Array is checked for validity and rectangularity. `_getMetaData()` is called.
+
+**Parameters:**
+- `v`- the new array (nD)
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if array passed in is not rectangular
+
+### getSelf
+
+```java
+public PHXSimpleArray getSelf()
+```
+
+### checkRectangular
+
+```java
+public static boolean checkRectangular(java.lang.Object obj)
+```
+Check if the array is rectangular
+
+**Parameters:**
+- `obj`- the array to check
+
+**Returns:**
+- is the array rectangular?
+
+**Throws:**
+- `java.lang.NullPointerException`- thrown if one of the values in the array is null
+
+### getComponentType
+
+```java
+public static java.lang.Class getComponentType(java.lang.Object v)
+```
+Gets the component type of an array, even for n-d arrays.
+
+**Parameters:**
+- `v`- The array to get the component type for
+
+### getComponentType
+
+```java
+public java.lang.Class getComponentType()
+```
+Returns the component type of the array wrapped with this class
+
+### generateFor
+
+```java
+public static PHXSimpleArray generateFor(java.lang.Object o)
+ throws java.lang.IllegalArgumentException
+```
+Static method to generate a new instance of one of the sub-classes of PHXSimpleArray as appropriate for the type of variable passed in.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### generateFor
+
+```java
+public static PHXSimpleArray generateFor(java.lang.Object o,
+ java.lang.Class c)
+ throws java.lang.IllegalArgumentException
+```
+Static method to generate a new instance of one of the sub-classes of PHXSimpleArray as appropriate for the type of variable passed in. If 'o' is null, a new 0 length array will be generated based on 'c' as the component type.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### fromString
+
+```java
+public void fromString(java.lang.String in)
+```
+reads in the entire array in string form.
+bounds[3,2] { 1,2,3,4,5,6 }
+
+**Specified by:**
+- `fromString` in interface [`IPHXType`](IPHXType.md)
+
+**Parameters:**
+- `in`- the value of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer in)
+```
+reads in the entire array in string form. `bounds[3,2] { 1,2,3,4,5,6 }`
+
+**Specified by:**
+- `fromString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Parameters:**
+- `in`- representation of the type to use
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+Returns the string form of this array. Puts each element in quotes, even if it is a number and backslashes any quote or backslash characters (" and \\).
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString`in class`java.lang.Object`
+
+**Returns:**
+- the value as a String
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+Returns the string form of this array. Puts each element in quotes, even if it is a number and backslashes any quote or backslash characters (" and \\).
+
+**Specified by:**
+- `toString2` in interface [`IPHXType2`](IPHXType2.md)
+
+**Returns:**
+- PHXStringBuffer representation of the type
+
+### incrementIndex
+
+```java
+public static boolean incrementIndex(int[] index,
+ int[] size)
+```
+Utility function for incrementing an nD index on the array
+
+**Parameters:**
+- `index`- the index to increment
+- `size`- the maximum size of the array
+
+**Returns:**
+- did the incrment work?
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if index lengths don't match
+
+### newIndex
+
+```java
+public int[] newIndex()
+```
+Produces a new index based zeroed out, but with the proper dimensions
+
+**Returns:**
+- the new index
+
+### validElement
+
+```java
+public boolean validElement(int[] index,
+ int[] size)
+```
+Is the given index valid?
+
+**Parameters:**
+- `index`- the index to check
+- `size`- the maximum size
+
+**Returns:**
+- is the given index valid?
+
+### allocateElement
+
+```java
+protected java.lang.Object allocateElement(java.lang.Class elementClass)
+ throws java.lang.IllegalAccessException,
+ java.lang.InstantiationException
+```
+Allocates a single element in a default state. If the class type in question has a default constructor, there is no need to override this.
+
+**Throws:**
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+
+### _setMetaData
+
+```java
+protected void _setMetaData(PHXSimpleType v)
+```
+Sets a simple type's meta data based on the meta data in this object. Override this to set additional information in sub-classes. Be sure to call `super._setMetaData(PHXSimpleType)`.
+
+### _setMetaData
+
+```java
+protected void _setMetaData()
+```
+Call this function to set the meta data from this object into every element of the array.
+
+### getnDIndex
+
+```java
+protected int[] getnDIndex(long oneDIndex,
+ int[] actualSize)
+ throws java.lang.IllegalArgumentException
+```
+
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### getValue
+
+```java
+public T getValue(int index)
+```
+Gets an element as PHXSimpleType object of the appropriate subtype
+
+**Parameters:**
+- `index`- 1D array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int index,
+ T val)
+```
+Sets an element as an object of the appropriate PHXSimpleType
+
+**Parameters:**
+- `index`- 1D array index
+- `val`- value to set
+
+### getValue
+
+```java
+public abstract T getValue(int[] index)
+```
+Gets the value of an element as an object of the appropriate subtype. Must be overridden in subclasses
+
+**Parameters:**
+- `index`- nD array index
+
+**Returns:**
+- referenced array value
+
+### iterator
+
+```java
+public java.util.Iterator iterator()
+```
+Returns an iterator that loops over the array in the standard PHX order, rightmost index varies fastest. Note that the iterator returned is not thread safe. It also has undefined behavior if the array is modified while iterating over the array. It does not support `Iterator.remove()`. Lastly, the iterator returned may throw exceptions other than `NoSuchElementException`, such as `IndexOutOfBoundsException`.
+
+**Specified by:**
+- `iterator` in interface `java.lang.Iterable`
+
+**See Also:**
+- `Iterable`
+
+### setValue
+
+```java
+public abstract void setValue(int[] index,
+ T val)
+```
+Sets an element as an object of the appropriate PHXSimpleType. Must be overridden in subclasses
+
+**Parameters:**
+- `index`- nD array index
+- `val`- value to set
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+ Array comparison is handled as follows:
+
+ 1) Compare the number of dimensions between the two arrays
+ 2) Compare the length of dimensions between the two arrays
+ 3) Compare the values in each of the two arrays
+
+ If these three conditions are met, the two arrays are considered naturally equal.
+
+**Specified by:**
+- `equalsNatural`in class`PHXSimpleType`
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleType.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleType.md
new file mode 100644
index 0000000000..4682b6e951
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXSimpleType.md
@@ -0,0 +1,208 @@
+# Class PHXSimpleType
+
+
+**Package:** com.phoenix_int.aserver.types
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md)
+
+
+**Direct Known Subclasses:**
+- [PHXBoolean](PHXBoolean.md), [PHXDouble](PHXDouble.md), [PHXFile](PHXFile.md), [PHXGeometry](PHXGeometry.md), [PHXInteger](PHXInteger.md), [PHXLong](PHXLong.md), [PHXRawFile](PHXRawFile.md), [PHXScriptObject](PHXScriptObject.md), [PHXSimpleArray](PHXSimpleArray.md), [PHXString](PHXString.md)
+
+---
+
+```java
+public abstract class PHXSimpleType
+extends java.lang.Object
+implements IPHXType2, IPHXUnits
+```
+
+A base class for most data types. The class defines the following properties:
+
+- description: String
+- units: String
+- hasChanged: boolean
+
+This class will fire a property change event when `hasChanged(true)` is called. The property event will always have the property name be "value" and the old and new values of null. Use `toString` or `getValue` functions to get the actual new value from the variable.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXSimpleType()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_copyMetadataFromOther(PHXSimpleTypeother)`
Copy common metadata on PHXSimpleType from another object to this one. |
+| `void` | `addPropertyChangeListener(java.beans.PropertyChangeListener l)` |
+| `abstractPHXSimpleType` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `abstract boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `abstract void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `java.lang.String` | `getDescription()` |
+| `static java.lang.String[]` | `getEnumTokens(java.lang.String enums)` |
+| `boolean` | `getHasChanged()`
retrieves the `hasChanged` flag |
+| `java.lang.String` | `getUnits()`
Get the units string for the variable |
+| `void` | `removePropertyChangeListener(java.beans.PropertyChangeListener l)` |
+| `void` | `setDescription(java.lang.String d)` |
+| `void` | `setHasChanged(boolean v)`
sets the `hasChanged` flag |
+| `void` | `setUnits(java.lang.String u)`
Set the units string for the variable |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`Accept`, `fromString2`, `toString2`
+
+### Methods inherited from interface com.phoenix_int.aserver.types.[IPHXType](IPHXType.md)
+`fromString,toString`
+
+## Constructor Detail
+
+### PHXSimpleType
+
+```java
+public PHXSimpleType()
+```
+
+## Method Detail
+
+### setUnits
+
+```java
+public void setUnits(java.lang.String u)
+```
+Set the units string for the variable
+
+**Specified by:**
+- `setUnits` in interface [`IPHXUnits`](IPHXUnits.md)
+
+**Parameters:**
+- `u`- units for the variable
+
+### getUnits
+
+```java
+public java.lang.String getUnits()
+```
+Get the units string for the variable
+
+**Specified by:**
+- `getUnits` in interface [`IPHXUnits`](IPHXUnits.md)
+
+**Returns:**
+- units string
+
+### setDescription
+
+```java
+public void setDescription(java.lang.String d)
+```
+
+### getDescription
+
+```java
+public java.lang.String getDescription()
+```
+
+### setHasChanged
+
+```java
+public void setHasChanged(boolean v)
+```
+sets the hasChanged flag
+
+**Parameters:**
+- `v`- the new value for the flag
+
+### getHasChanged
+
+```java
+public boolean getHasChanged()
+```
+retrieves the hasChanged flag
+
+**Returns:**
+- `true` if the variable has changed since the last time the `hasChanged` flag was set to `false`
+
+### addPropertyChangeListener
+
+```java
+public void addPropertyChangeListener(java.beans.PropertyChangeListener l)
+```
+
+### removePropertyChangeListener
+
+```java
+public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
+```
+
+### getEnumTokens
+
+```java
+public static java.lang.String[] getEnumTokens(java.lang.String enums)
+```
+
+### equalsNatural
+
+```java
+public abstract boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public abstract void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently supported. You MUST use the PHX string array formatting style.
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) if the specified object is of an invalid type or there is an error in conversion.
+
+### _copyMetadataFromOther
+
+```java
+protected final void _copyMetadataFromOther(PHXSimpleType other)
+```
+Copy common metadata on PHXSimpleType from another object to this one. Designed to assist in implementing `createCopy()`.
+
+**Parameters:**
+- `other`- the other object from which metadata will be copied
+
+### createCopy
+
+```java
+public abstract PHXSimpleType createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXString.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXString.md
new file mode 100644
index 0000000000..1fec0309e5
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXString.md
@@ -0,0 +1,384 @@
+# Class PHXString
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXString
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md)
+
+---
+
+```java
+public class PHXString
+extends PHXSimpleType
+```
+The type for Strings. This class adds the following features to the [PHXSimpleType](PHXSimpleType.md):
+
+- **value**: String
+- **enumValues**: String[]
+- **enumAliases**: String[]
+
+
+**See Also:**
+- [PHXSimpleType](PHXSimpleType.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+
+`IPHXType2.IVisitor`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXString()` |
+| `PHXString(PHXStringother)`
Clone another PHXString's value and metadata. |
+| `PHXString(java.lang.String value)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_copyMetadataFromOther(PHXStringother)`
Clone another PHXString's metadata. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `static java.lang.String` | `arrayToString(java.lang.String[] sa)`
Deprecated. |
+| `static java.lang.String` | `arrayToStringEscaped(java.lang.String[] sa)`
Quotes each element of the array using c-style escape sequences, then builds a comma separated list of the elements with quotes around each element. |
+| `PHXString` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `boolean` | `equalsNatural(PHXSimpleTypetoCompare)`
Compare this PHXSimpleType to another PHXSimpleType. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `void` | `fromString(java.lang.String value)`
converts a String representation to the internal value |
+| `void` | `fromString2(PHXStringBuffervalue)`
converts a PHXStringBuffer representation to the internal value |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array |
+| `java.lang.String[]` | `getEnumValues()`
lists enum values |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string |
+| `java.lang.String` | `getValue()`
retrieves the current value of the variable |
+| `static void` | `main(java.lang.String[] args)` |
+| `void` | `setEnumAliases(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Takes an array of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumValues(java.lang.String input)`
sets enum values |
+| `void` | `setEnumValues(java.lang.String[] values)`
sets enum values |
+| `void` | `setValue(PHXStringBufferv)`
sets the value for the variable |
+| `void` | `setValue(java.lang.String v)`
sets the value for the variable |
+| `static java.lang.String[]` | `stringToArray(java.lang.String s)` |
+| `java.lang.String` | `toString()`
converts the variable to a string |
+| `PHXStringBuffer` | `toString2()`
converts the variable to a PHXStringBuffer |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`,`removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXString
+
+```java
+public PHXString()
+```
+
+### PHXString
+
+```java
+public PHXString(java.lang.String value)
+```
+
+### PHXString
+
+```java
+public PHXString(PHXString other)
+```
+Clone another PHXString's value and metadata.
+
+**Parameters:**
+- `other`- the other PHXString to clone.
+
+## Method Detail
+
+### getValue
+
+```java
+public java.lang.String getValue()
+```
+retrieves the current value of the variable
+
+**Returns:**
+- the value of the variable
+
+### setValue
+
+```java
+public void setValue(java.lang.String v)
+ throws java.lang.IllegalArgumentException
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### setValue
+
+```java
+public void setValue(PHXStringBuffer v)
+ throws java.lang.IllegalArgumentException
+```
+sets the value for the variable
+
+**Parameters:**
+- `v`- the value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`
+
+### toString2
+
+```java
+public PHXStringBuffer toString2()
+```
+converts the variable to a PHXStringBuffer
+
+**Returns:**
+- a PHXStringBuffer representation of the variable
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+converts the variable to a string
+
+**Specified by:**
+- `toString` in interface [`IPHXType`](IPHXType.md)
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+**Returns:**
+- a String representation of the variable
+
+### fromString2
+
+```java
+public void fromString2(PHXStringBuffer value)
+```
+converts a PHXStringBuffer representation to the internal value
+
+**Parameters:**
+- `value`- the value to convert
+
+### fromString
+
+```java
+public void fromString(java.lang.String value)
+```
+converts a String representation to the internal value
+
+**Parameters:**
+- `value`- the value to convert
+
+### getEnumValues
+
+```java
+public java.lang.String[] getEnumValues()
+```
+lists enum values
+
+**Returns:**
+- enum values
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+Interface function to pass out the enumeration array as a comma separated string
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String input)
+```
+sets enum values
+
+**Parameters:**
+- `input:`- list of enum values
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String[] values)
+```
+sets enum values
+
+**Parameters:**
+- `values:`- list of enum values
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values`- A comma seperated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+Takes an array of values and fills the enumeration aliases list with values. If null, aliases will be set to an empty list.
+
+**Parameters:**
+- `values`- string array of enumeration aliases
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an comma separated string of the possible values of the list
+
+### _copyMetadataFromOther
+
+```java
+protected final void _copyMetadataFromOther(PHXString other)
+```
+Clone another PHXString's metadata.
+
+**Parameters:**
+- `other`- the other PHXString
+
+### arrayToString
+
+```java
+@Deprecated
+public static java.lang.String arrayToString(java.lang.String[] sa)
+```
+**Deprecated.** Do not use, does not generate correct strings.
+
+**Parameters:**
+- `sa`-
+
+**Returns:**
+
+### stringToArray
+
+```java
+public static java.lang.String[] stringToArray(java.lang.String s)
+```
+
+### arrayToStringEscaped
+
+```java
+public static java.lang.String arrayToStringEscaped(java.lang.String[] sa)
+```
+Quotes each element of the array using c-style escape sequences, then builds a comma separated list of the elements with quotes around each element.
+
+**Parameters:**
+- `sa`- The array to read
+
+**Returns:**
+- The generated string.
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
+
+### equalsNatural
+
+```java
+public boolean equalsNatural(PHXSimpleType toCompare)
+ throws PHXTypeMismatchException
+```
+Compare this PHXSimpleType to another PHXSimpleType. This type of comparison is different than `Comparable` in that it does a natural comparison between numbers. It is not designed, nor suited, for use in things such as sets, and may behave oddly if put in those circumstances.
+
+**Specified by:**
+- `equalsNatural` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toCompare`-
+
+**Returns:**
+- a negative number if this object is less than `toCompare`, a positive number if this object is greater than `toCompare`, and zero if these two objects are equal.
+
+**Throws:**
+- `PHXTypeMismatchException`- if the given PHXSimpleType cannot be compared with this object.
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md).
+
+ NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently upported. You MUST use the PHX string
+ array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)- if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXString createCopy()
+```
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXStringArray.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXStringArray.md
new file mode 100644
index 0000000000..54520cf798
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXStringArray.md
@@ -0,0 +1,369 @@
+# Class PHXStringArray
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXSimpleType
+ ↳ com.phoenix_int.aserver.types.PHXSimpleArray
+ ↳ com.phoenix_int.aserver.types.PHXStringArray
+```
+
+**All Implemented Interfaces:**
+- [IPHXType](IPHXType.md), [IPHXType2](IPHXType2.md), [IPHXUnits](IPHXUnits.md), java.lang.Iterable<[PHXString](PHXString.md)>
+
+---
+
+```java
+public class PHXStringArray
+extends PHXSimpleArray
+```
+Class wraps an array of PHXString variables for the ScriptWrapper utility.
+
+
+**See Also:**
+- [PHXSimpleArray](PHXSimpleArray.md)
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+`IPHXType2.IVisitor`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.types.[PHXSimpleArray](PHXSimpleArray.md)
+`_data,_lockDims,_lockResize`
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXStringArray()` |
+| `PHXStringArray(java.lang.Object data)` |
+| `PHXStringArray(PHXStringArrayother)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `protected void` | `_getMetaData(PHXSimpleTypev2)`
Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. |
+| `protected void` | `_setMetaData(PHXSimpleTypev2)`
Sets a simple type's meta data based on the meta data in this object. |
+| ` T` | `Accept(IPHXType2.IVisitor visitor)`
Accept a Visitor. |
+| `PHXStringArray` | `createCopy()`
Create a copy of this instance, including the value and metadata. |
+| `protected boolean` | `dataTypeOK(java.lang.Class c)`
Must override this function and return `true` if the specified class is acceptable as an array element component type. |
+| `protected java.lang.Object` | `elementFromString(java.lang.String val)`
Sub-classes must provide an implementation of this function which converts a string form of a single element to Object
+ form. |
+| `void` | `fromObject(java.lang.Object toRead)`
Load the value of this object from the specified object. |
+| `java.lang.String[]` | `getEnumAliases()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumAliasesStr()`
An interface function for the enumeration array |
+| `java.lang.String[]` | `getEnumValues()`
An interface function for the enumeration array |
+| `java.lang.String` | `getEnumValuesStr()`
Interface function to pass out the enumeration array as a comma separated string |
+| `java.lang.String` | `getStringValue(int index)`
Gets a particular element as a String |
+| `java.lang.String` | `getStringValue(int[] index)`
Gets a particular element as a String |
+| `PHXString` | `getValue(int[] index)
`Gets a particular element as a PHXString |
+| `void` | `setEnumAliases(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration aliases list with values. |
+| `void` | `setEnumAliases(java.lang.String[] values)`
Sets the enumeration aliases list |
+| `void` | `setEnumValues(java.lang.String values)`
takes a comma seperated string of values and fills the enumeration List with values. |
+| `void` | `setEnumValues(java.lang.String[] values)`
sets enum values |
+| `void` | `setValue(int[] index,PHXStringval)`
Sets a particular element as a PHXString |
+| `void` | `setValue(int[] index, java.lang.String val)`
Sets a particular element as a String |
+| `void` | `setValue(int index, java.lang.String val)`
Sets a particular element as a String |
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleArray](PHXSimpleArray.md)
+`_getMetaData`, `_setMetaData`, `allocateElement`, `checkRectangular`, `copy`, `equalsNatural`, `fromString`, `fromString`, `fromString`, `fromString`, `fromString2`, `generateFor`, `generateFor`, `getArray`, `getArrayElement`, `getArrayElement`, `getComponentType`, `getComponentType`, `getDimensions`, `getDimensions`, `getFirst`, `getLength`, `getLength`, `getLockResize`, `getnDIndex`, `getNumDimensions`, `getNumDimensions`, `getSelf`, `getValue`, `incrementIndex`, `iterator`, `lockDimensions`, `newIndex`, `parseIndex`, `resize`, `setArray`, `setArrayElement`, `setArrayElement`, `setDimensions`, `setFirst`, `setLength`, `setLength`, `setLockResize`, `setValue`, `toString`, `toString`, `toString`, `toString`, `toString2`, `toString2`, `toString2`, `validElement`
+
+### Methods inherited from class com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md)
+`_copyMetadataFromOther`, `addPropertyChangeListener`, `getDescription`, `getEnumTokens`, `getHasChanged`, `getUnits`, `removePropertyChangeListener`, `setDescription`, `setHasChanged`, `setUnits`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.lang.Iterable
+`forEach`, `spliterator`
+
+## Constructor Detail
+
+### PHXStringArray
+
+```java
+public PHXStringArray()
+```
+
+### PHXStringArray
+
+```java
+public PHXStringArray(java.lang.Object data)
+```
+
+### PHXStringArray
+
+```java
+public PHXStringArray(PHXStringArray other)
+```
+
+### Method Detail
+
+### dataTypeOK
+
+```java
+protected boolean dataTypeOK(java.lang.Class c)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Must override this function and return `true` if the specified class is acceptable as an array element component type.
+
+**Specified by:**
+- `dataTypeOK` in class `PHXSimpleArray`
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration List with values.
+
+**Parameters:**
+- `values`- A comma seperrated string of enumeration values
+
+### setEnumValues
+
+```java
+public void setEnumValues(java.lang.String[] values)
+```
+sets enum values
+
+**Parameters:**
+- `values:`- list of enum values
+
+### getEnumValues
+
+```java
+public java.lang.String[] getEnumValues()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumValuesStr
+
+```java
+public java.lang.String getEnumValuesStr()
+```
+Interface function to pass out the enumeration array as a comma separated string
+
+**Returns:**
+- comma separated string of the possible values of the list
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String values)
+```
+takes a comma seperated string of values and fills the enumeration aliases list with values.
+
+**Parameters:**
+- `values`- A comma seperated string of enumeration aliases
+
+### setEnumAliases
+
+```java
+public void setEnumAliases(java.lang.String[] values)
+```
+Sets the enumeration aliases list
+
+**Parameters:**
+- `values`- An array of strings
+
+### getEnumAliases
+
+```java
+public java.lang.String[] getEnumAliases()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an array of the possible values of the list
+
+### getEnumAliasesStr
+
+```java
+public java.lang.String getEnumAliasesStr()
+```
+An interface function for the enumeration array
+
+**Returns:**
+- an comma separated string of the possible values of the list
+
+### _setMetaData
+
+```java
+protected void _setMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sets a simple type's meta data based on the meta data in this object. Override this to set additional information in sub-classes. Be sure to call `super._setMetaData(PHXSimpleType)`.
+
+**Overrides:**
+- `_setMetaData` in class `PHXSimpleArray`
+
+### _getMetaData
+
+```java
+protected void _getMetaData(PHXSimpleType v2)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Worker which takes the meta data from an instance of PHXSimpleType and sets it into our meta data. Override this in order to add more custom meta data in sub-classes. Be sure to call `super._getMetaData(PHXSimpleType)`, though!
+
+**Overrides:**
+- `_getMetaData` in class `PHXSimpleArray`
+
+### getValue
+
+```java
+public PHXString getValue(int[] index)
+```
+Gets a particular element as a PHXString
+
+**Specified by:**
+- `getValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index`- 1D array index
+
+**Returns:**
+- referenced array value
+
+### getStringValue
+
+```java
+public java.lang.String getStringValue(int index)
+```
+Gets a particular element as a String
+
+**Parameters:**
+- `index`- nD array index
+
+**Returns:**
+- referenced array value
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### getStringValue
+
+```java
+public java.lang.String getStringValue(int[] index)
+```
+Gets a particular element as a String
+
+**Parameters:**
+- `index`- nD array index
+
+**Returns:**
+- referenced array value
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ PHXString val)
+```
+Sets a particular element as a PHXString
+
+**Specified by:**
+- `setValue` in class `PHXSimpleArray`
+
+**Parameters:**
+- `index`- 1D array index
+: `val`- value to set
+
+### setValue
+
+```java
+public void setValue(int index,
+ java.lang.String val)
+```
+Sets a particular element as a String
+
+**Parameters:**
+- `index`- 1D array index
+: `val`- value to set
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- thrown if called on non-1D array
+
+### setValue
+
+```java
+public void setValue(int[] index,
+ java.lang.String val)
+```
+Sets a particular element as a String
+
+**Parameters:**
+- `index`- 1D array index
+: `val`- value to set
+
+### elementFromString
+
+```java
+protected java.lang.Object elementFromString(java.lang.String val)
+```
+Description copied from class: [`PHXSimpleArray`](PHXSimpleArray.md)
+
+Sub-classes must provide an implementation of this function which converts a string form of a single element to Object form. This is only used when the element type does not implement [IPHXType](IPHXType.md) or [IPHXType2](IPHXType2.md). For primitives, return the wrapper objects.
+
+**Specified by:**
+- `elementFromString` in class `PHXSimpleArray`
+
+### fromObject
+
+```java
+public void fromObject(java.lang.Object toRead)
+ throws PHXInvalidTypeException
+```
+Load the value of this object from the specified object. This will read the object and attempt to convert it if it is a known type. If the type isn't recognized, it will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md). If there is an error in conversion, it will also throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md).
+
+NOTE: while it might be logical to think you can create a `PHX(Type)Array` from, say, an array of `java.lang.(Type)`, that is not currently upported. You MUST use the PHX string array formatting style.
+
+**Specified by:**
+- `fromObject` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Parameters:**
+- `toRead`- to object from which to load this objects value.
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the specified object is of an invalid type or there is an error in conversion.
+
+### Accept
+
+```java
+public T Accept(IPHXType2.IVisitor visitor)
+```
+Accept a Visitor.
+
+**Type Parameters:**
+- `T`- Type of the result of the visit.
+
+**Parameters:**
+- `visitor`- The visitor to accept.
+
+**Returns:**
+- The results of the visit.
+
+### createCopy
+
+```java
+public PHXStringArray createCopy()
+```
+Description copied from class: [`PHXSimpleType`](PHXSimpleType.md)
+
+Create a copy of this instance, including the value and metadata.
+
+**Specified by:**
+- `createCopy` in class [`PHXSimpleType`](PHXSimpleType.md)
+
+**Returns:**
+- a newly constructed copy of this instance.
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeFactory.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeFactory.md
new file mode 100644
index 0000000000..3a2ee9b9db
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeFactory.md
@@ -0,0 +1,380 @@
+# Class PHXTypeFactory
+
+
+**Package:** `com.phoenix_int.aserver.types`
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.types.PHXTypeFactory
+```
+---
+
+**Declaration:**
+```java
+public class PHXTypeFactory
+extends java.lang.Object
+```
+
+A class for creating variables
+
+
+**See Also:**
+- [PHXSimpleType](PHXSimpleType.md)-
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+| --- | --- |
+| Modifier and Type | Field and Description |
+| `static java.lang.String` | `BOOLEAN`
Type identifier for a boolean type |
+| `static java.lang.String` | `BOOLEAN_ARRAY`
Type identifier for a boolean array type |
+| `static java.lang.String` | `DOUBLE`
Type identifier for a double type |
+| `static java.lang.String` | `DOUBLE_ARRAY`
Type identifier for a double array type |
+| `static java.lang.String` | `FILE`
Type identifier for a file type |
+| `static java.lang.String` | `FILE_ARRAY`
Type identifier for a file array type |
+| `static java.lang.String` | `GEOMETRY`
Type identifier for a geometry type |
+| `static java.lang.String` | `LONG`
Type identifier for a long type |
+| `static java.lang.String` | `LONG_ARRAY`
Type identifier for a long array type |
+| `static java.lang.String` | `OBJECT`
Type identifier for an object type |
+| `static java.lang.String` | `REFERENCE`
Type identifier for a reference type |
+| `static java.lang.String` | `REFERENCE_ARRAY`
Type identifier for a reference array type |
+| `static java.lang.String` | `STRING`
Type identifier for a string type |
+| `static java.lang.String` | `STRING_ARRAY`
Type identifier for a string array type |
+| `static java.lang.String` | `UNKNOWN`
Type identifier for an unknown type |
+| `static java.lang.String` | `UNKNOWN_ARRAY`
Type identifier for an unknown array type |
+
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXTypeFactory()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+| --- | --- |
+| `static void` | `_verifyIsArrayType(java.lang.String type)`
utility function for verifying that a type string is an
+ array type - it is in the form `"XXXX[#]"` |
+| `staticPHXSimpleArray` | `allocateArray(java.lang.String arrayType)`
**Deprecated.** Prefer `allocateVariable2(java.lang.String)` which can properly differentiate between arrays and non-array types. |
+| `staticIPHXType2` | `allocateVariable(java.lang.String type)`
**Deprecated.** Prefer `allocateVariable2(java.lang.String)` which can properly differentiate between arrays and non-array types. |
+| `staticIPHXType2` | `allocateVariable2(java.lang.String type)`
Allocate a given variable for the given type string |
+| `static java.lang.Class` | `getClass(java.lang.String type)`
returns the class for the specified type. |
+| `static java.lang.Class` | `getVariableClass(java.lang.String type)`
Returns the class associated with the type string. |
+| `static java.lang.String` | `getVarType(java.lang.String className)`
Given the class name, determine the corresponding type. |
+| `staticPHXSimpleType` | `toPHXSimpleType(java.lang.Object input, java.lang.Class> simpleTypeClass)`
Converts the given type to the associated PHXSimpleType. |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+
+## Field Detail
+
+### UNKNOWN
+
+```java
+public static final java.lang.String UNKNOWN
+```
+Type identifier for an unknown type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### UNKNOWN_ARRAY
+
+```java
+public static final java.lang.String UNKNOWN_ARRAY
+```
+Type identifier for an unknown array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### BOOLEAN
+
+```java
+public static final java.lang.String BOOLEAN
+```
+Type identifier for a boolean type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### BOOLEAN_ARRAY
+
+```java
+public static final java.lang.String BOOLEAN_ARRAY
+```
+Type identifier for a boolean array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### DOUBLE
+
+```java
+public static final java.lang.String DOUBLE
+```
+Type identifier for a double type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### DOUBLE_ARRAY
+
+```java
+public static final java.lang.String DOUBLE_ARRAY
+```
+Type identifier for a double array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### LONG
+
+```java
+public static final java.lang.String LONG
+```
+Type identifier for a long type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### LONG_ARRAY
+
+```java
+public static final java.lang.String LONG_ARRAY
+```
+Type identifier for a long array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### FILE
+
+```java
+public static final java.lang.String FILE
+```
+Type identifier for a file type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### FILE_ARRAY
+
+```java
+public static final java.lang.String FILE_ARRAY
+```
+Type identifier for a file array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### STRING
+
+```java
+public static final java.lang.String STRING
+```
+Type identifier for a string type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### STRING_ARRAY
+
+```java
+public static final java.lang.String STRING_ARRAY
+```
+Type identifier for a string array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### GEOMETRY
+
+```java
+public static final java.lang.String GEOMETRY
+```
+Type identifier for a geometry type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### OBJECT
+
+```java
+public static final java.lang.String OBJECT
+```
+Type identifier for an object type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### REFERENCE
+
+```java
+public static final java.lang.String REFERENCE
+```
+Type identifier for a reference type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### REFERENCE_ARRAY
+
+```java
+public static final java.lang.String REFERENCE_ARRAY
+```
+Type identifier for a reference array type
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+
+## Constructor Detail
+
+### PHXTypeFactory
+
+```java
+public PHXTypeFactory()
+```
+============ METHOD DETAIL ==========
+### Method Detail
+
+### allocateVariable2
+
+```java
+public static IPHXType2 allocateVariable2(java.lang.String type)
+ throws PHXInvalidTypeException
+```
+Allocate a given variable for the given type string
+
+**Parameters:**
+- `
Type` - the type of the variable to instantiate
+
+**Returns:**
+- the instantiated variable
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+### allocateVariable
+
+```java
+@Deprecated
+public static IPHXType2 allocateVariable(java.lang.String type)
+ throws PHXInvalidTypeException
+```
+**Deprecated.** Prefer `allocateVariable2(java.lang.String)` which can properly differentiate between arrays and non-array types.
+
+Creates a variable from a type string
+
+**Parameters:**
+- `
Type` - the type string, e.g. "double"
+
+**Returns:**
+- the allocated variable
+
+**Throws:**
+- `PHXInvalidTypeException`
+
+### allocateArray
+
+```java
+@Deprecated
+public static PHXSimpleArray allocateArray(java.lang.String arrayType)
+ throws PHXInvalidTypeException
+```
+**Deprecated.** Prefer `allocateVariable2(java.lang.String)` which can properly differentiate between arrays and non-array types.
+
+creates an array from a type string.
+
+Creates the PHXSimpleArray type, although it overrides the default behaviour of having the PHXSimpleArray store primitives internally in favor of having it store the PHX type.
+
+**Parameters:**
+- `arrayType` - the type string, e.g. `"double[5]"`, `"string[3][3]"`, etc.
+
+**Returns:**
+- the allocated variable
+
+**Throws:**
+- `PHXInvalidTypeException`
+
+### _verifyIsArrayType
+
+```java
+public static void _verifyIsArrayType(java.lang.String type)
+ throws PHXInvalidTypeException
+```
+utility function for verifying that a type string is an array type - it is in the form `"XXXX[#]"`
+
+**Parameters:**
+- `
Type` - the type string
+
+**Throws:**
+- `PHXInvalidTypeException`
+
+### getClass
+
+```java
+public static java.lang.Class getClass(java.lang.String type)
+ throws PHXInvalidTypeException
+```
+returns the class for the specified type. If the specified type is an array, the class of one of its members is returned
+
+**Parameters:**
+- `
Type` - the type string in format "double" or "double[5]"
+
+**Returns:**
+- the class of the specified type
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+### getVariableClass
+
+```java
+public static java.lang.Class getVariableClass(java.lang.String type)
+ throws PHXInvalidTypeException
+```
+Returns the class associated with the type string. This includes array classes if the type ends with "[]" or "Array"
+
+**Parameters:**
+- `
Type` - the string representing the type, such as "string", "double[]", or "IntegerArray"
+
+**Returns:**
+- the class of the variable type
+
+**Throws:**
+- [`PHXInvalidTypeException`](PHXInvalidTypeException.md) - if the type string does not match a known type
+
+### getVarType
+
+```java
+public static java.lang.String getVarType(java.lang.String className)
+```
+Given the class name, determine the corresponding type.
+
+**Parameters:**
+- `className` - class name of the variable, i.e. "PHXDouble", "PHXDoubleArray", etc.
+
+**Returns:**
+- variable name type, i.e. "double", "double[]", etc.
+
+### toPHXSimpleType
+
+```java
+public static PHXSimpleType toPHXSimpleType(java.lang.Object input,
+ java.lang.Class> simpleTypeClass)
+ throws PHXTypeMismatchException
+```
+Converts the given type to the associated PHXSimpleType. This will always create a new object, regardless of whether or not the given type is a PHXSimpleType. If there is an error converting, or the class does not have an associated [PHXSimpleType](PHXSimpleType.md), this will throw a [`PHXInvalidTypeException`](PHXInvalidTypeException.md)
+
+**Parameters:**
+- `input` - the object to convert to a [PHXSimpleType](PHXSimpleType.md)
+: `simpleTypeClass` - the class of [PHXSimpleType](PHXSimpleType.md) to convert to
+
+**Returns:**
+- a new object containing the value of the input; in the case of PHXRawFile and PHXRawFileArray, only a new instance is returned, the value is not copied
+
+**Throws:**
+- [`PHXTypeMismatchException`](PHXTypeMismatchException.md) - if there is an error creating the [PHXSimpleType](PHXSimpleType.md) object, or if the given type cannot be converted to a [PHXSimpleType](PHXSimpleType.md)
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeMismatchException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeMismatchException.md
new file mode 100644
index 0000000000..023c272024
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/PHXTypeMismatchException.md
@@ -0,0 +1,83 @@
+# Class PHXTypeMismatchException
+
+
+**Package:** `com.phoenix_int.aserver.types`
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.types.PHXTypeMismatchException
+```
+
+**All Implemented Interfaces:**
+- java.io.Serializable
+
+---
+
+```java
+public class PHXTypeMismatchException
+extends java.lang.Exception
+```
+An exception thrown when trying to set a value using an incompatible type, or when trying to compare two values of incompatible types
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+| --- |
+| `PHXTypeMismatchException(java.lang.String givenType, java.lang.String expectedType)`
Create an exception for attempting to compare two values of incompatible types |
+| `PHXTypeMismatchException(java.lang.String name, java.lang.String type, java.lang.String expectedType)`
Create an exception for attempting to set a value using an incompatible type |
+| `PHXTypeMismatchException(java.lang.String givenType, java.lang.String expectedType, java.lang.Throwable cause)`
Create an exception for attempting to compare two values of incompatible types |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXTypeMismatchException
+
+```java
+public PHXTypeMismatchException(java.lang.String name,
+ java.lang.String type,
+ java.lang.String expectedType)
+```
+Create an exception for attempting to set a value using an incompatible type
+
+**Parameters:**
+- `name`- the name of the variable where the error occurred
+- `type`- the bad type
+- `expectedType`- the type that should have been used
+
+### PHXTypeMismatchException
+
+```java
+public PHXTypeMismatchException(java.lang.String givenType,
+ java.lang.String expectedType)
+```
+Create an exception for attempting to compare two values of incompatible types
+
+**Parameters:**
+- `givenType`- the bad type that was passed to the comparator
+- `expectedType`- the type expected by the comparator
+
+### PHXTypeMismatchException
+
+```java
+public PHXTypeMismatchException(java.lang.String givenType,
+ java.lang.String expectedType,
+ java.lang.Throwable cause)
+```
+Create an exception for attempting to compare two values of incompatible types
+
+**Parameters:**
+- `givenType`- the bad type that was passed to the comparator
+- `expectedType`- the type expected by the comparator
+- `cause`- exception which caused this exception to be thrown
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-summary.md
new file mode 100644
index 0000000000..49f5741ea1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-summary.md
@@ -0,0 +1,59 @@
+# Package com.phoenix_int.aserver.types
+
+Provides a collection of basic data types that contain meta-information
+like description and units.
+
+## Interface Summary
+
+| Interface | Description |
+| --- | --- |
+| [IPHXDescription](IPHXDescription.md) | Interface for types with descriptions |
+| [IPHXFormat](IPHXFormat.md) | Interface for variables that support formats |
+| [IPHXRefPropInfo](IPHXRefPropInfo.md) | This interface provides information about a reference property: **name**: String **type**: String **enumValues**: String[] **description**: String **title**: String **input**: boolean, where `type` may be any of the following: "long", "double", "boolean", "string" |
+| [IPHXType](IPHXType.md) | The interface for all Phoenix types. |
+| [IPHXType2](IPHXType2.md) | The interface for Phoenix types which use PHXStringBuffer instead of String for performance. |
+| [IPHXType2.IVisitor](IPHXType2.IVisitor.md) | The interface of a visitor into an IPHXType2. |
+| [IPHXUnits](IPHXUnits.md) | Interface for PHX variables that support units |
+
+## Class Summary
+
+| Class | Description |
+| --- | --- |
+| [PHXAppearance](PHXAppearance.md) | This is a utility class for holding appearance properties. |
+| [PHXBoolean](PHXBoolean.md) | The ModelCenter type for booleans. |
+| [PHXBooleanArray](PHXBooleanArray.md) | Class wraps an array of PHXBoolean variables for the ScriptWrapper utility. |
+| [PHXDataCollector](PHXDataCollector.md) | A class for Driver Components to tell ModelCenter what to do with the DataCollector while the component is running. |
+| [PHXDouble](PHXDouble.md) | The ModelCenter type for doubles. |
+| [PHXDoubleArray](PHXDoubleArray.md) | Class wraps an array of PHXDouble variables for the ScriptWrapper utility. |
+| [PHXFile](PHXFile.md) | Deprecated |
+| [PHXGeometry](PHXGeometry.md) | The ModelCenter type for geometry. |
+| [PHXGeomInfo](PHXGeomInfo.md) | this is a utility class that mirrors the structures in ModelCenter. |
+| [PHXInteger](PHXInteger.md) | Deprecated |
+| [PHXLong](PHXLong.md) | The ModelCenter type for longs. |
+| [PHXLongArray](PHXLongArray.md) | Class wraps an array of PHXLong variables for the ScriptWrapper utility. |
+| [PHXMassProperties](PHXMassProperties.md) | This is a utility class for holding mass property information. |
+| [PHXObjectArray](PHXObjectArray.md) | Placeholder for an array of any random Java Object. |
+| [PHXOrientation](PHXOrientation.md) | This is a utility class for holding orientation information. |
+| [PHXRawFile](PHXRawFile.md) | The ModelCenter type for Files. |
+| [PHXRawFileArray](PHXRawFileArray.md) | Wraps an array of PHXRawFile variables for the ScriptWrapper utility. |
+| [PHXRefArrayProperty](PHXRefArrayProperty.md) | This is a class for holding properties of a reference object **type**: String **enumValues**: String[] **description**: String **title**: String **input**: boolean, where `type` may be any of the following: "long", "double", "boolean", "string" |
+| [PHXReference](PHXReference.md) | The ModelCenter type for references. |
+| [PHXReferenceArray](PHXReferenceArray.md) | The ModelCenter type for references. |
+| [PHXRefProperty](PHXRefProperty.md) | This is a class for holding properties of a reference object **type**: String **enumValues**: String[]**description**: String **title**: String **input**: boolean, where `type` may be any of the following: "long", "double", "boolean", "string" |
+| [PHXScriptObject](PHXScriptObject.md) | The PHX type for object variables. |
+| [PHXSimpleArray](PHXSimpleArray.md) | This class enables components to create resizeable arrays where the number of dimensions is variable as well as the size of each dimension. |
+| [PHXSimpleType](PHXSimpleType.md) | A base class for most Phoenix data types. |
+| [PHXString](PHXString.md) | The ModelCenter type for Strings. |
+| [PHXStringArray](PHXStringArray.md) | Class wraps an array of PHXString variables for the ScriptWrapper utility. |
+| [PHXTypeFactory](PHXTypeFactory.md) | A class for creating variables |
+
+## Exception Description
+
+| Exception | Description |
+| --- | --- |
+| [PHXInvalidTypeException](PHXInvalidTypeException.md) | An exception that is thrown when trying to use a bad type |
+| [PHXNumberFormatException](PHXNumberFormatException.md) | Like a NumberFormatException except that it isn't a runtime exception and must be caught |
+| [PHXTypeMismatchException](PHXTypeMismatchException.md) | An exception thrown when trying to set a value using an incompatible type, or when trying to compare two values of incompatible types |
+
+## Package com.phoenix_int.aserver.types Description
+Provides a collection of basic data types that contain meta-information like description and units.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-tree.md
new file mode 100644
index 0000000000..9105629e0e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/types/package-tree.md
@@ -0,0 +1,50 @@
+# Hierarchy For Package com.phoenix_int.aserver.types
+
+**Package Hierarchies:**
+- [All Packages](../../../../overview-tree.html)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.types.[PHXAppearance](PHXAppearance.md)
+ - com.phoenix_int.aserver.types.[PHXDataCollector](PHXDataCollector.md)
+ - com.phoenix_int.aserver.types.[PHXGeomInfo](PHXGeomInfo.md)
+ - com.phoenix_int.aserver.types.[PHXMassProperties](PHXMassProperties.md)
+ - com.phoenix_int.aserver.types.[PHXOrientation](PHXOrientation.md)
+ - com.phoenix_int.aserver.types.[PHXRefArrayProperty](PHXRefArrayProperty.md) (implements com.phoenix_int.aserver.types.[IPHXRefPropInfo](IPHXRefPropInfo.md))
+ - com.phoenix_int.aserver.types.[PHXReference](PHXReference.md) (implements com.phoenix_int.aserver.[IPHXAlwaysWriteable](../IPHXAlwaysWriteable.md), com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md))
+ - com.phoenix_int.aserver.types.[PHXReferenceArray](PHXReferenceArray.md) (implements com.phoenix_int.aserver.[IPHXAlwaysWriteable](../IPHXAlwaysWriteable.md))
+ - com.phoenix_int.aserver.types.[PHXRefProperty](PHXRefProperty.md) (implements com.phoenix_int.aserver.types.[IPHXRefPropInfo](IPHXRefPropInfo.md))
+ - com.phoenix_int.aserver.types.[PHXSimpleType](PHXSimpleType.md) (implements com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md), com.phoenix_int.aserver.types.[IPHXUnits](IPHXUnits.md))
+ - com.phoenix_int.aserver.types.[PHXBoolean](PHXBoolean.md)
+ - com.phoenix_int.aserver.types.[PHXDouble](PHXDouble.md) (implements com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md))
+ - com.phoenix_int.aserver.types.[PHXFile](PHXFile.md)
+ - com.phoenix_int.aserver.types.[PHXGeometry](PHXGeometry.md)
+ - com.phoenix_int.aserver.types.[PHXInteger](PHXInteger.md) (implements com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md))
+ - com.phoenix_int.aserver.types.[PHXLong](PHXLong.md) (implements com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md))
+ - com.phoenix_int.aserver.types.[PHXRawFile](PHXRawFile.md) (implements java.lang.AutoCloseable, com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md))
+ - com.phoenix_int.aserver.types.[PHXScriptObject](PHXScriptObject.md)
+ - com.phoenix_int.aserver.types.[PHXSimpleArray](PHXSimpleArray.md)`` (implements com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md), java.lang.Iterable``)
+ - com.phoenix_int.aserver.types.[PHXBooleanArray](PHXBooleanArray.md)
+ - com.phoenix_int.aserver.types.[PHXDoubleArray](PHXDoubleArray.md) (implements com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md))
+ - com.phoenix_int.aserver.types.[PHXLongArray](PHXLongArray.md) (implements com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md))
+ - com.phoenix_int.aserver.types.[PHXObjectArray](PHXObjectArray.md)
+ - com.phoenix_int.aserver.types.[PHXRawFileArray](PHXRawFileArray.md)
+ - com.phoenix_int.aserver.types.[PHXStringArray](PHXStringArray.md)
+ - com.phoenix_int.aserver.types.[PHXString](PHXString.md)
+ - com.phoenix_int.aserver.types.[PHXTypeFactory](PHXTypeFactory.md)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.types.[PHXInvalidTypeException](PHXInvalidTypeException.md)
+ - com.phoenix_int.aserver.types.[PHXNumberFormatException](PHXNumberFormatException.md)
+ - com.phoenix_int.aserver.types.[PHXTypeMismatchException](PHXTypeMismatchException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.types.[IPHXDescription](IPHXDescription.md)
+ - com.phoenix_int.aserver.types.[IPHXRefPropInfo](IPHXRefPropInfo.md)
+- com.phoenix_int.aserver.types.[IPHXFormat](IPHXFormat.md)
+- com.phoenix_int.aserver.types.[IPHXType](IPHXType.md)
+ - com.phoenix_int.aserver.types.[IPHXType2](IPHXType2.md)
+- com.phoenix_int.aserver.types.[IPHXType2.IVisitor](IPHXType2.IVisitor.md)``
+- com.phoenix_int.aserver.types.[IPHXUnits](IPHXUnits.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXLineStore.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXLineStore.md
new file mode 100644
index 0000000000..45d35a9338
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXLineStore.md
@@ -0,0 +1,66 @@
+# Interface: IPHXLineStore
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Declaration**
+
+```java
+public interface IPHXLineStore
+```
+
+This is the interface for holding a set of lines. It is used by the [`PHXFileParser`](PHXFileParser.md) class. Concrete classes include `PHXFileLineStore` and `PHXRandomAccessFileLineStore`.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `close()`
Closes any resources associated with this line store |
+
+## Related Classes
+
+- [`PHXFileParser`](PHXFileParser.md) - File parser that uses this interface
+- [`Parser`](Parser.md) - Base parser class
+- [`package-tree`](package-tree.md) - Class hierarchy for this package
+
+**See Also:**
+
+- [Package Summary](package-summary.md) - Overview of all classes in this package
+- [All Classes Index](../../../index-all.md) - Complete class index
+| `java.lang.String` | `getLine(int index)`
Retrieves the specified line |
+| `int` | `getNumLines()`
Gets the total number of lines |
+
+## Method Detail
+
+### getNumLines
+
+```java
+int getNumLines()
+```
+Gets the total number of lines
+
+### getLine
+
+```java
+java.lang.String getLine(int index)
+ throws java.io.IOException
+```
+Retrieves the specified line
+
+**Parameters:**
+
+- `index` - the index of the line to retrieve
+
+**Throws:**
+
+- `java.io.IOException`
+
+**See Also:**
+
+- [`PHXFileParser.getLine(int)`](PHXFileParser.md) - Related method in file parser
+
+### close
+
+```java
+void close()
+```
+Closes any resources associated with this line store
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXStringReplacer.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXStringReplacer.md
new file mode 100644
index 0000000000..68f9d68066
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/IPHXStringReplacer.md
@@ -0,0 +1,38 @@
+## Interface: IPHXStringReplacer
+
+**Package:** `com.phoenix_int.aserver.util`
+
+---
+
+**Declaration**
+
+```java
+public interface IPHXStringReplacer
+```
+
+This is the interface for replacing strings, used by the PHXStringReplacer class.
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getReplacement(java.lang.String s)`
replaces the specified string with some other value. |
+
+## Method Detail
+
+### getReplacement
+
+```java
+java.lang.String getReplacement(java.lang.String s)
+ throws PHXNoSuchReplacementException
+```
+replaces the specified string with some other value. If the string does not match a known entity, just return it.
+
+**Parameters:**
+- `s` - the String to replace
+
+**Returns:**
+- the replacement
+
+**Throws:**
+- [`PHXNoSuchReplacementException`](PHXNoSuchReplacementException.md) - thrown if no replacement exists
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXClassNotFoundException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXClassNotFoundException.md
new file mode 100644
index 0000000000..e7373f53fd
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXClassNotFoundException.md
@@ -0,0 +1,81 @@
+# Class: PHXClassNotFoundException
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ java.lang.ReflectiveOperationException
+ ↳ java.lang.ClassNotFoundException
+ ↳ com.phoenix_int.aserver.util.PHXClassNotFoundException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXClassNotFoundException
+extends java.lang.ClassNotFoundException
+```
+
+Simple wrapper for ClassNotFoundException which can contain additional logging info.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXClassNotFoundException()`
Creates a new instance of PHXClassNotFoundException |
+| `PHXClassNotFoundException(java.lang.String message)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addException(java.lang.Exception e)` |
+| `java.util.Iterator` | `getExceptions()` |
+
+### Methods inherited from class java.lang.ClassNotFoundException
+`getCause`, `getException`
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXClassNotFoundException
+
+```java
+public PHXClassNotFoundException()
+```
+Creates a new instance of PHXClassNotFoundException
+
+### PHXClassNotFoundException
+
+```java
+public PHXClassNotFoundException(java.lang.String message)
+```
+
+## Method Detail
+
+### addException
+
+```java
+public void addException(java.lang.Exception e)
+```
+
+### getExceptions
+
+```java
+public java.util.Iterator getExceptions()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileLoader.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileLoader.md
new file mode 100644
index 0000000000..e62e3b1aeb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileLoader.md
@@ -0,0 +1,175 @@
+# Class: PHXFileLoader
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXFileLoader
+```
+---
+**Declaration**
+
+```java
+public class PHXFileLoader
+extends java.lang.Object
+```
+
+This is a utility class for loading data files. The class makes it easy to load files, line by line while ignoring comments (lines that begin with #).
+
+Sample Usage:
+
+```java
+PHXFileLoader fl;
+
+try {
+ fl = new PHXFileLoader( "myfile.dat" );
+} catch ( IOException e ) {
+ System.out.println( e );
+}
+
+String line = fl.nextLine();
+
+while ( line != null ) {
+ // process line
+ ...
+ line = fl.nextLine();
+}
+
+fl.close();
+```
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXFileLoader(java.lang.String fileName)` |
+| `PHXFileLoader(java.io.File file)` |
+| `PHXFileLoader(java.io.StringReader inStream)` |
+| `PHXFileLoader(java.io.InputStream inStream)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `close()`
closes the file |
+| `void` | `finalize()` |
+| `java.lang.String` | `getFileName()`
retrieves the file name |
+| `int` | `getLineNumber()`
returns the line number of the last line read. |
+| `java.lang.String` | `getRemainder()`
returns the rest of the file as a string |
+| `java.lang.String` | `nextLine()`
extracts the next non-comment line from the data file |
+| `java.lang.String` | `readNextLine()`
extracts the next line from the data file |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXFileLoader
+
+```java
+public PHXFileLoader(java.lang.String fileName)
+ throws java.io.IOException
+```
+**Parameters:**
+- `fileName` - the file to load
+**Throws:**
+- `java.io.IOException` - if there is a problem opening the file
+
+### PHXFileLoader
+
+```java
+public PHXFileLoader(java.io.File file)
+ throws java.io.IOException
+```
+**Parameters:**
+- `file` - the file to load
+**Throws:**
+- `java.io.IOException` - if there is a problem opening the file
+
+### PHXFileLoader
+
+```java
+public PHXFileLoader(java.io.StringReader inStream)
+ throws java.io.IOException
+```
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileLoader
+
+```java
+public PHXFileLoader(java.io.InputStream inStream)
+ throws java.io.IOException
+```
+**Throws:**
+- `java.io.IOException`
+
+## Method Detail
+
+### finalize
+
+```java
+public void finalize()
+```
+
+**Overrides:**
+- `finalize` in class `java.lang.Object`
+
+### close
+
+```java
+public void close()
+```
+closes the file
+
+### getFileName
+
+```java
+public java.lang.String getFileName()
+```
+retrieves the file name
+
+**Returns:**
+- the name of the file
+
+### getLineNumber
+
+```java
+public int getLineNumber()
+```
+returns the line number of the last line read. Indexing starts at 1
+
+**Returns:**
+- the last line number
+
+### nextLine
+
+```java
+public java.lang.String nextLine()
+```
+extracts the next non-comment line from the data file
+
+**Returns:**
+- a non-comment line
+
+### readNextLine
+
+```java
+public java.lang.String readNextLine()
+```
+extracts the next line from the data file
+
+**Returns:**
+- a line
+
+### getRemainder
+
+```java
+public java.lang.String getRemainder()
+```
+returns the rest of the file as a string
+
+**Returns:**
+- the remaining contents of the file
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileName.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileName.md
new file mode 100644
index 0000000000..317ca74ed7
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileName.md
@@ -0,0 +1,122 @@
+# Class: PHXFileName
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXFileName
+```
+
+---
+
+**Declaration**
+
+```java
+public class PHXFileName
+extends java.lang.Object
+```
+
+This is a utility class for easily managing file names. The class lets you specify a name, and optionally a base name. If the name fully specifies the file, then the base name is ignored. If not, then the base name may be modified to find the file in different locations.
+
+e.g.:
+
+```java
+ name set base name to resulting fullName
+ ----------- ------------------ --------------------
+ /usr/bin /users/woyak /usr/bin
+ c:/usr/bin d:/users/woyak c:/usr/bin
+ usr/bin /home/woyak /home/woyak/usr/bin
+```
+
+A `PHXStringReplacer` may be specified for use in forming the fullName. If a replacer is specified, both the name and base name will be passed through it before trying to form the fullName.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXFileName()` |
+| `PHXFileName(java.lang.String baseName, java.lang.String name)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getBaseName()` |
+| `java.lang.String` | `getFullName()`
returns the full file name. |
+| `java.lang.String` | `getFullNameCoded()`
returns the full file name in coded form, i.e. |
+| `java.lang.String` | `getName()` |
+| `void` | `setBaseName(java.lang.String baseName)`
sets the base name for the file. |
+| `void` | `setName(java.lang.String name)`
sets the name for the file |
+| `void` | `setStringReplacer(PHXStringReplacer r)`
sets the string replacer for the forming the real file name |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXFileName
+
+```java
+public PHXFileName()
+```
+
+### PHXFileName
+
+```java
+public PHXFileName(java.lang.String baseName,
+ java.lang.String name)
+```
+
+## Method Detail
+
+### setStringReplacer
+
+```java
+public void setStringReplacer(PHXStringReplacer r)
+```
+sets the string replacer for the forming the real file name
+
+### setName
+
+```java
+public void setName(java.lang.String name)
+```
+sets the name for the file
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+
+### setBaseName
+
+```java
+public void setBaseName(java.lang.String baseName)
+```
+sets the base name for the file. If the file was fully specified, then this function does nothing
+
+**Parameters:**
+- `baseName` - the new baseName
+
+### getBaseName
+
+```java
+public java.lang.String getBaseName()
+```
+
+### getFullName
+
+```java
+public java.lang.String getFullName()
+```
+returns the full file name. This is the combination of the base name and name parts, unless the name part is fully specified. In that case it is just the name part.
+
+### getFullNameCoded
+
+```java
+public java.lang.String getFullNameCoded()
+```
+returns the full file name in coded form, i.e. variables have not been substituted into it.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileParser.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileParser.md
new file mode 100644
index 0000000000..0650dbadcc
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXFileParser.md
@@ -0,0 +1,1130 @@
+# Class: PHXFileParser
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXFileParser
+```
+
+**Implemented Interfaces**
+
+- `Parser`
+
+---
+
+**Declaration**
+
+```java
+public class PHXFileParser
+extends java.lang.Object
+implements Parser
+```
+
+This is a utility class for loading data files and extracting data.
+
+Sample Usage:
+
+```java
+PHXFileParser fp;
+
+try {
+ fp = new PHXFileParser( "myfile.dat" );
+} catch ( IOException e ) {
+ System.out.println( e );
+}
+
+try {
+ int row = 20;
+ int field = 2;
+ String token = fp.getToken( row, field );
+} catch ( PHXNoSuchTokenException e ) {
+ System.out.println( "Error: token not found" );
+}
+```
+
+NOTES:
+- This class works by remembering what things have changed, but not actually performing the changes until the file is written out. This prevents changes to one place in the file from messing up something elsewhere.
+- Note however that there is a requirement that no changes overlap or are repeated. For example, you may not set the value of one token twice (the results of which are undefined). Neither may you change a token, then change the delimiters and change another token that includes part of the first. The same holds true for adding and removing lines. You may not add or remove lines to sections of the file previously altered.
+
+## Nested Class Summary
+
+| Modifier and Type | Class and Description |
+|------------------|----------------------|
+| `Parser.Mode` | `Parser.Mode`
Parser modes for file parsing. |
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static int` | `AUTOMATIC`
Deprecated. in favor of `Parser.Mode.AUTOMATIC` |
+| `static int` | `BUFFERED`
Deprecated. in favor of `Parser.Mode.BUFFERED` |
+| `static long` | `FILE_SIZE_LIMIT`
Deprecated. in favor of `Parser.Mode.FILE_SIZE_LIMIT` |
+| `static int` | `FIRST` |
+| `static int` | `LAST` |
+| `static int` | `RANDOM_ACCESS`
Deprecated. in favor of `Parser.Mode.RANDOM` |
+| `static int` | `RESIZE_DISALLOW`
Don't allow the length of an array to change |
+| `static int` | `RESIZE_ROWS`
Allow a square matrix to change sizes by adding or deleting rows. |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXFileParser(java.io.File file, Parser.Mode mode)` |
+| `PHXFileParser(java.io.File file, Parser.Mode mode, com.phoenix_int.util.PHXFileUtils.Encoding encoding)` |
+| `PHXFileParser(IPHXLineStore store, java.lang.String fileName)` |
+| `PHXFileParser(java.lang.String fileName)` |
+| `PHXFileParser(java.lang.String fileName, int method)`
Deprecated. in favor of `PHXFileParser(String, Parser.Mode)` |
+| `PHXFileParser(java.lang.String fileName, Parser.Mode mode)` |
+| `PHXFileParser(java.lang.String fileName, Parser.Mode mode, com.phoenix_int.util.PHXFileUtils.Encoding encoding)` |
+| `PHXFileParser(java.lang.String fileName, com.phoenix_int.util.PHXFileUtils.Encoding encoding)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addLines(int actualIndex, int count, java.lang.String line)` |
+| `void` | `addLines(int actualIndex, java.lang.String[] lines)` |
+| `void` | `clearMarks()`resets the file to it's whole size by removing the starting and ending marks if they existed |
+| `void` | `close()`Close the parser |
+| `void` | `closeFile()`close the PHXRandomAccessFileLineStore |
+| `int` | `countTokens(int row)`counts the number of tokens on a specified row |
+| `java.lang.String[]` | `getColumnArray(int startRow, int endRow, int field)`gets an array of tokens for the specified range. |
+| `char` | `getDecimalSeparator()`gets decimal separator character for floating point literals |
+| `java.lang.String` | `getDelimiters()` |
+| `java.lang.String` | `getFileName()`retrieves the name of the file that is being parsed |
+| `IPHXLineStore` | `getLineStore()`Gets the underlying line store object for this parser |
+| `java.lang.String[]` | `getMatrixArray(int startRow, int startField, int endRow, int endField)`gets an array of tokens for the specified range. |
+| `java.lang.String[]` | `getMatrixArray(int startRow, int startCol, int endRow, int endCol, int fieldWidth)`gets an array of tokens for the specified range. |
+| `java.lang.String[][]` | `getMatrixArray2d(int startRow, int startField, int endRow, int endField)`gets an array of tokens for the specified range. |
+| `java.lang.String[]` | `getRowArray(int startCol, int endCol, int row)`gets an array of tokens for the specified range. |
+| `java.lang.String` | `getToken(int row, int field)`gets the token at the specified row and field. |
+| `java.lang.String` | `getToken(int row, int startCol, int endCol)`gets the token at the specified row and column. |
+| `java.util.Vector` | `getToken(int row, int startField, int endField, java.lang.String delimiter)`gets an array of tokens at the specified row and between start and end fields (all inclusive)
+ Indexing starts at 1. |
+| `java.lang.String` | `getToken(java.lang.String string, int rowOffset, int field)`gets the token relative to a search string. |
+| `java.lang.String` | `getToken(java.lang.String string, int occurrence, int rowOffset, int field)`gets the token relative to a search string. |
+| `static void` | `main(java.lang.String[] args)` |
+| `void` | `markBeginning(int row)`marks the starting point from which to start counting rows
+ and fields. |
+| `void` | `markBeginning(java.lang.String string)`same as markBeginning where the pattern is a regex and
+ ocurence value is 1 |
+| `void` | `markBeginning(java.lang.String string, boolean isRegex)`same as markBeginning with an occurrence value of 1 |
+| `void` | `markBeginning(java.lang.String string, boolean isRegex, int occurrence)`marks the starting point from which to start counting rows
+ and fields. |
+| `void` | `markBeginning(java.lang.String string, int occurrence)`marks the starting point from which to start counting rows
+ and fields. |
+| `void` | `markBeginningFromEnd(java.lang.String string, boolean isRegex)`marks the starting point from which to start counting rows. |
+| `void` | `markBeginningOffset(int offset)`marks the starting point from which to start counting rows
+ and fields. |
+| `void` | `markEnd(int row)`marks the ending point of the file. |
+| `void` | `markEnd(java.lang.String string, boolean isRegex)`same as markEnd with an occurrence value of 1 |
+| `void` | `markEnd(java.lang.String string, boolean isRegex, int occurrence)`marks the ending point from which to start counting rows
+ and fields. |
+| `void` | `markEnd(java.lang.String string, int occurrence)`marks the ending point from which to start counting rows
+ and fields. |
+| `void` | `markEndFromEnd(java.lang.String string, boolean isRegex)`marks the starting point from which to start counting rows
+ and fields. |
+| `void` | `markEndOffset(int offset)`marks the ending point from which to start counting rows
+ and fields. |
+| `void` | `removeLines(int actualIndex, int count)` |
+| `void` | `resetDelimiters()`resets the delimiters to whitespace |
+| `void` | `setDecimalSeparator(char separator)`sets decimal separator character for floating point literals |
+| `void` | `setDelimiters(java.lang.String delimiters)`sets the current delimiter set |
+| `void` | `setMatrixArray(int startRow, int startCol, int endRow, int endCol, int fieldWidth, java.lang.String[] array)`sets an array of tokens for the specified range. |
+| `void` | `setMatrixArray(int startRow, int startCol, int endRow, int endCol, int fieldWidth, java.lang.String[] array, int resizeStyle)`sets an array of tokens for the specified range. |
+| `void` | `setMatrixArray(int startRow, int startCol, int endRow, int endCol, java.lang.String[] array)`sets an array of tokens for the specified range. |
+| `void` | `setMatrixArray(int startRow, int startCol, int endRow, int endCol, java.lang.String[] array, int resizeStyle)`sets an array of tokens for the specified range. |
+| `void` | `setMatrixArray2d(int startRow, int startCol, int endRow, int endCol, java.lang.String[][] array, int resizeStyle)`sets an array of tokens for the specified range. |
+| `void` | `setToken(int row, int startCol, int endCol, java.lang.String replacement)`replaces the token at the specified row and column. |
+| `void` | `setToken(int row, int field, java.lang.String replacement)`replaces the token at the specified row and field. |
+| `void` | `setToken(java.lang.String string, int occurrence, int rowOffset, int field, java.lang.String replacement)`gets the token relative to a search string. |
+| `void` | `setToken(java.lang.String string, int rowOffset, int field, java.lang.String replacement)`gets the token relative to a search string. |
+| `void` | `writeTo(java.io.OutputStream os)` |
+| `void` | `writeTo(java.io.OutputStreamWriter fw)`writes out the data to a file |
+| `void` | `writeTo(java.lang.String fileName)` |
+| `void` | `writeTo(java.lang.String fileName, com.phoenix_int.util.PHXFileUtils.Encoding encoding)` |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### RESIZE_DISALLOW
+
+```java
+public static final int RESIZE_DISALLOW
+```
+Don't allow the length of an array to change
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### RESIZE_ROWS
+
+```java
+public static final int RESIZE_ROWS
+```
+Allow a square matrix to change sizes by adding or deleting rows.
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### FIRST
+
+```java
+public static final int FIRST
+```
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### LAST
+
+```java
+public static final int LAST
+```
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+### RANDOM_ACCESS
+
+```java
+@Deprecated
+public static final int RANDOM_ACCESS
+```
+Deprecated. in favor of `Parser.Mode.RANDOM`
+
+### BUFFERED
+
+```java
+@Deprecated
+public static final int BUFFERED
+```
+Deprecated. in favor of `Parser.Mode.BUFFERED`
+
+### AUTOMATIC
+
+```java
+@Deprecated
+public static final int AUTOMATIC
+```
+Deprecated. in favor of `Parser.Mode.AUTOMATIC`
+
+### FILE_SIZE_LIMIT
+
+```java
+@Deprecated
+public static final long FILE_SIZE_LIMIT
+```
+Deprecated. in favor of `Parser.Mode.FILE_SIZE_LIMIT` cut-off limit of file size to use buffers for row files
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+## Constructor Detail
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.lang.String fileName)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.lang.String fileName,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding)
+ throws java.io.IOException
+```
+
+**Parameters:**
+- `fileName` - the file to load
+
+**Throws:**
+- `java.io.IOException` - if there is a problem opening the file
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.io.File file,
+ Parser.Mode mode)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.io.File file,
+ Parser.Mode mode,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.lang.String fileName,
+ Parser.Mode mode)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileParser
+
+```java
+public PHXFileParser(java.lang.String fileName,
+ Parser.Mode mode,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### PHXFileParser
+
+```java
+@Deprecated
+public PHXFileParser(java.lang.String fileName,
+ int method)
+ throws java.io.IOException
+```
+Deprecated. in favor of `PHXFileParser(String, Parser.Mode)`
+
+**Parameters:**
+- `fileName` - the file to load
+- `method` - the method used to parse the file. `RANDOM_ACCESS` will scan the data file as needed. `BUFFERED` will read the file into a buffer prior to parsing. `RANDOM_ACCESS` is better for large files, but will be slower for small (<50k) files. `BUFFERED` is also preferable for parsing many variables from a file or for performing large numbers of searches.
+
+**Throws:**
+- `java.io.IOException` - if there is a problem opening the file
+
+### PHXFileParser
+
+```java
+public PHXFileParser(IPHXLineStore store,
+ java.lang.String fileName)
+```
+
+**Parameters:**
+- `store` - The source of lines for the file parser.
+- `fileName` - The name of the file for errors and advisories. This parameter is not used for any actual processing
+
+## Method Detail
+
+### getLineStore
+
+```java
+public IPHXLineStore getLineStore()
+```
+Gets the underlying line store object for this parser
+
+**Returns:**
+- the line store used by the parser
+
+### getFileName
+
+```java
+public java.lang.String getFileName()
+```
+retrieves the name of the file that is being parsed
+
+**Returns:**
+- the name of the file
+
+### writeTo
+
+```java
+public void writeTo(java.lang.String fileName)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### writeTo
+
+```java
+public void writeTo(java.lang.String fileName,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### writeTo
+
+```java
+public void writeTo(java.io.OutputStream os)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### writeTo
+
+```java
+public void writeTo(java.io.OutputStreamWriter fw)
+ throws java.io.IOException
+```
+writes out the data to a file
+
+**Specified by:**
+- `writeTo` in interface `Parser`
+
+**Parameters:**
+- `fw` - the stream to save to
+
+**Throws:**
+- `java.io.IOException` - thrown if the file cannot be written to
+
+### close
+
+```java
+public void close()
+```
+Description copied from interface: `Parser`
+
+Close the parser
+
+**Specified by:**
+- `close` in interface `Parser`
+
+### closeFile
+
+```java
+public void closeFile()
+```
+close the `PHXRandomAccessFileLineStore`
+
+### resetDelimiters
+
+```java
+public void resetDelimiters()
+```
+resets the delimiters to whitespace
+
+### getDelimiters
+
+```java
+public java.lang.String getDelimiters()
+```
+
+### setDelimiters
+
+```java
+public void setDelimiters(java.lang.String delimiters)
+```
+sets the current delimiter set
+
+**Parameters:**
+- `delimiters` - the delimiters to use for parsing
+
+### getDecimalSeparator
+
+```java
+public char getDecimalSeparator()
+```
+gets decimal separator character for floating point literals
+
+**Returns:**
+- decimal separator character
+
+### setDecimalSeparator
+
+```java
+public void setDecimalSeparator(char separator)
+```
+sets decimal separator character for floating point literals
+
+**Parameters:**
+- `separator` - decimal separator to use when parsing floating point literals
+
+### markBeginning
+
+```java
+public void markBeginning(int row)
+ throws PHXNoSuchTokenException
+```
+marks the starting point from which to start counting rows and fields. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `row` - the row where the new beginning will occur. This row becomes row 1.
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markEnd
+
+```java
+public void markEnd(int row)
+ throws PHXNoSuchTokenException
+```
+marks the ending point of the file. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `row` - the row where the new ending will occur. This row becomes the last row.
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markBeginningOffset
+
+```java
+public void markBeginningOffset(int offset)
+```
+marks the starting point from which to start counting rows and fields. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `offset` - the offset from the current starting line
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if the specified offset moves past the end or beginning of the file
+
+### markBeginning
+
+```java
+public void markBeginning(java.lang.String string,
+ boolean isRegex)
+ throws PHXNoSuchTokenException
+```
+same as markBeginning with an occurrence value of 1
+
+**Parameters:**
+- `string` - the pattern that marks the new first line
+- `isRegex` - if true, the pattern is a regular expression
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markBeginning
+
+```java
+public void markBeginning(java.lang.String string)
+ throws PHXNoSuchTokenException
+```
+same as markBeginning where the pattern is a regex and occurrence value is 1
+
+**Parameters:**
+- `string` - the pattern that marks the new first line
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markBeginning
+
+```java
+public void markBeginning(java.lang.String string,
+ boolean isRegex,
+ int occurrence)
+ throws PHXNoSuchTokenException
+```
+marks the starting point from which to start counting rows and fields. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `string` - the search pattern
+- `occurrence` - the number of times to search for the pattern. may be negative to search from end
+- `isRegex` - if true, the string is a regular expression.
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markBeginning
+
+```java
+public void markBeginning(java.lang.String string,
+ int occurrence)
+ throws PHXNoSuchTokenException
+```
+marks the starting point from which to start counting rows and fields. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `string` - the search pattern
+- `occurrence` - the number of times to search for the pattern. may be negative to search from end
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markEndOffset
+
+```java
+public void markEndOffset(int offset)
+```
+marks the ending point from which to start counting rows and fields. Position is marked relative to the previously marked position.
+
+**Parameters:**
+- `offset` - the offset from the current starting line
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if the specified offset moves past the end or beginning of the file
+
+### markEnd
+
+```java
+public void markEnd(java.lang.String string,
+ boolean isRegex)
+ throws PHXNoSuchTokenException
+```
+same as `markEnd` with an occurrence value of 1
+
+**Parameters:**
+- `string` - the pattern that marks the new first line
+- `isRegex` - if true, the pattern is a regular expression
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markEnd
+
+```java
+public void markEnd(java.lang.String string,
+ boolean isRegex,
+ int occurrence)
+ throws PHXNoSuchTokenException
+```
+marks the ending point from which to start counting rows and fields. Position is marked relative to the last marked position.
+
+**Parameters:**
+- `string` - the pattern that marks the new last line
+- `isRegex` - if true, the pattern is a regular expression
+- `occurrence` - the number of times to search for regex value may be negative to search from beginning
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markEnd
+
+```java
+public void markEnd(java.lang.String string,
+ int occurrence)
+ throws PHXNoSuchTokenException
+```
+marks the ending point from which to start counting rows and fields. Position is marked relative to the last marked position. Search string is a regex.
+
+**Parameters:**
+- `string` - the pattern that marks the new last line
+- `occurrence` - the number of times to search for regex value may be negative to search from end
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markBeginningFromEnd
+
+```java
+public void markBeginningFromEnd(java.lang.String string,
+ boolean isRegex)
+ throws PHXNoSuchTokenException
+```
+marks the starting point from which to start counting rows. Position is marked relative to the previously marked position.
+
+**Parameters:**
+- `string` - the pattern that marks the new first line
+- `isRegex` - if true, the pattern is a regular expression
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### markEndFromEnd
+
+```java
+public void markEndFromEnd(java.lang.String string,
+ boolean isRegex)
+ throws PHXNoSuchTokenException
+```
+marks the starting point from which to start counting rows and fields. Position is marked relative to the previously marked position.
+
+**Parameters:**
+- `string` - the pattern that marks the new first line
+- `isRegex` - if true, the pattern is a regular expression
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### clearMarks
+
+```java
+public void clearMarks()
+```
+resets the file to its whole size by removing the starting and ending marks if they existed
+
+### getToken
+
+```java
+public java.lang.String getToken(java.lang.String string,
+ int occurrence,
+ int rowOffset,
+ int field)
+ throws PHXNoSuchTokenException
+```
+gets the token relative to a search string. Indexing starts at 1.
+
+**Parameters:**
+- `string` - the value to search for
+- `occurrence` - the number of times to match the search
+- `rowOffset` - row relative to the search results where the token is found
+- `field` - the field in the specified row for the token
+
+**Returns:**
+- the token found
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### getToken
+
+```java
+public java.lang.String getToken(java.lang.String string,
+ int rowOffset,
+ int field)
+ throws PHXNoSuchTokenException
+```
+gets the token relative to a search string. Indexing starts at 1.
+
+**Parameters:**
+- `string` - the value to search for
+- `rowOffset` - row relative to the search results where the token is found
+- `field` - the field in the specified row for the token
+
+**Returns:**
+- the token found
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### getToken
+
+```java
+public java.lang.String getToken(int row,
+ int field)
+ throws PHXNoSuchTokenException
+```
+gets the token at the specified row and field. Indexing starts at 1.
+
+**Parameters:**
+- `row` - the row that the token is on
+- `field` - the field in the specified row for the token
+
+**Returns:**
+- the token found at row, field
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### getToken
+
+```java
+public java.lang.String getToken(int row,
+ int startCol,
+ int endCol)
+ throws PHXNoSuchTokenException
+```
+gets the token at the specified row and column. Indexing starts at 1.
+
+**Parameters:**
+- `row` - the row that the token is on
+- `startCol` - the start column
+- `endCol` - the end column
+
+**Returns:**
+- the token between startCol and endCol on row row
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### getToken
+
+```java
+public java.util.Vector getToken(int row,
+ int startField,
+ int endField,
+ java.lang.String delimiter)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens at the specified row and between start and end fields (all inclusive). Indexing starts at 1. Eg: if line = "IP = 1.5, 2.5, 3.5, 4.5", then `getToken(row, 2, 4, " \t,=")` would return `[1.5,2.5,3.5]`.
+
+**Parameters:**
+- `row` - the row that the tokens are on
+- `startField` - the start field (inclusive)
+- `endField` - the end field (inclusive)
+- `delimiter` - the delimiters
+
+**Returns:**
+- the token between startField and endField (all inclusive) on row row
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### setToken
+
+```java
+public void setToken(java.lang.String string,
+ int occurrence,
+ int rowOffset,
+ int field,
+ java.lang.String replacement)
+ throws PHXNoSuchTokenException
+```
+gets the token relative to a search string. Indexing starts at 1.
+
+**Parameters:**
+- `string` - the value to search for
+- `occurrence` - the number of times to match the search
+- `rowOffset` - row relative to the search results where the token is found
+- `field` - the field in the specified row for the token
+- `replacement` - the string to substitute into the field
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### setToken
+
+```java
+public void setToken(java.lang.String string,
+ int rowOffset,
+ int field,
+ java.lang.String replacement)
+ throws PHXNoSuchTokenException
+```
+gets the token relative to a search string. Indexing starts at 1.
+
+**Parameters:**
+- `string` - the value to search for
+- `rowOffset` - row relative to the search results where the token is found
+- `field` - the field in the specified row for the token
+- `replacement` - the string to substitute into the field
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### setToken
+
+```java
+public void setToken(int row,
+ int field,
+ java.lang.String replacement)
+ throws PHXNoSuchTokenException
+```
+replaces the token at the specified row and field. Indexing starts at 1.
+
+**Parameters:**
+- `row` - the row that the token is on
+- `field` - the field in the specified row for the token
+- `replacement` - the string to substitute into the field
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### setToken
+
+```java
+public void setToken(int row,
+ int startCol,
+ int endCol,
+ java.lang.String replacement)
+ throws PHXNoSuchTokenException
+```
+replaces the token at the specified row and column. Indexing starts at 1.
+
+**Parameters:**
+- `row` - the row that the token is on
+- `startCol` - the start column
+- `endCol` - the end column
+- `replacement` - the string to substitute into the field
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the token is not found
+
+### addLines
+
+```java
+public void addLines(int actualIndex,
+ int count,
+ java.lang.String line)
+```
+
+### addLines
+
+```java
+public void addLines(int actualIndex,
+ java.lang.String[] lines)
+```
+
+### removeLines
+
+```java
+public void removeLines(int actualIndex,
+ int count)
+```
+
+### countTokens
+
+```java
+public int countTokens(int row)
+ throws PHXNoSuchTokenException
+```
+counts the number of tokens on a specified row
+
+**Parameters:**
+- `row` - the row to count tokens
+
+**Returns:**
+- the number of tokens on the specified row
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if the row specified is invalid
+
+### getColumnArray
+
+```java
+public java.lang.String[] getColumnArray(int startRow,
+ int endRow,
+ int field)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `endRow` - the row for the last element in the array
+- `field` - the field in the specified row for the token
+
+**Returns:**
+- an array of String tokens
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### getRowArray
+
+```java
+public java.lang.String[] getRowArray(int startCol,
+ int endCol,
+ int row)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startCol` - the field for the first element in the array
+- `endCol` - the field for the last element in the array
+- `row` - the row to extract tokens from
+
+**Returns:**
+- an array of String tokens
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### getMatrixArray
+
+```java
+public java.lang.String[] getMatrixArray(int startRow,
+ int startField,
+ int endRow,
+ int endField)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startField` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endField` - the field for the last element in the array
+
+**Returns:**
+- an array of String tokens
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### getMatrixArray2d
+
+```java
+public java.lang.String[][] getMatrixArray2d(int startRow,
+ int startField,
+ int endRow,
+ int endField)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startField` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endField` - the field for the last element in the array
+
+**Returns:**
+- an array of String tokens
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### getMatrixArray
+
+```java
+public java.lang.String[] getMatrixArray(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ int fieldWidth)
+ throws PHXNoSuchTokenException
+```
+gets an array of tokens for the specified range. Indexing starts at 1. Columns are actual columns and not field indexes.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the column for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the column for the last element in the array
+- `fieldWidth` - UNUSED. How wide one field is.
+
+**Returns:**
+- an array of String tokens
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### setMatrixArray
+
+```java
+public void setMatrixArray(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ java.lang.String[] array)
+ throws PHXNoSuchTokenException
+```
+sets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the field for the last element in the array
+- `array` - the values
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### setMatrixArray
+
+```java
+public void setMatrixArray(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ java.lang.String[] array,
+ int resizeStyle)
+ throws PHXNoSuchTokenException
+```
+sets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the field for the last element in the array
+- `array` - the values
+- `resizeStyle` - How to resize (RESIZE_DISALLOW, RESIZE_ROWS)
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### setMatrixArray2d
+
+```java
+public void setMatrixArray2d(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ java.lang.String[][] array,
+ int resizeStyle)
+ throws PHXNoSuchTokenException
+```
+sets an array of tokens for the specified range. Indexing starts at 1.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the field for the last element in the array
+- `array` - the values
+- `resizeStyle` - How to resize (RESIZE_DISALLOW, RESIZE_ROWS)
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### setMatrixArray
+
+```java
+public void setMatrixArray(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ int fieldWidth,
+ java.lang.String[] array)
+ throws PHXNoSuchTokenException
+```
+sets an array of tokens for the specified range. Indexing starts at 1. Columns are specified instead of fields.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the field for the last element in the array
+- `fieldWidth` - UNUSED. How wide one field is.
+- `array` - the values
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### setMatrixArray
+
+```java
+public void setMatrixArray(int startRow,
+ int startCol,
+ int endRow,
+ int endCol,
+ int fieldWidth,
+ java.lang.String[] array,
+ int resizeStyle)
+ throws PHXNoSuchTokenException
+```
+sets an array of tokens for the specified range. Indexing starts at 1. Columns are specified instead of fields.
+
+**Parameters:**
+- `startRow` - the row for the first element in the array
+- `startCol` - the field for the first element in the array
+- `endRow` - the row for the last element in the array
+- `endCol` - the field for the last element in the array
+- `fieldWidth` - UNUSED. How wide one field is.
+- `array` - the values
+- `resizeStyle` - How to resize (RESIZE_DISALLOW, RESIZE_ROWS)
+
+**Throws:**
+- [`PHXNoSuchTokenException`](PHXNoSuchTokenException.md) - thrown if a token is not found
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXGetByUrlException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXGetByUrlException.md
new file mode 100644
index 0000000000..acc9b9cb78
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXGetByUrlException.md
@@ -0,0 +1,66 @@
+# Class: PHXGetByUrlException
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.PHXGetByUrlException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXGetByUrlException
+extends java.lang.Exception
+```
+
+An exception that is thrown when encountering an error getting a file's contents via url
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXGetByUrlException(java.lang.String reason)`
Constructor. |
+| `PHXGetByUrlException(java.lang.String reason, java.lang.Throwable inner)`
Constructor. |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXGetByUrlException
+
+```java
+public PHXGetByUrlException(java.lang.String reason)
+```
+Constructor. Builds a combined string for the message about get by url failing with an inner reason.
+
+**Parameters:**
+- `reason` - The reason get by url failed
+
+### PHXGetByUrlException
+
+```java
+public PHXGetByUrlException(java.lang.String reason,
+ java.lang.Throwable inner)
+```
+Constructor. Builds a combined string for the message about get by url failing with an inner reason.
+
+**Parameters:**
+- `reason` - The reason get by url failed
+- `inner` - Any inner exceptions
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXIcon.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXIcon.md
new file mode 100644
index 0000000000..e2ed259ae3
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXIcon.md
@@ -0,0 +1,126 @@
+# Class: PHXIcon
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXIcon
+```
+---
+**Declaration**
+
+```java
+public class PHXIcon
+extends java.lang.Object
+```
+
+This class provides utility functions for loading and creating an icon file.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXIcon()`
Creates an icon with values set to "unknown" |
+| `PHXIcon(byte[] iconData, java.lang.String iconType)` |
+| `PHXIcon(java.lang.String iconFileName)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `byte[]` | `getData()`
Retrieves the data for the image |
+| `java.lang.String` | `getIconFileName()`
Gets the file name of the icon. |
+| `java.net.URI` | `getIconURI()`
Gets the URI of the icon. |
+| `java.lang.String` | `getType()`
Retrieves the type for the image |
+| `java.awt.Image` | `toImage()`
Converts the icon to an Image |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXIcon
+
+```java
+public PHXIcon()
+```
+Creates an icon with values set to "unknown".
+
+### PHXIcon
+
+```java
+public PHXIcon(java.lang.String iconFileName)
+ throws java.io.IOException
+```
+
+**Parameters:**
+- `iconFileName` - the file containing the icon
+
+**Throws:**
+- `java.io.IOException` - thrown if there is a problem opening or reading the icon file
+
+### PHXIcon
+
+```java
+public PHXIcon(byte[] iconData,
+ java.lang.String iconType)
+```
+
+**Parameters:**
+- `iconData` - the data making up the file
+- `iconType` - the data type (gif, jpg, etc)
+
+## Method Detail
+
+### getData
+
+```java
+public byte[] getData()
+```
+Retrieves the data for the image.
+
+**Returns:**
+- the data for the image
+
+### getType
+
+```java
+public java.lang.String getType()
+```
+Retrieves the type for the image.
+
+**Returns:**
+- the type for the image
+
+### toImage
+
+```java
+public java.awt.Image toImage()
+```
+Converts the icon to an Image.
+
+**Returns:**
+- an image based solely on the data.
+
+### getIconFileName
+
+```java
+public java.lang.String getIconFileName()
+```
+Gets the file name of the icon. This will return an empty String if the file name is not available.
+
+**Returns:**
+- the file name of the icon, or null if not specified
+
+### getIconURI
+
+```java
+public java.net.URI getIconURI()
+```
+Gets the URI of the icon. If the URI is not available, this will return null.
+
+**Returns:**
+- the URI of the icon, or null if not available
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNameDivider.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNameDivider.md
new file mode 100644
index 0000000000..36e20d0b1b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNameDivider.md
@@ -0,0 +1,88 @@
+# Class: PHXNameDivider
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXNameDivider
+```
+
+---
+
+**Declaration**
+
+```java
+public class PHXNameDivider
+extends java.lang.Object
+```
+
+This is a utility class for breaking down names into smaller parts.
+
+Usage:
+```java
+String fullName = "phoenix/NAVY/IBHVG2";
+String category = PHXNameDivider.getPathPart(fullName);
+String name = PHXNameDivider.getNamePart(fullName);
+```
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXNameDivider()` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static java.lang.String` | `getNamePart(java.lang.String fullName)`
Retrieves the name part from a full name |
+| `static java.lang.String` | `getPathPart(java.lang.String fullName)`
Retrieves the path part from a full name |
+| `static void` | `main(java.lang.String[] args)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNameDivider
+
+```java
+public PHXNameDivider()
+```
+
+## Method Detail
+
+### getPathPart
+
+```java
+public static java.lang.String getPathPart(java.lang.String fullName)
+```
+Retrieves the path part from a full name.
+
+**Parameters:**
+- `fullName` - the full name
+
+**Returns:**
+- only the path part of the full name, separator not included
+
+### getNamePart
+
+```java
+public static java.lang.String getNamePart(java.lang.String fullName)
+```
+Retrieves the name part from a full name.
+
+**Parameters:**
+- `fullName` - the full name
+
+**Returns:**
+- only the name part of the full name
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchReplacementException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchReplacementException.md
new file mode 100644
index 0000000000..283b5c0507
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchReplacementException.md
@@ -0,0 +1,54 @@
+# Class: PHXNoSuchReplacementException
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.PHXNoSuchReplacementException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXNoSuchReplacementException
+extends java.lang.Exception
+```
+
+An exception that is thrown when a replacement string cannot be found.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXNoSuchReplacementException()` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchReplacementException
+
+```java
+public PHXNoSuchReplacementException()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchTokenException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchTokenException.md
new file mode 100644
index 0000000000..b09976490d
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXNoSuchTokenException.md
@@ -0,0 +1,87 @@
+# Class: PHXNoSuchTokenException
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.PHXNoSuchTokenException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXNoSuchTokenException
+extends java.lang.Exception
+```
+
+An exception that is thrown when an object cannot be found.
+
+**See Also:**
+- [Serialized Form](../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXNoSuchTokenException()` |
+| `PHXNoSuchTokenException(java.lang.String msg)` |
+| `PHXNoSuchTokenException(java.lang.String msg, java.lang.Throwable cause)` |
+| `PHXNoSuchTokenException(java.lang.Throwable cause)` |
+
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXNoSuchTokenException
+
+```java
+public PHXNoSuchTokenException()
+```
+
+### PHXNoSuchTokenException
+
+```java
+public PHXNoSuchTokenException(java.lang.String msg)
+```
+
+**Parameters:**
+- `msg` - the reason for the exception.
+
+### PHXNoSuchTokenException
+
+```java
+public PHXNoSuchTokenException(java.lang.String msg,
+ java.lang.Throwable cause)
+```
+
+**Parameters:**
+- `msg` - the reason for the exception.
+- `cause` - an inner exception representing the reason for throwing this one.
+
+### PHXNoSuchTokenException
+
+```java
+public PHXNoSuchTokenException(java.lang.Throwable cause)
+```
+
+**Parameters:**
+- `cause` - an inner exception representing the reason for throwing this one.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcess.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcess.md
new file mode 100644
index 0000000000..572fd9de36
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcess.md
@@ -0,0 +1,235 @@
+# Class: PHXProcess
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Process
+ ↳ com.phoenix_int.aserver.util.PHXProcess
+```
+
+**Implemented Interfaces**
+
+- `com.phoenix_int.aserver.util.IPHXStreamRegExListener`
+
+---
+
+**Declaration**
+
+```java
+public class PHXProcess
+extends java.lang.Process
+implements com.phoenix_int.aserver.util.IPHXStreamRegExListener
+```
+
+This is a utility class that extends `java.lang.Process` with a system dependent process ID. This is combined with the phxspawn and phxps utilities to provide information on sub-processes in a semi-platform independent way.
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXProcess(java.lang.Process p)`
Constructs a PHXProcess out of a regular process but does not provide extended functionality because the process ID will not be known. |
+| `PHXProcess(java.lang.Process p, boolean readPID, java.lang.String jobIdRegex, java.lang.String jobNodeRegex, com.phoenix_int.aserver.util.IPHXProcessJobInfoListener listener)` |
+| `PHXProcess(java.lang.Process p, boolean readPID, java.lang.String jobIdRegex, java.lang.String jobNodeRegex, com.phoenix_int.aserver.util.IPHXProcessJobInfoListener listener, java.lang.String fname)`
Constructs a PHXProcess out of a process and optionally reads the PID of the sub-process. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `destroy()` |
+| `int` | `exitValue()` |
+| `java.io.InputStream` | `getErrorStream()` |
+| `java.io.InputStream` | `getInputStream()` |
+| `java.lang.String` | `getJobID()` |
+| `java.lang.String` | `getJobNode()` |
+| `java.io.OutputStream` | `getOutputStream()` |
+| `java.lang.Process` | `getProcess()`
Returns the java Process instance for this PHXProcess |
+| `int` | `getProcessID()`
Returns the platform dependent process ID associated with this process. |
+| `java.lang.String` | `getTempScriptFileName()` |
+| `PHXProcessInfo[]` | `listProcesses()`
This function lists all the processes and sub-processes of this PHXProcess. |
+| `boolean` | `matchFound(int patNum, Pattern pat, java.lang.String line, MatchResult match)`
Signals that a match was found. |
+| `int` | `waitFor()` |
+| `com.phoenix_int.aserver.util.PHXStreamRegExMonitor` | `wrapErrorStream(com.phoenix_int.aserver.util.IPHXStreamRegExListener l)` |
+| `com.phoenix_int.aserver.util.PHXStreamRegExMonitor` | `wrapInputStream(com.phoenix_int.aserver.util.IPHXStreamRegExListener l)` |
+
+### Methods inherited from class java.lang.Process
+`destroyForcibly`, `isAlive`, `waitFor`
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, toString, wait, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXProcess
+
+```java
+public PHXProcess(java.lang.Process p,
+ boolean readPID,
+ java.lang.String jobIdRegex,
+ java.lang.String jobNodeRegex,
+ com.phoenix_int.aserver.util.IPHXProcessJobInfoListener listener,
+ java.lang.String fname)
+```
+Constructs a `PHXProcess` out of a process and optionally reads the PID of the sub-process. Typically you do not create instances of this class yourself, but use `PHXRuntime.exec2()` to generate instances.
+
+**Parameters:**
+- `readPID` - If true, the PID of this process will be read off of the process's standard output. The pid should be a number and should be on the very first line of output all by itself.
+
+### PHXProcess
+
+```java
+public PHXProcess(java.lang.Process p,
+ boolean readPID,
+ java.lang.String jobIdRegex,
+ java.lang.String jobNodeRegex,
+ com.phoenix_int.aserver.util.IPHXProcessJobInfoListener listener)
+```
+
+### PHXProcess
+
+```java
+public PHXProcess(java.lang.Process p)
+```
+Constructs a PHXProcess out of a regular process but does not provide extended functionality because the process ID will not be known. Use PHXRuntime to execute processes and automatically generate correct `PHXProcess` instances.
+
+## Method Detail
+
+### matchFound
+
+```java
+public boolean matchFound(int patNum,
+ Pattern pat,
+ java.lang.String line,
+ MatchResult match)
+```
+Description copied from interface: `com.phoenix_int.aserver.util.IPHXStreamRegExListener`.
+
+ Signals that a match was found.
+
+**Specified by:**
+- `matchFound` in interface `com.phoenix_int.aserver.util.IPHXStreamRegExListener`
+
+**Parameters:**
+- `patNum` - The index of the pattern that matched
+- `pat` - The matching pattern
+- `line` - The matching line
+- `match` - The MatchResult object which describes the match
+
+**Returns:**
+- `true` to continue searching for this pattern, `false` to remove the pattern from the pattern list.
+
+### getJobID
+
+```java
+public java.lang.String getJobID()
+```
+
+### getJobNode
+
+```java
+public java.lang.String getJobNode()
+```
+
+### getProcess
+
+```java
+public java.lang.Process getProcess()
+```
+Returns the java Process instance for this PHXProcess
+
+### getProcessID
+
+```java
+public int getProcessID() throws java.io.IOException
+```
+Returns the platform dependent process ID associated with this process. If there was any error reading the process ID, or there is no process ID, an exception explaining the problem will be thrown (every time you call this function).
+
+**Throws:**
+- `java.io.IOException`
+
+### listProcesses
+
+```java
+public PHXProcessInfo[] listProcesses() throws java.io.IOException
+```
+This function lists all the processes and sub-processes of this PHXProcess. This is a suitable list to return from `IPHXMonitorable.listProcesses()`.
+
+**Throws:**
+- `java.io.IOException`
+
+### destroy
+
+```java
+public void destroy()
+```
+
+**Specified by:**
+- `destroy` in class `java.lang.Process`
+
+### exitValue
+
+```java
+public int exitValue()
+```
+
+**Specified by:**
+- `exitValue` in class `java.lang.Process`
+
+### waitFor
+
+```java
+public int waitFor() throws java.lang.InterruptedException
+```
+
+**Specified by:**
+- `waitFor` in class `java.lang.Process`
+
+**Throws:**
+- `java.lang.InterruptedException`
+
+### wrapInputStream
+
+```java
+public com.phoenix_int.aserver.util.PHXStreamRegExMonitor wrapInputStream(com.phoenix_int.aserver.util.IPHXStreamRegExListener l)
+```
+
+### wrapErrorStream
+
+```java
+public com.phoenix_int.aserver.util.PHXStreamRegExMonitor wrapErrorStream(com.phoenix_int.aserver.util.IPHXStreamRegExListener l)
+```
+
+### getInputStream
+
+```java
+public java.io.InputStream getInputStream()
+```
+
+**Specified by:**
+- `getInputStream` in class `java.lang.Process`
+
+### getErrorStream
+
+```java
+public java.io.InputStream getErrorStream()
+```
+
+**Specified by:**
+- `getErrorStream` in class `java.lang.Process`
+
+### getOutputStream
+
+```java
+public java.io.OutputStream getOutputStream()
+```
+
+**Specified by:**
+- `getOutputStream` in class `java.lang.Process`
+
+### getTempScriptFileName
+
+```java
+public java.lang.String getTempScriptFileName()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcessInfo.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcessInfo.md
new file mode 100644
index 0000000000..0852b3753a
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXProcessInfo.md
@@ -0,0 +1,154 @@
+# Class: PHXProcessInfo
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXProcessInfo
+```
+---
+**Declaration**
+
+```java
+public class PHXProcessInfo
+extends java.lang.Object
+```
+
+This class represents information about a running process on the system. It includes static members for listing all processes. This is done in a semi-platform independent way by using an external program which is platform dependent (although fairly consistent on UNIX systems, ps). See [`PHXRuntime`](PHXRuntime.md) and [`PHXProcess`](PHXProcess.md) for other convenient ways to use this information. Note that not all platforms will have all information available.
+
+## Constructor Summary
+
+| Modifier | Constructor and Description |
+|-------------|----------------------------|
+| `protected` | `PHXProcessInfo()`
Constructs an empty process |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `getCommand()`
Returns the command name of this process |
+| `long` | `getElapsedTime()`
Returns the wall clock time for this process, if available |
+| `long` | `getMemUsage()`
Gets the memory usage of this process, if available |
+| `int` | `getParentProcessID()`
Gets the parent process ID of this process |
+| `float` | `getPercentCPU()`
Gets the percentage of the CPU usage, if available |
+| `static PHXProcessInfo[]` | `getProcesses()`
Lists all processes on the system |
+| `static PHXProcessInfo[]` | `getProcesses(int parent)`
Lists the specified process' children. |
+| `int` | `getProcessID()`
Gets the platform dependent process ID number |
+| `long` | `getTime()`
Returns the amount of CPU time this process has used, if available. |
+| `static void` | `main(java.lang.String[] args)` |
+| `java.lang.String` | `toString()`
Converts this process info into a one-line readable string |
+| `java.lang.String` | `toXML()`
Converts this process information into a usable XML description |
+
+### Methods inherited from class java.lang.Object
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXProcessInfo
+
+```java
+protected PHXProcessInfo()
+```
+Constructs an empty process
+
+## Method Detail
+
+### getProcesses
+
+```java
+public static PHXProcessInfo[] getProcesses(int parent)
+ throws java.io.IOException
+```
+Lists the specified process' children.
+
+**Throws:**
+- `java.io.IOException`
+
+### getProcesses
+
+```java
+public static PHXProcessInfo[] getProcesses()
+ throws java.io.IOException
+```
+Lists all processes on the system
+
+**Throws:**
+- `java.io.IOException`
+
+### getCommand
+
+```java
+public java.lang.String getCommand()
+```
+Returns the command name of this process
+
+### getProcessID
+
+```java
+public int getProcessID()
+```
+Gets the platform dependent process ID number
+
+### getParentProcessID
+
+```java
+public int getParentProcessID()
+```
+Gets the parent process ID of this process
+
+### getPercentCPU
+
+```java
+public float getPercentCPU()
+```
+Gets the percentage of the CPU usage, if available
+
+### getMemUsage
+
+```java
+public long getMemUsage()
+```
+Gets the memory usage of this process, if available
+
+### getTime
+
+```java
+public long getTime()
+```
+Returns the amount of CPU time this process has used, if available.
+
+### getElapsedTime
+
+```java
+public long getElapsedTime()
+```
+Returns the wall clock time for this process, if available
+
+### toXML
+
+```java
+public java.lang.String toXML()
+```
+Converts this process information into a usable XML description
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+Converts this process info into a one-line readable string
+
+**Overrides:**
+- `toString` in class `java.lang.Object`
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXRuntime.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXRuntime.md
new file mode 100644
index 0000000000..cbf5439825
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXRuntime.md
@@ -0,0 +1,143 @@
+# Class: PHXRuntime
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXRuntime
+```
+---
+**Declaration**
+
+```java
+public class PHXRuntime
+extends java.lang.Object
+```
+
+This is a utility class for running processes. The class wraps the user's desired process in a script that first switches to the desired directory.
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| static java.lang.String | DEFAULT_SHELL |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| PHXRuntime() |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.Process` | `exec(java.lang.String cmd, java.lang.String baseDir)`
runs the specified command. |
+| `PHXProcess` | `exec2(java.lang.String cmd, java.lang.String baseDir, boolean addErrorChecks)`
runs the specified command. |
+| `com.phoenix_int.aserver.util.IPHXProcessJobInfoListener` | `getJobListener()` |
+| `java.lang.String` | `getShell()`
returns the shell used to run programs |
+| `static void` | main(java.lang.String[] args) |
+| `PHXRuntime` | `setJobListener(com.phoenix_int.aserver.util.IPHXProcessJobInfoListener jobListener)` |
+| `void` | `setShell(java.lang.String shell)`
sets the shell to use when running commands (applies to UNIX only) |
+
+## Field Detail
+
+### DEFAULT_SHELL
+
+```java
+public static final java.lang.String DEFAULT_SHELL
+```
+
+**See Also:**
+
+[Constant Field Values](../../../../constant-values.md)
+
+## Constructor Detail
+
+### PHXRuntime
+
+```java
+public PHXRuntime()
+```
+
+## Method Detail
+
+### setShell
+
+```java
+public void setShell(java.lang.String shell)
+```
+
+Sets the shell to use when running commands (applies to UNIX only)
+
+**Parameters:**
+
+- `shell` - the shell to use. E.g. "csh". If null is specified, then the command is issued directly without a shell
+
+### getShell
+
+```java
+public java.lang.String getShell()
+```
+
+Returns the shell used to run programs
+
+### setJobListener
+
+```java
+public PHXRuntime setJobListener(com.phoenix_int.aserver.util.IPHXProcessJobInfoListener jobListener)
+```
+
+### getJobListener
+
+```java
+public com.phoenix_int.aserver.util.IPHXProcessJobInfoListener getJobListener()
+```
+
+### exec
+
+```java
+public java.lang.Process exec(java.lang.String cmd,
+ java.lang.String baseDir)
+ throws java.io.IOException
+```
+
+Runs the specified command. The function first switches to the proper directory.
+
+**Parameters:**
+
+- `cmd` - the command to run
+- `baseDir` - the directory to run it in.
+
+**Throws:**
+
+- `java.io.IOException` - thrown if the command cannot be executed
+
+### exec2
+
+```java
+public PHXProcess exec2(java.lang.String cmd,
+ java.lang.String baseDir,
+ boolean addErrorChecks)
+ throws java.io.IOException
+```
+
+Runs the specified command. The function first switches to the proper directory. The PHXProcess which is returned has the ability to track the process and sub-processes in a somewhat platform independent way.
+
+**Parameters:**
+
+- `cmd` - the command to run
+- `baseDir` - the directory to run it in.
+- `addErrorChecks` - Whether to insert error checks after each command in multi-line commands.
+
+**Throws:**
+
+- `java.io.IOException` - thrown if the command cannot be executed
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringBuffer.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringBuffer.md
new file mode 100644
index 0000000000..9aa5880cdc
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringBuffer.md
@@ -0,0 +1,419 @@
+# Class: PHXStringBuffer
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXStringBuffer
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+**Declaration**
+
+```java
+public class PHXStringBuffer
+extends java.lang.Object
+implements java.io.Serializable
+```
+
+Class that behaves like a `java.lang.StringBuffer` but has logic for caching out to disk if the size grows over a limit (currently 512K). Has additional functionality to make it perform better for large files and includes `getReader()` and `getInputStream()` to read the string linearly.
+
+**See Also:**
+
+[Serialized Form](../../../../serialized-form.md)
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static long` | `SIZECUTOFF` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXStringBuffer()`
Creates a new, empty string buffer |
+| `PHXStringBuffer(long initialSize)`
Creates a new, empty string buffer which has an internal buffer of the size specified. |
+| `PHXStringBuffer(java.lang.String initial)`
Creates a new string buffer which contains the specified string. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `PHXStringBuffer` | `addEscapes()` |
+| `static java.lang.String` | `addEscapes(java.lang.String input)`
`Convenience static for adding escapes to plain strings` |
+| `static java.lang.String` | `addEscapes(java.lang.String input, java.lang.String additionalEscapeChars)` |
+| `PHXStringBuffer` | `addEscapesExtra(java.lang.String additionalEscapeChars)` |
+| `PHXStringBuffer` | `append(byte[] buf)`
Appends a byte array using the default encoding |
+| `PHXStringBuffer` | `append(byte[] buf, int offset, int len)`
Appends a byte array using the default encoding |
+| `PHXStringBuffer` | `append(char ch)`
Appends a single char to this buffer |
+| `PHXStringBuffer` | `append(char[] buf)`
Appends a char array to this buffer |
+| `PHXStringBuffer` | `append(char[] buf, int offset, int len)`
Appends a char array to this buffer |
+| `PHXStringBuffer` | `append(float num)`
Appends a float to this buffer |
+| `PHXStringBuffer` | `append(java.io.InputStream in)`
Fully reads the contents of InputStream into this buffer using UTF-8 encoding. |
+| `PHXStringBuffer` | `append(int num)`
Appends an integer to this buffer |
+| `PHXStringBuffer` | `append(long num)`
Appends a long to this buffer |
+| `PHXStringBuffer` | `append(PHXStringBuffer app)`
Appends a PHXStringBuffer to this buffer. |
+| `PHXStringBuffer` | `append(java.io.Reader in)` |
+| `PHXStringBuffer` | `append(java.lang.String app)`
Appends a string to this buffer |
+| `char` | `charAt(long index)`
Get the character at the specified index |
+| `void` | `clear()`
This is for performance only, it allows large temp files and memory to be freed. |
+| `boolean` | `equals(java.lang.Object test)`
Compares this to another String or PHXStringBuffer. |
+| `boolean` | `equalsIgnoreCase(java.lang.Object test)`
Compares this to another String or PHXStringBuffer. |
+| `java.lang.String` | `firstWord()`
Returns the first word of this string, whitespace delimited. |
+| `java.io.InputStream` | `getInputStream()`
Returns an InputStream which can be read sequentially and contains the contents of the string. |
+| `java.io.Reader` | `getReader()`
Returns a Reader which can be read sequentially and contains the contents of the string. |
+| `long` | `indexOf(char ch)`
Searches for a given character and returns the index to that character, or -1 if not found |
+| `long` | `indexOf(char ch, int startAt)` |
+| `long` | `indexOf(char ch, long startAt)`
Searches for a given character and returns the index to that character, or -1 if not found |
+| `long` | `indexOf(java.lang.String str, int startAt)` |
+| `long` | `indexOf(java.lang.String str, long startAt)` |
+| `long` | `length()`
Returns the actual length of the string held by this buffer object. |
+| `PHXStringBuffer` | `removeEscapes()` |
+| `static java.lang.String` | `removeEscapes(java.lang.String input)` |
+| `boolean` | `startsWith(java.lang.String test)`
Returns true if this string starts with the specified string |
+| `PHXStringBuffer` | `substring(long start)`
Creates a PHXStringBuffer with the contents of this string starting at a specified point and going to the end of the string. |
+| `PHXStringBuffer` | `substring(long start, long end)`
Creates a PHXStringBuffer with the contents of this string starting at a specified point and including up to the character before the specified end point. |
+| `java.lang.String` | `toString()`
Returns a string representation of this object. |
+| `void` | `writeTo(java.io.OutputStream os)`
Writes this string buffer out to an output stream efficiently does utf-8 conversion before writing |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### SIZECUTOFF
+
+```java
+public static final long SIZECUTOFF
+```
+
+**See Also:**
+
+[Constant Field Values](../../../../constant-values.md)
+
+## Constructor Detail
+
+### PHXStringBuffer
+
+```java
+public PHXStringBuffer()
+```
+Creates a new, empty string buffer
+
+### PHXStringBuffer
+
+```java
+public PHXStringBuffer(long initialSize)
+```
+Creates a new, empty string buffer which has an internal buffer of the size specified. This is more efficient if you know the approximate size that the string will eventually be as it doesn't have to guess small and grow. In particular, if the size is over the cutoff limit, it immediately caches to disk.
+
+### PHXStringBuffer
+
+```java
+public PHXStringBuffer(java.lang.String initial)
+```
+Creates a new string buffer which contains the specified string. Will cache to disk immediately if the length of the string is over the cutoff.
+
+## Method Detail
+
+### clear
+
+```java
+public void clear()
+```
+This is for performance only, it allows large temp files and memory to be freed. This will happen when the garbage collector runs, but sometimes this is not good enough when you are dealing with large files.
+
+### append
+
+```java
+public PHXStringBuffer append(java.lang.String app)
+```
+Appends a string to this buffer
+
+### append
+
+```java
+public PHXStringBuffer append(char[] buf)
+```
+Appends a char array to this buffer
+
+### append
+
+```java
+public PHXStringBuffer append(char[] buf,
+ int offset,
+ int len)
+```
+Appends a char array to this buffer
+
+**Parameters:**
+
+- `offset` - The offset to start copying at
+- `len` - The number of chars to copy
+
+### append
+
+```java
+public PHXStringBuffer append(byte[] buf)
+```
+Appends a byte array using the default encoding
+
+### append
+
+```java
+public PHXStringBuffer append(byte[] buf,
+ int offset,
+ int len)
+```
+Appends a byte array using the default encoding
+
+### append
+
+```java
+public PHXStringBuffer append(PHXStringBuffer app)
+```
+Appends a `PHXStringBuffer` to this buffer. In particular this is more efficient than using `append(String)` when one or both of the buffers are currently cached out to disk.
+
+### append
+
+```java
+public PHXStringBuffer append(java.io.InputStream in)
+ throws java.io.IOException
+```
+Fully reads the contents of `InputStream` into this buffer using UTF-8 encoding. Will not close the `InputStream` when done.
+
+**Parameters:**
+
+- `in` - The `InputStream` to read, should be in UTF-8 encoding.
+
+**Returns:**
+
+- this
+
+**Throws:**
+
+- `java.io.IOException`
+
+### append
+
+```java
+public PHXStringBuffer append(java.io.Reader in)
+ throws java.io.IOException
+```
+
+**Throws:**
+
+- `java.io.IOException`
+
+### append
+
+```java
+public PHXStringBuffer append(int num)
+```
+Appends an integer to this buffer
+
+### append
+
+```java
+public PHXStringBuffer append(long num)
+```
+Appends a long to this buffer
+
+### append
+
+```java
+public PHXStringBuffer append(float num)
+```
+Appends a float to this buffer
+
+### append
+
+```java
+public PHXStringBuffer append(char ch)
+```
+Appends a single char to this buffer
+
+### addEscapes
+
+```java
+public static java.lang.String addEscapes(java.lang.String input)
+```
+Convenience static for adding escapes to plain strings
+
+### addEscapes
+
+```java
+public static java.lang.String addEscapes(java.lang.String input,
+ java.lang.String additionalEscapeChars)
+```
+
+### addEscapes
+
+```java
+public PHXStringBuffer addEscapes()
+```
+
+### addEscapesExtra
+
+```java
+public PHXStringBuffer addEscapesExtra(java.lang.String additionalEscapeChars)
+```
+
+### removeEscapes
+
+```java
+public static java.lang.String removeEscapes(java.lang.String input)
+```
+
+### removeEscapes
+
+```java
+public PHXStringBuffer removeEscapes()
+```
+
+### length
+
+```java
+public long length()
+```
+Returns the actual length of the string held by this buffer object.
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+Returns a string representation of this object.
+
+NOTE: This is very bad performance for large files. Avoid this if possible if you know you will be handling large strings.
+
+**Overrides:**
+
+- `toString` in class `java.lang.Object`
+
+**See Also:**
+
+[getReader()](PHXStringBuffer.md), [getInputStream()](PHXStringBuffer.md)
+
+### getReader
+
+```java
+public java.io.Reader getReader()
+```
+Returns a `Reader` which can be read sequentially and contains the contents of the string. This is an efficient way to read the whole string.
+
+### getInputStream
+
+```java
+public java.io.InputStream getInputStream()
+```
+Returns an `InputStream` which can be read sequentially and contains the contents of the string. This is an efficient way to read the whole string. The stream will be UTF-8 encoded.
+
+### charAt
+
+```java
+public char charAt(long index)
+```
+Get the character at the specified index
+
+### indexOf
+
+```java
+public long indexOf(char ch)
+```
+Searches for a given character and returns the index to that character, or -1 if not found
+
+### indexOf
+
+```java
+public long indexOf(char ch,
+ int startAt)
+```
+
+### indexOf
+
+```java
+public long indexOf(char ch,
+ long startAt)
+```
+Searches for a given character and returns the index to that character, or -1 if not found
+
+### indexOf
+
+```java
+public long indexOf(java.lang.String str,
+ int startAt)
+```
+
+### indexOf
+
+```java
+public long indexOf(java.lang.String str,
+ long startAt)
+```
+
+### startsWith
+
+```java
+public boolean startsWith(java.lang.String test)
+```
+Returns true if this string starts with the specified string
+
+### equals
+
+```java
+public boolean equals(java.lang.Object test)
+```
+Compares this to another `String` or `PHXStringBuffer`. Returns `false` if you pass in null.
+
+**Overrides:**
+
+- `equals` in class `java.lang.Object`
+
+### equalsIgnoreCase
+
+```java
+public boolean equalsIgnoreCase(java.lang.Object test)
+```
+Compares this to another `String` or `PHXStringBuffer`. Returns `false` if you pass in null. Is insensitive to case.
+
+### firstWord
+
+```java
+public java.lang.String firstWord()
+```
+Returns the first word of this string, whitespace delimited.
+
+### substring
+
+```java
+public PHXStringBuffer substring(long start)
+```
+Creates a `PHXStringBuffer` with the contents of this string starting at a specified point and going to the end of the string.
+
+### substring
+
+```java
+public PHXStringBuffer substring(long start,
+ long end)
+```
+Creates a `PHXStringBuffer` with the contents of this string starting at a specified point and including up to the character before the specified end point.
+
+### writeTo
+
+```java
+public void writeTo(java.io.OutputStream os)
+ throws java.io.IOException
+```
+Writes this string buffer out to an output stream efficiently does utf-8 conversion before writing
+
+**Throws:**
+
+- `java.io.IOException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringReplacer.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringReplacer.md
new file mode 100644
index 0000000000..b3b74dfb30
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringReplacer.md
@@ -0,0 +1,78 @@
+# Class: PHXStringReplacer
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXStringReplacer
+```
+---
+
+**Declaration**
+
+```java
+public class PHXStringReplacer
+extends java.lang.Object
+```
+
+This is a utility class for replacing fields within a string.
+
+Sample Usage:
+
+```java
+ PHXVariableReplacer vr = new PHXVariableReplacer( _wrapper );
+ PHXStringReplacer r = new PHXStringReplacer( vr );
+
+ String s = "user/woyak/$file";
+ String n = r.replace( s );
+```
+
+## Constructor Summary
+
+| `Constructor and Description` |
+|-----------------------------|
+| `PHXStringReplacer(IPHXStringReplacer r)` |
+
+## Method Summary
+
+| `Modifier and Type` | Method and Description |
+|---------------------|----------------------|
+| `static void` | `main(java.lang.String[] args)` |
+| `java.lang.String` | `replace(java.lang.String s)`
replaces all names starting with "$" with values looked up from the replacer object. |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXStringReplacer
+
+```java
+public PHXStringReplacer(IPHXStringReplacer r)
+```
+
+## Method Detail
+
+### replace
+
+```java
+public java.lang.String replace(java.lang.String s)
+```
+Replaces all names starting with "$" with values looked up from the replacer object. If no match is found, the original value is retained.
+
+**Parameters:**
+
+- `s` - the String to replace tokens in
+
+**Returns:**
+
+- the modified string
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringTokenizer.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringTokenizer.md
new file mode 100644
index 0000000000..d37189b2e1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/PHXStringTokenizer.md
@@ -0,0 +1,379 @@
+# Class: PHXStringTokenizer
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.PHXStringTokenizer
+```
+
+**Implemented Interfaces**
+
+- `java.util.Enumeration`
+
+**Declaration**
+
+```java
+public class PHXStringTokenizer
+extends java.lang.Object
+implements java.util.Enumeration
+```
+
+This is a more sophisticated version of the Java `StringTokenizer`. Using the `StringTokenizer` source as a starting point, the source code was modified to recognize quoted strings as separate tokens.
+
+The following is one example of the use of the tokenizer. The code:
+
+```java
+PHXStringTokenizer st = new PHXStringTokenizer( "this \"is a\" test" );
+while ( st.hasMoreTokens() )
+{
+ System.out.println( st.nextToken() );
+}
+```
+
+prints the following output:
+
+```java
+this
+is a
+test
+```
+
+The "doUnslash" option is true by default and makes it unslash special backslash sequences correctly (like a unix shell prompt does). It can be set to false for backwards compatibility but is recommended strongly that we use true as much as possible.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------------|
+| `PHXStringTokenizer(PHXStringBuffer str)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(PHXStringBuffer str, boolean doUnslash)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(PHXStringBuffer str, java.lang.String delim)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(PHXStringBuffer str, java.lang.String delim, boolean doUnslash)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(java.lang.String str)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(java.lang.String str, boolean doUnslash)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(java.lang.String str, java.lang.String delim)`
Constructs a string tokenizer for the specified string. |
+| `PHXStringTokenizer(java.lang.String str, java.lang.String delim, boolean doUnslash)`
Constructs a string tokenizer for the specified string. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `int` | `countTokens()`
Calculates the number of times that this tokenizer's `nextToken` method can be called before it generates an exception. |
+| `long` | `getCurrentPosition()` |
+| `java.lang.String` | `getRemainder()`
Returns the remainder of the string (stuff not yet returned via nextToken()) |
+| `PHXStringBuffer` | `getRemainder2()`
Returns the remainder of the string (stuff not yet returned via nextToken()) |
+| `boolean` | `hasMoreElements()`
Returns the same value as the `hasMoreTokens` method. |
+| `boolean` | `hasMoreTokens()`
Tests if there are more tokens available from this tokenizer's string. |
+| `static void` | `main(java.lang.String[] args)` |
+| `java.lang.Object` | `nextElement()`
Returns the same value as the `nextToken` method, except that its declared return value is `Object` rather than `String`. |
+| `java.lang.String` | `nextToken()`
Returns the next token from this string tokenizer. |
+| `java.lang.String` | `nextToken(java.lang.String delim)`
Returns the next token in this string tokenizer's string. |
+| `PHXStringBuffer` | `nextToken2()`
Returns the next token from this string tokenizer. |
+| `PHXStringBuffer` | `nextToken2(boolean returnValue)`
Returns the next token from this string tokenizer. |
+| `PHXStringBuffer` | `nextToken2(java.lang.String delim)`
Returns the next token in this string tokenizer's string. |
+| `void` | `setQuoteChar(char c)`
Sets the character to be used to indicate the start and end of strings. |
+| `void` | `skipDelimiters()`
Skips delimiters. |
+| `boolean` | `wasLastTokenQuoted()`
Indicates whether the last token retrieved was a quoted string |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(java.lang.String str,
+ java.lang.String delim)
+```
+Constructs a string tokenizer for the specified string. The characters in the `delim` argument are the delimiters for separating tokens. If the `returnTokens` flag is `true`, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is `false`, the delimiter characters are skipped and only serve as separators between tokens.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `delim` - the delimiters.
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimiter
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(java.lang.String str,
+ java.lang.String delim,
+ boolean doUnslash)
+```
+Constructs a string tokenizer for the specified string. The characters in the `delim` argument are the delimiters for separating tokens. If the `returnTokens` flag is `true`, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is `false`, the delimiter characters are skipped and only serve as separators between tokens.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `delim` - the delimiters.
+- `doUnslash` - Whether to unslash slashed characters (\n)
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimiter
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(PHXStringBuffer str,
+ java.lang.String delim)
+```
+Constructs a string tokenizer for the specified string. The characters in the `delim` argument are the delimiters for separating tokens. If the `returnTokens` flag is `true`, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is `false`, the delimiter characters are skipped and only serve as separators between tokens.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `delim` - the delimiters.
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimiter
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(PHXStringBuffer str,
+ java.lang.String delim,
+ boolean doUnslash)
+```
+Constructs a string tokenizer for the specified string. The characters in the `delim` argument are the delimiters for separating tokens. If the `returnTokens` flag is `true`, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is `false`, the delimiter characters are skipped and only serve as separators between tokens.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `delim` - the delimiters.
+- `doUnslash` - Whether to unslash slashed characters (\n)
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimiter
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(java.lang.String str)
+```
+Constructs a string tokenizer for the specified string. The tokenizer uses the default delimiter set, which is `"\t\n\r"`: the space character, the tab character, the newline character, and the carriage-return character.
+
+**Parameters:**
+- `str` - a string to be parsed.
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(java.lang.String str,
+ boolean doUnslash)
+```
+Constructs a string tokenizer for the specified string. The tokenizer uses the default delimiter set, which is `"\t\n\r"`: the space character, the tab character, the newline character, and the carriage-return character.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `doUnslash` - Whether to unslash slashed characters (\n)
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(PHXStringBuffer str)
+```
+Constructs a string tokenizer for the specified string. The tokenizer uses the default delimiter set, which is `"\t\n\r"`: the space character, the tab character, the newline character, and the carriage-return character.
+
+**Parameters:**
+- `str` - a string to be parsed.
+
+### PHXStringTokenizer
+
+```java
+public PHXStringTokenizer(PHXStringBuffer str,
+ boolean doUnslash)
+```
+Constructs a string tokenizer for the specified string. The tokenizer uses the default delimiter set, which is `"\t\n\r"`: the space character, the tab character, the newline character, and the carriage-return character.
+
+**Parameters:**
+- `str` - a string to be parsed.
+- `doUnslash` - Whether to unslash slashed characters (\n)
+
+
+## Method Detail
+
+### setQuoteChar
+
+```java
+public void setQuoteChar(char c)
+```
+Sets the character to be used to indicate the start and end of strings. By default it is double quotes: '"'. Use this function to set it to a single quote instead.
+
+**Parameters:**
+- `c` - the quote character
+
+### getCurrentPosition
+
+```java
+public long getCurrentPosition()
+```
+
+### skipDelimiters
+
+```java
+public void skipDelimiters()
+```
+Skips delimiters.
+
+### wasLastTokenQuoted
+
+```java
+public boolean wasLastTokenQuoted()
+```
+Indicates whether the last token retrieved was a quoted string
+
+**Returns:**
+- true or false
+
+### hasMoreTokens
+
+```java
+public boolean hasMoreTokens()
+```
+Tests if there are more tokens available from this tokenizer's string.
+
+**Returns:**
+- `true` if there are more tokens available from this tokenizer's string; `false` otherwise.
+
+### getRemainder
+
+```java
+public java.lang.String getRemainder()
+```
+Returns the remainder of the string (stuff not yet returned via nextToken())
+
+**Returns:**
+- the remainder of the untokenized string
+
+### getRemainder2
+
+```java
+public PHXStringBuffer getRemainder2()
+```
+Returns the remainder of the string (stuff not yet returned via nextToken())
+
+**Returns:**
+- the remainder of the untokenized string
+
+### nextToken
+
+```java
+public java.lang.String nextToken()
+```
+Returns the next token from this string tokenizer.
+
+**Returns:**
+- the next token from this string tokenizer.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+
+### nextToken2
+
+```java
+public PHXStringBuffer nextToken2()
+```
+Returns the next token from this string tokenizer.
+
+**Returns:**
+- the next token from this string tokenizer.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+
+### nextToken2
+
+```java
+public PHXStringBuffer nextToken2(boolean returnValue)
+```
+Returns the next token from this string tokenizer.
+
+**Parameters:**
+- `returnValue` - if false, the value returned is always null
+
+**Returns:**
+- the next token from this string tokenizer.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+
+### nextToken
+
+```java
+public java.lang.String nextToken(java.lang.String delim)
+```
+Returns the next token in this string tokenizer's string. The new delimiter set remains the default after this call.
+
+**Parameters:**
+- `delim` - the new delimiters.
+
+**Returns:**
+- the next token, after switching to the new delimiter set.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimeter
+
+### nextToken2
+
+```java
+public PHXStringBuffer nextToken2(java.lang.String delim)
+```
+Returns the next token in this string tokenizer's string. The new delimiter set remains the default after this call.
+
+**Parameters:**
+- `delim` - the new delimiters.
+
+**Returns:**
+- the next token, after switching to the new delimiter set.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+- `java.lang.IllegalArgumentException` - thrown if " is specified as a delimeter
+
+### hasMoreElements
+
+```java
+public boolean hasMoreElements()
+```
+Returns the same value as the `hasMoreTokens` method. It exists so that this class can implement the `Enumeration` interface.
+
+**Specified by:**
+- `hasMoreElements` in interface `java.util.Enumeration`
+
+**Returns:**
+- `true` if there are more tokens; `false` otherwise.
+
+### nextElement
+
+```java
+public java.lang.Object nextElement()
+```
+Returns the same value as the `nextToken` method, except that its declared return value is `Object` rather than `String`. It exists so that this class can implement the `Enumeration` interface.
+
+**Specified by:**
+- `nextElement` in interface `java.util.Enumeration`
+
+**Returns:**
+- the next token in the string.
+
+**Throws:**
+- `java.util.NoSuchElementException` - if there are no more tokens in this tokenizer's string.
+
+### countTokens
+
+```java
+public int countTokens()
+```
+Calculates the number of times that this tokenizer's `nextToken` method can be called before it generates an exception.
+
+**Returns:**
+- the number of tokens remaining in the string using the current delimiter set.
+
+### main
+
+```java
+public static void main(java.lang.String[] args)
+```
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.Mode.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.Mode.md
new file mode 100644
index 0000000000..7fe38a0944
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.Mode.md
@@ -0,0 +1,183 @@
+# com.phoenix_int.aserver.util
+## Enum: Parser.Mode
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Enum
+ ↳ com.phoenix_int.aserver.util.Parser.Mode
+```
+
+**All Implemented Interfaces:**
+- `java.io.Serializable`, `java.lang.Comparable`
+
+**Enclosing interface:**
+- [Parser](Parser.md)
+
+---
+**Declaration**
+
+```java
+public static enum Parser.Mode
+extends java.lang.Enum
+```
+
+File-access mode. Moved to type-safe enum from legacy integer constants.
+
+## Enum Constant Summary
+
+| Enum Constant and Description |
+|------------------------------|
+| `AUTOMATIC` |
+| `BUFFERED` |
+| `RANDOM` |
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static long` | `FILE_SIZE_LIMIT` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static Parser.Mode` | `fromCode(int code)` |
+| `int` | `getCode()`
Retrieve the legacy integer code assigned to this access mode |
+| `IPHXLineStore` | `newLineStore(java.io.File file)` |
+| `IPHXLineStore` | `newLineStore(java.io.File file, com.phoenix_int.util.PHXFileUtils.Encoding encoding)` |
+| `abstract IPHXLineStore` | `newLineStore(java.io.File file, com.phoenix_int.util.PHXFileUtils.Encoding encoding, com.phoenix_int.util.IProgressListener progress)`
Create a new line store consistent with the file-access mode |
+| `static Parser.Mode` | `valueOf(java.lang.String name)`
Returns the enum constant of this type with the specified name. |
+| `static Parser.Mode[]` | `values()`
Returns an array containing the constants of this enum type, in the order they are declared. |
+
+### Methods inherited from class java.lang.Enum
+
+`clone`, `compareTo`, `equals`, `finalize`, `getDeclaringClass`, `hashCode`, `name`, `ordinal`, `toString`, `valueOf`
+
+### Methods inherited from class java.lang.Object
+
+`getClass`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Enum Constant Detail
+
+### RANDOM
+
+```java
+public static final Parser.Mode RANDOM
+```
+
+### BUFFERED
+
+```java
+public static final Parser.Mode BUFFERED
+```
+
+### AUTOMATIC
+
+```java
+public static final Parser.Mode AUTOMATIC
+```
+
+## Field Detail
+
+### FILE_SIZE_LIMIT
+
+```java
+public static final long FILE_SIZE_LIMIT
+```
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+## Method Detail
+
+### values
+
+```java
+public static Parser.Mode[] values()
+```
+Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
+
+```java
+for (Parser.Mode c : Parser.Mode.values())
+ System.out.println(c);
+```
+
+**Returns:**
+- an array containing the constants of this enum type, in the order they are declared
+
+### valueOf
+
+```java
+public static Parser.Mode valueOf(java.lang.String name)
+```
+Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+
+**Parameters:**
+- `name` - the name of the enum constant to be returned.
+
+**Returns:**
+- the enum constant with the specified name
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
+- `java.lang.NullPointerException` - if the argument is null
+
+### getCode
+
+```java
+public int getCode()
+```
+Retrieve the legacy integer code assigned to this access mode
+
+**Returns:**
+- code
+
+### newLineStore
+
+```java
+public IPHXLineStore newLineStore(java.io.File file)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### newLineStore
+
+```java
+public IPHXLineStore newLineStore(java.io.File file,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding)
+ throws java.io.IOException
+```
+
+**Throws:**
+- `java.io.IOException`
+
+### newLineStore
+
+```java
+public abstract IPHXLineStore newLineStore(java.io.File file,
+ com.phoenix_int.util.PHXFileUtils.Encoding encoding,
+ com.phoenix_int.util.IProgressListener progress)
+ throws java.io.IOException
+```
+Create a new line store consistent with the file-access mode
+
+**Parameters:**
+- `file` -
+
+**Returns:**
+- line store
+
+**Throws:**
+- `java.io.IOException`
+
+### fromCode
+
+```java
+public static Parser.Mode fromCode(int code)
+```
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.md
new file mode 100644
index 0000000000..5b50084451
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/Parser.md
@@ -0,0 +1,49 @@
+## Interface: Parser
+
+**Package:** `com.phoenix_int.aserver.util`
+
+**All Known Implementing Classes:**
+- [PHXFileParser](PHXFileParser.md)
+
+--
+
+**Declaration**
+
+```java
+public interface Parser
+```
+
+Interface to define the methods of a parser. Defined after-the-fact from the existing PHXFileParser with the intent to be useful for PHXXMLParser.
+
+## Nested Class Summary
+
+| Modifier and Type | Interface and Description |
+|-------------------|-------------------------|
+| `static class` | `Parser.Mode`
File-access mode. Moved to type-safe enum from legacy integer constants |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `close()`
Close the parser |
+| `void` | `writeTo(java.io.OutputStreamWriter fw)`
Write any changes to the output stream |
+
+## Method Detail
+
+### writeTo
+
+```java
+void writeTo(java.io.OutputStreamWriter fw)
+ throws java.io.IOException
+```
+Write any changes to the output stream
+
+**Throws:**
+- `java.io.IOException`
+
+### close
+
+```java
+void close()
+```
+Close the parser
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-summary.md
new file mode 100644
index 0000000000..871be4abdb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-summary.md
@@ -0,0 +1,40 @@
+# Package com.phoenix_int.aserver.util
+Provides general purpose utility functions.
+
+## Interface Summary
+| Interface | Description |
+| --- | --- |
+| [IPHXLineStore](IPHXLineStore.md) | This is the interface for holding a set of lines. |
+| [IPHXStringReplacer](IPHXStringReplacer.md) | This is the interface for a replacing strings, used by the PHXStringReplacer class |
+| [Parser](Parser.md) | Interface to define the methods of a parser. |
+
+## Class Summary
+| Class | Description |
+| --- | --- |
+| [PHXFileLoader](PHXFileLoader.md) | This is a utility class for loading data files. |
+| [PHXFileName](PHXFileName.md) | this is a utility class for easily managing file names. |
+| [PHXFileParser](PHXFileParser.md) | This is a utility class for loading data files and extracting data. |
+| [PHXIcon](PHXIcon.md) | This class provides utility functions for loading and creating an icon file |
+| [PHXNameDivider](PHXNameDivider.md) | this is a utility class for breaking down names into smaller parts. |
+| [PHXProcess](PHXProcess.md) | This is a utility class that extends `java.lang.Process` with a system dependent process ID. |
+| [PHXProcessInfo](PHXProcessInfo.md) | This class represents information about a running process on the system. |
+| [PHXRuntime](PHXRuntime.md) | This is a utility class for running processes. |
+| [PHXStringBuffer](PHXStringBuffer.md) | Class that behaves like a `java.lang.StringBuffer` but has logic for cacheing out to disk if the size grows over a limit (currently 512K). |
+| [PHXStringReplacer](PHXStringReplacer.md) | This is a utility class for replacing fields within a string. |
+| [PHXStringTokenizer](PHXStringTokenizer.md) | This is a more sophisticated version of the Java StringTokenizer. |
+
+## Enum Summary
+| Enum | Description |
+| --- | --- |
+| [Parser.Mode](Parser.Mode.md) | File-access mode
Moved to type-safe enum from legacy integer constants |
+
+## Exception Summary
+| Exception | Description |
+| --- | --- |
+| [PHXClassNotFoundException](PHXClassNotFoundException.md) | Simple wrapper for `ClassNotFoundException` which can contain additional logging info. |
+| [PHXGetByUrlException](PHXGetByUrlException.md) | An exception that is thrown when encountering an error getting a file's contents via url |
+| [PHXNoSuchReplacementException](PHXNoSuchReplacementException.md) | An exception that is thrown when a replacement string cannot be found |
+| [PHXNoSuchTokenException](PHXNoSuchTokenException.md) | An exception that is thrown when an object cannot be found |
+
+## Package com.phoenix_int.aserver.util Description
+Provides general purpose utility functions.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-tree.md
new file mode 100644
index 0000000000..68b9917728
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/package-tree.md
@@ -0,0 +1,39 @@
+# Hierarchy For Package com.phoenix_int.aserver.util
+**Package Hierarchies:**
+- [All Packages](../../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.util.[PHXFileLoader](PHXFileLoader.md)
+ - com.phoenix_int.aserver.util.[PHXFileName](PHXFileName.md)
+ - com.phoenix_int.aserver.util.[PHXFileParser](PHXFileParser.md)(implements com.phoenix_int.aserver.util.[Parser](Parser.md))
+ - com.phoenix_int.aserver.util.[PHXIcon](PHXIcon.md)
+ - com.phoenix_int.aserver.util.[PHXNameDivider](PHXNameDivider.md)
+ - com.phoenix_int.aserver.util.[PHXProcessInfo](PHXProcessInfo.md)
+ - com.phoenix_int.aserver.util.[PHXRuntime](PHXRuntime.md)
+ - com.phoenix_int.aserver.util.[PHXStringBuffer](PHXStringBuffer.md)(implements java.io.Serializable)
+ - com.phoenix_int.aserver.util.[PHXStringReplacer](PHXStringReplacer.md)
+ - com.phoenix_int.aserver.util.[PHXStringTokenizer](PHXStringTokenizer.md)(implements java.util.Enumeration)
+ - java.lang.Process
+ - com.phoenix_int.aserver.util.[PHXProcess](PHXProcess.md)(implements com.phoenix_int.aserver.util.IPHXStreamRegExListener)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.util.[PHXGetByUrlException](PHXGetByUrlException.md)
+ - com.phoenix_int.aserver.util.[PHXNoSuchReplacementException](PHXNoSuchReplacementException.md)
+ - com.phoenix_int.aserver.util.[PHXNoSuchTokenException](PHXNoSuchTokenException.md)
+ - java.lang.ReflectiveOperationException
+ - java.lang.ClassNotFoundException
+ - com.phoenix_int.aserver.util.[PHXClassNotFoundException](PHXClassNotFoundException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.util.[IPHXLineStore](IPHXLineStore.md)
+- com.phoenix_int.aserver.util.[IPHXStringReplacer](IPHXStringReplacer.md)
+- com.phoenix_int.aserver.util.[Parser](Parser.md)
+
+## Enum Hierarchy
+
+- java.lang.Object
+ - java.lang.Enum`` (implements java.lang.Comparable``, java.io.Serializable)
+ - com.phoenix_int.aserver.util.[Parser.Mode](Parser.Mode.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/AbstractFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/AbstractFile.md
new file mode 100644
index 0000000000..d440d7f6cc
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/AbstractFile.md
@@ -0,0 +1,381 @@
+# Class: AbstractFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+```
+
+**Implemented Interfaces**
+
+- [`ParseableFile`](ParseableFile.md), `java.io.Closeable`, `java.lang.AutoCloseable`
+
+**Direct Known Subclasses**
+
+- `CAEOutputFile`, `PHXRowFieldFile`, `XPathFile`
+
+---
+
+## Declaration
+
+```java
+public abstract class AbstractFile
+extends java.lang.Object
+implements ParseableFile, java.io.Closeable
+```
+
+Common implementation for files (not file variables) used in script wrappers.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.[ParseableFile](ParseableFile.md)
+`ParseableFile.Mode`
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `protected com.phoenix_int.util.PHXFileUtils.Encoding` | `encoding` |
+| `protected java.lang.String` | `fileName` |
+| `protected ParseableFile.Mode` | `mode` |
+| `protected Parser` | `parser` |
+| `protected java.lang.String` | `templateFileName` |
+| `protected PHXScriptWrapperObject` | `wrapper` |
+
+## Constructor Summary
+
+| Modifier | Constructor and Description |
+|----------|----------------------------|
+| `protected` | `AbstractFile(java.io.File baseDir, ParseableFile.Mode mode)`
Pre-QuickWrap `PHXRowFieldFile` constructor did not have a `PHXScriptWrapperObject` argument. |
+| `protected` | `AbstractFile(PHXScriptWrapperObject wrapper, ParseableFile.Mode mode)` |
+| `protected` | `AbstractFile(PHXScriptWrapperObject wrapper, java.io.File dir, ParseableFile.Mode mode)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `protected void` | `actionByMode(ParseableFile.Mode mode)`
Perform an action consistent with ParseableFile.Mode |
+| `void` | `backup()`
Backup the file on disk. |
+| `void` | `close()`
Close the file and free up resources |
+| `void` | `delete()`
Delete the file from disk. |
+| `protected void` | `ensureFileParser(ParseableFile.Mode mode)`
Ensure there is a valid parser |
+| `com.phoenix_int.util.PHXFileUtils.Encoding` | `getEncoding()` |
+| `protected java.io.File` | `getRealFile(java.lang.String fileName)`
Get the file on disk, possibly relative to the current run-share directory |
+| `protected abstract Parser` | `newParser(java.io.File rFile, Parser.Mode pmode)`
Generate a new parser for the given file and mode |
+| `void` | `readTemplate()`
Read the template. |
+| `void` | `setEncoding(com.phoenix_int.util.PHXFileUtils.Encoding enc)` |
+| `void` | `setEncoding(java.lang.String enc)` |
+| `void` | `setFileToGenerateOrParse(java.lang.String fileName)`
Set the file to generate or to parse, depending on the mode |
+| `void` | `setTempEmbedded(java.lang.String option)`
This method applies only to ModelCenter and has no function in ModelCenter Remote Execution |
+| `void` | `setTemplateFile(java.lang.String templateFileName)`
Set the template file to read. |
+| `void` | `setVariable(java.lang.String name, java.lang.String value)`
Sets the value of a variable |
+| `protected abstract void` | `transferVars(ParseableFile.Mode mode)`
Transfer values for variables that have been defined using methods from the concrete implementation |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### mode
+
+```java
+protected final ParseableFile.Mode mode
+```
+
+### wrapper
+
+```java
+protected final PHXScriptWrapperObject wrapper
+```
+
+### parser
+
+```java
+protected Parser parser
+```
+
+### templateFileName
+
+```java
+protected java.lang.String templateFileName
+```
+
+### fileName
+
+```java
+protected java.lang.String fileName
+```
+
+### encoding
+
+```java
+protected com.phoenix_int.util.PHXFileUtils.Encoding encoding
+```
+
+## Constructor Detail
+
+### AbstractFile
+
+```java
+protected AbstractFile(java.io.File baseDir,
+ ParseableFile.Mode mode)
+```
+Pre-QuickWrap `PHXRowFieldFile` constructor did not have a `PHXScriptWrapperObject` argument. This constructor handles the legacy case, which, in all likelihood, will continue to be used.
+
+**Parameters:**
+- `baseDir` - base directory containing template files, etc.
+- `mode` - parsing mode
+
+### AbstractFile
+
+```java
+protected AbstractFile(PHXScriptWrapperObject wrapper,
+ ParseableFile.Mode mode)
+```
+
+### AbstractFile
+
+```java
+protected AbstractFile(PHXScriptWrapperObject wrapper,
+ java.io.File dir,
+ ParseableFile.Mode mode)
+```
+
+**Parameters:**
+- `wrapper` - may be null for legacy constructor compatibility
+- `dir` -
+- `mode` -
+
+## Method Detail
+
+### backup
+
+```java
+public void backup()
+```
+Backup the file on disk. File is at the same location with ".bac" appended to the end. If a file by that name already exists, it is deleted prior to moving.
+
+**Specified by:**
+- `backup` in interface `ParseableFile`
+
+### close
+
+```java
+public void close()
+```
+Close the file and free up resources
+
+**Specified by:**
+- `close` in interface `ParseableFile`
+- `close` in interface `java.io.Closeable`
+- `close` in interface `java.lang.AutoCloseable`
+
+### delete
+
+```java
+public void delete()
+```
+Delete the file from disk.
+
+**Specified by:**
+- `delete` in interface `ParseableFile`
+
+### newParser
+
+```java
+protected abstract Parser newParser(java.io.File rFile,
+ Parser.Mode pmode)
+ throws java.io.IOException
+```
+Generate a new parser for the given file and mode
+
+**Parameters:**
+- `rFile` - The file to open
+- `pmode` - caching mode for underlying parser
+
+**Throws:**
+- `java.io.IOException`
+
+### ensureFileParser
+
+```java
+protected void ensureFileParser(ParseableFile.Mode mode)
+ throws java.io.IOException
+```
+Ensure there is a valid parser
+
+**Parameters:**
+- `mode` - parser mode in current context
+
+**Throws:**
+- `java.io.IOException`
+
+### getEncoding
+
+```java
+public com.phoenix_int.util.PHXFileUtils.Encoding getEncoding()
+```
+
+### setEncoding
+
+```java
+public void setEncoding(com.phoenix_int.util.PHXFileUtils.Encoding enc)
+```
+
+### setEncoding
+
+```java
+public void setEncoding(java.lang.String enc)
+```
+
+### getRealFile
+
+```java
+protected java.io.File getRealFile(java.lang.String fileName)
+```
+Get the file on disk, possibly relative to the current run-share directory
+
+**Parameters:**
+- `fileName` -
+
+**Returns:**
+
+### actionByMode
+
+```java
+protected void actionByMode(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+Perform an action consistent with `ParseableFile.Mode`
+
+**Parameters:**
+- `mode` -
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+
+### readTemplate
+
+```java
+public void readTemplate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+Read the template. In MCRE 7.1, this method was changed to never throw any exceptions. Reading the templates allows you to fill in default values if you can, but is not mandatory.
+
+**Specified by:**
+- `readTemplate` in interface `ParseableFile`
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+
+### setFileToGenerateOrParse
+
+```java
+public void setFileToGenerateOrParse(java.lang.String fileName)
+```
+Set the file to generate or to parse, depending on the mode
+
+**Specified by:**
+- `setFileToGenerateOrParse` in interface `ParseableFile`
+
+### setTempEmbedded
+
+```java
+public void setTempEmbedded(java.lang.String option)
+```
+This method applies only to ModelCenter and has no function in ModelCenter Remote Execution
+
+**Specified by:**
+- `setTempEmbedded` in interface `ParseableFile`
+
+### setTemplateFile
+
+```java
+public void setTemplateFile(java.lang.String templateFileName)
+```
+Set the template file to read. If the template file is not specified, it defaults to the file that is parsed or generated, for `Mode.PARSE` or `Mode.GENERATE`, respectively.
+
+**Specified by:**
+- `setTemplateFile` in interface `ParseableFile`
+
+**Parameters:**
+- `templateFileName` - file name
+
+### setVariable
+
+```java
+public void setVariable(java.lang.String name,
+ java.lang.String value)
+ throws PHXNoSuchObjectException
+```
+Sets the value of a variable
+
+**Specified by:**
+- `setVariable` in interface `ParseableFile`
+
+**Parameters:**
+- `name` - variable name
+- `value` - variable value as a string
+
+**Throws:**
+- `PHXNoSuchObjectException`
+
+### transferVars
+
+```java
+protected abstract void transferVars(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+Transfer values for variables that have been defined using methods from the concrete implementation, i.e. `PHXRowFieldFile.defineVar(String, String, boolean, String)`. Variables defined using `PHXScriptWrapperObject.addVariable(String, String, boolean)` must be explicitly transferred using methods of the concrete implementation class
+
+**Parameters:**
+- `mode` -
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/CAEOutputFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/CAEOutputFile.md
new file mode 100644
index 0000000000..7829de8efa
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/CAEOutputFile.md
@@ -0,0 +1,200 @@
+# Class: CAEOutputFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.CAEOutputFile
+```
+
+**Implemented Interfaces**
+
+- [`OutputFile2`](OutputFile2.md), [`ParseableFile`](ParseableFile.md), `java.io.Closeable`, `java.lang.AutoCloseable`
+
+---
+## Declaration
+
+```java
+public class CAEOutputFile
+extends AbstractFile
+implements OutputFile2
+```
+
+This represents a binary output file from a CAE program such as NASTRAN or LSDyna.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+[`ParseableFile.Mode`](ParseableFile.Mode.md)
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+
+`encoding`, `fileName`, `mode`, `parser`, `templateFileName`, `wrapper`
+
+**Related Files:**
+
+- [`PHXRowFieldFile`](PHXRowFieldFile.md) - Row field file implementation
+- [`XPathFile`](XPathFile.md) - XPath file implementation
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `CAEOutputFile(`[`PHXScriptWrapperObject`](PHXScriptWrapperObject.md)` wrapper, java.io.File file)` |
+| `CAEOutputFile(`[`PHXScriptWrapperObject`](PHXScriptWrapperObject.md)` wrapper, java.io.File file, FileType type)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `defineArrayVar(java.lang.String name, java.lang.String specifier)` |
+| `void` | `defineVar(java.lang.String name, java.lang.String specifier)` |
+| `protected` [`Parser`](../../Parser.md) | `newParser(java.io.File rFile,` [`Parser.Mode`](../../Parser.Mode.md) `pmode)`
Generate a new parser for the given file and mode |
+| `void` | `parse()`
Parse the output file |
+| `void` | `setFileToParse(java.lang.String fileName)`
Set the file to parse |
+| `protected void` | `transferVars(`[`ParseableFile.Mode`](ParseableFile.Mode.md)` mode)`
Transfer values for variables that have been defined using methods from the concrete implementation |
+
+### Methods inherited from class AbstractFile
+
+`actionByMode`, `backup`, `close`, `delete`, `ensureFileParser`, `getEncoding`, `getRealFile`, `readTemplate`, `setEncoding`, `setEncoding`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### CAEOutputFile
+
+```java
+public CAEOutputFile(PHXScriptWrapperObject wrapper,
+ java.io.File file,
+ FileType type)
+ throws PHXLicenseException
+```
+
+**Throws:**
+- `PHXLicenseException`
+
+### CAEOutputFile
+
+```java
+public CAEOutputFile(PHXScriptWrapperObject wrapper,
+ java.io.File file)
+ throws PHXLicenseException
+```
+
+**Throws:**
+- `PHXLicenseException`
+
+## Method Detail
+
+### defineArrayVar
+
+```java
+public void defineArrayVar(java.lang.String name,
+ java.lang.String specifier)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String specifier)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+
+### parse
+
+```java
+public void parse() throws java.lang.Exception
+```
+Parse the output file
+
+**Specified by:**
+- `parse` in interface [`OutputFile2`](OutputFile2.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### newParser
+
+```java
+protected Parser newParser(java.io.File rFile,
+ Parser.Mode pmode)
+ throws java.io.IOException
+```
+Generate a new parser for the given file and mode
+
+**Specified by:**
+
+- `newParser` in class [`AbstractFile`](AbstractFile.md)
+
+**Parameters:**
+- `rFile` - The file to open
+- `pmode` - caching mode for underlying parser
+
+**Throws:**
+- `java.io.IOException`
+
+### transferVars
+
+```java
+protected void transferVars(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfer values for variables that have been defined using methods from the concrete implementation, i.e. [`PHXRowFieldFile.defineVar(String, String, boolean, String)`](PHXRowFieldFile.md). Variables defined using [`PHXScriptWrapperObject.addVariable(String, String, boolean)`](PHXScriptWrapperObject.md) must be explicitly transferred using methods of the concrete implementation class
+
+**Specified by:**
+
+- `transferVars` in class [`AbstractFile`](AbstractFile.md)
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+
+### setFileToParse
+
+```java
+public void setFileToParse(java.lang.String fileName)
+```
+Set the file to parse
+
+**Specified by:**
+- `setFileToParse` in interface [`OutputFile2`](OutputFile2.md)
+
+**Parameters:**
+- `fileName` -
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRange.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRange.md
new file mode 100644
index 0000000000..0c52d67ae1
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRange.md
@@ -0,0 +1,78 @@
+# Interface: IPHXRange
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Interface Hierarchy**
+
+```
+↳ com.phoenix_int.aserver.util.scriptwrapper.api.IPHXRange
+```
+
+**All Known Implementing Classes:**
+
+[`PHXCAERange`](PHXCAERange.md), [`PHXRowFieldRange`](PHXRowFieldRange.md)
+
+---
+**Declaration**
+
+```java
+public interface IPHXRange
+```
+
+Interface for defining ranges in script wrapper files.
+
+**See Also:**
+
+- [`PHXCAERange`](PHXCAERange.md) - CAE-specific range implementation
+- [`PHXRowFieldRange`](PHXRowFieldRange.md) - Row field range implementation
+- [`IPHXRangeChangeListener`](IPHXRangeChangeListener.md) - Listener for range change events
+- [`PHXRowFieldFile`](PHXRowFieldFile.md) - File class that uses ranges
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-----------------------|---------------------------------------|
+| `void` | `assertEquals(IPHXRange other)` |
+| `void` | `fromString(java.lang.String str)` |
+| `java.lang.String` | `getPageName()` |
+| `java.lang.String` | `toString()` |
+| `java.lang.String` | `toString(boolean fullName)` |
+
+## Method Detail
+
+### fromString
+
+```java
+void fromString(java.lang.String str)
+```
+
+### toString
+
+```java
+java.lang.String toString()
+```
+
+**Overrides:**
+`toString` in class `java.lang.Object`
+
+### toString
+
+```java
+java.lang.String toString(boolean fullName)
+```
+
+### assertEquals
+
+```java
+void assertEquals(IPHXRange other)
+ throws java.lang.Exception
+```
+
+**Throws:**
+`java.lang.Exception`
+
+### getPageName
+
+```java
+java.lang.String getPageName()
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRangeChangeListener.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRangeChangeListener.md
new file mode 100644
index 0000000000..8360a93c6d
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRangeChangeListener.md
@@ -0,0 +1,31 @@
+# Interface: IPHXRangeChangeListener
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Interface Hierarchy**
+
+```
+↳ com.phoenix_int.aserver.util.scriptwrapper.api.IPHXRangeChangeListener
+```
+---
+**Declaration**
+
+```java
+public interface IPHXRangeChangeListener
+```
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `onRangesChanged(java.lang.Object var, java.util.Vector rangesAdded, java.util.Vector rangesRemoved)` |
+
+## Method Detail
+
+### onRangesChanged
+
+```java
+void onRangesChanged(java.lang.Object var,
+ java.util.Vector rangesAdded,
+ java.util.Vector rangesRemoved)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/InputFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/InputFile.md
new file mode 100644
index 0000000000..5c59beca3f
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/InputFile.md
@@ -0,0 +1,94 @@
+# Interface: InputFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**All Superinterfaces**
+
+- [`ParseableFile`](ParseableFile.md)
+
+**All Known Implementing Classes**
+
+- [`PHXRowFieldFile`](PHXRowFieldFile.md), [`XPathFile`](XPathFile.md)
+---
+## Declaration
+
+```java
+public interface InputFile
+extends ParseableFile
+```
+
+Interface for input files (not file variables) used in script-wrappers
+
+**See Also:**
+
+- [`ParseableFile`](ParseableFile.md) - Base interface for parseable files
+- [`OutputFile`](OutputFile.md), [`OutputFile2`](OutputFile2.md) - Related output file interfaces
+- [`PHXScriptWrapperObject`](PHXScriptWrapperObject.md) - Script wrapper object that uses input files
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+[`ParseableFile.Mode`](ParseableFile.Mode.md)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `generate()`
Generate the input file |
+| `void` | `setFileToGenerate(java.lang.String fileName)`
Set the file to be generated |
+
+### Methods inherited from interface ParseableFile
+
+`backup`, `close`, `delete`, `readTemplate`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+## Method Detail
+
+### generate
+
+```java
+void generate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+Generate the input file
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+
+**See Also:**
+
+- [`PHXRowFieldFile.generate()`](PHXRowFieldFile.md) - Implementation in PHXRowFieldFile
+- [`XPathFile.generate()`](XPathFile.md) - Implementation in XPathFile
+- [`PHXBookmark`](PHXBookmark.md) - Related bookmark functionality
+- [`PHXSection`](PHXSection.md) - Related section functionality
+
+### setFileToGenerate
+
+```java
+void setFileToGenerate(java.lang.String fileName)
+```
+Set the file to be generated
+
+**Parameters:**
+
+- `fileName` - file name
+
+**See Also:**
+
+- [`PHXRowFieldFile.setFileToGenerate(String)`](PHXRowFieldFile.md) - Implementation in PHXRowFieldFile
+- [`XPathFile.setFileToGenerate(String)`](XPathFile.md) - Implementation in XPathFile
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile.md
new file mode 100644
index 0000000000..8f28bb00c7
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile.md
@@ -0,0 +1,86 @@
+# Interface: OutputFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Interface Hierarchy**
+
+```
+↳ com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.OutputFile
+```
+
+**All Superinterfaces:**
+
+[`ParseableFile`](ParseableFile.md)
+
+**All Known Implementing Classes:**
+
+[`PHXRowFieldFile`](PHXRowFieldFile.md), [`XPathFile`](XPathFile.md)
+
+@Deprecated in favor of [`OutputFile2`](OutputFile2.md)
+
+---
+**Declaration**
+
+```java
+@Deprecated
+public interface OutputFile
+extends ParseableFile
+```
+
+Interface for output files (not file variables) used in script-wrappers
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+[`ParseableFile.Mode`](ParseableFile.Mode.md)
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `parse()`
@Deprecated. Parse the output file |
+| `void` | `setFileToParse(java.lang.String fileName)`
@Deprecated. Set the file to be parsed |
+
+### Methods inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+`backup`, `close`, `delete`, `readTemplate`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+## Method Detail
+
+### parse
+
+```java
+void parse()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+@Deprecated. Parse the output file
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+
+### setFileToParse
+
+```java
+void setFileToParse(java.lang.String fileName)
+```
+@Deprecated. Set the file to be parsed
+
+**Parameters:**
+- `fileName` - file name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile2.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile2.md
new file mode 100644
index 0000000000..cc42b7d899
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/OutputFile2.md
@@ -0,0 +1,51 @@
+# Interface: OutputFile2
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Interface Hierarchy**
+
+```
+↳ com.phoenix_int.aserver.util.scriptwrapper.api.OutputFile2
+```
+
+**All Known Implementing Classes:**
+
+[`CAEOutputFile`](CAEOutputFile.md), [`PHXRowFieldFile`](PHXRowFieldFile.md), [`XPathFile`](XPathFile.md)
+---
+**Declaration**
+
+```java
+public interface OutputFile2
+```
+
+Interface for output files (not file variables) used in script-wrappers
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `parse()`
Parse the output file |
+| `void` | `setFileToParse(java.lang.String fileName)`
Sets the file that will be parsed. |
+
+## Method Detail
+
+### parse
+
+```java
+void parse()
+ throws java.lang.Exception
+```
+Parse the output file
+
+**Throws:**
+- `java.lang.Exception`
+
+### setFileToParse
+
+```java
+void setFileToParse(java.lang.String fileName)
+```
+Sets the file that will be parsed. Usually this is synonymous with [`ParseableFile.setFileToGenerateOrParse(String)`](ParseableFile.md)
+
+**Parameters:**
+- `fileName` - The file to parse
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmark.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmark.md
new file mode 100644
index 0000000000..ecdef15cf4
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmark.md
@@ -0,0 +1,120 @@
+# Class: PHXBookmark
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXBookmark
+```
+---
+
+**Declaration**
+
+```java
+public class PHXBookmark
+ extends java.lang.Object
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `java.lang.Object` | `owner` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXBookmark(java.lang.String name, PHXRowFieldRange range)`
Constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `assertEquals(PHXBookmark other)`
Test comparison function. |
+| `static java.lang.String` | `correctName(java.lang.String tempName)` |
+| `java.util.Vector` | `getChildren(java.util.Vector bookmarks, boolean immOnly)` |
+| `java.lang.String` | `getName()` |
+| `PHXRowFieldRange` | `getRange()` |
+| `void` | `setName(java.lang.String name)` |
+| `void` | `setRange(PHXRowFieldRange range)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### owner
+
+```java
+public java.lang.Object owner
+```
+
+## Constructor Detail
+
+### PHXBookmark
+
+```java
+public PHXBookmark(java.lang.String name,
+ PHXRowFieldRange range)
+```
+
+**Parameters:**
+- `name` - a unique bookmark name
+- `range` - the range identifying the bookmark
+
+## Method Detail
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+
+### setName
+
+```java
+public void setName(java.lang.String name)
+```
+
+### getRange
+
+```java
+public PHXRowFieldRange getRange()
+```
+
+### setRange
+
+```java
+public void setRange(PHXRowFieldRange range)
+```
+
+### getChildren
+
+```java
+public java.util.Vector getChildren(java.util.Vector bookmarks,
+ boolean immOnly)
+```
+
+### assertEquals
+
+```java
+public void assertEquals(PHXBookmark other)
+ throws java.lang.Exception
+```
+Test comparison function. If the two objects are not equal, an exception is thrown
+
+**Parameters:**
+- `other` - the data model to compare this to
+
+**Throws:**
+- `java.lang.Exception` - thrown if the data models do not match
+
+### correctName
+
+```java
+public static java.lang.String correctName(java.lang.String tempName)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmarkNotFoundException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmarkNotFoundException.md
new file mode 100644
index 0000000000..def9edb273
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXBookmarkNotFoundException.md
@@ -0,0 +1,52 @@
+# Class: PHXBookmarkNotFoundException
+
+**Package:**
+- `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXBookmarkNotFoundException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+```java
+public class PHXBookmarkNotFoundException
+extends java.lang.Exception
+```
+
+**See Also:**
+- [Serialized Form](../../../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXBookmarkNotFoundException(java.lang.String bookmarkName)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `printStackTrace`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXBookmarkNotFoundException
+
+```java
+public PHXBookmarkNotFoundException(java.lang.String bookmarkName)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXCAERange.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXCAERange.md
new file mode 100644
index 0000000000..6d307d1909
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXCAERange.md
@@ -0,0 +1,153 @@
+# Class: PHXCAERange
+
+**Package:**
+- `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXCAERange
+```
+
+**Implemented Interfaces**
+
+- [IPHXRange](../../../../../../com/phoenix_int/aserver/util/scriptwrapper/api/IPHXRange.md)
+
+----
+
+**Declaration**
+
+```java
+public class PHXCAERange
+extends java.lang.Object
+implements IPHXRange
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static java.lang.String` | `NAME_SEPARATOR` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXCAERange()` |
+| `PHXCAERange(java.lang.String str)` |
+| `PHXCAERange(java.lang.String pageName, java.lang.String str)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `assertEquals(IPHXRange other)` |
+| `void` | `fromString(java.lang.String str)` |
+| `java.lang.String` | `getPageName()` |
+| `void` | `setPageName(java.lang.String pageName)` |
+| `java.lang.String` | `toString()` |
+| `java.lang.String` | `toString(boolean fullName)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### NAME_SEPARATOR
+
+```java
+public static final java.lang.String NAME_SEPARATOR
+```
+
+**See Also:**
+
+- [Constant Field Values](../../../../../constant-values.md)
+
+## Constructor Detail
+
+### PHXCAERange
+
+```java
+public PHXCAERange()
+```
+
+### PHXCAERange
+
+```java
+public PHXCAERange(java.lang.String str)
+```
+
+### PHXCAERange
+
+```java
+public PHXCAERange(java.lang.String pageName,
+ java.lang.String str)
+```
+
+## Method Detail
+
+### fromString
+
+```java
+public void fromString(java.lang.String str)
+```
+
+**Specified by:**
+
+- `fromString` in interface [`IPHXRange`](IPHXRange.md)
+
+### toString
+
+```java
+public java.lang.String toString()
+```
+
+**Specified by:**
+
+- `toString` in interface [`IPHXRange`](IPHXRange.md)
+
+**Overrides:**
+
+- `toString` in class `java.lang.Object`
+
+### toString
+
+```java
+public java.lang.String toString(boolean fullName)
+```
+
+**Specified by:**
+
+- `toString` in interface [`IPHXRange`](IPHXRange.md)
+
+### assertEquals
+
+```java
+public void assertEquals(IPHXRange other)
+ throws java.lang.Exception
+```
+
+**Specified by:**
+
+- `assertEquals` in interface [`IPHXRange`](IPHXRange.md)
+
+**Throws:**
+- `java.lang.Exception`
+
+### setPageName
+
+```java
+public void setPageName(java.lang.String pageName)
+```
+
+### getPageName
+
+```java
+public java.lang.String getPageName()
+```
+
+**Specified by:**
+
+- `getPageName` in interface [`IPHXRange`](IPHXRange.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldFile.md
new file mode 100644
index 0000000000..56398df93b
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldFile.md
@@ -0,0 +1,1014 @@
+# Class: PHXRowFieldFile
+
+**Package:**
+- `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldFile
+```
+
+**Implemented Interfaces**
+
+- [InputFile](InputFile.md)
+- [OutputFile](OutputFile.md)
+- [OutputFile2](OutputFile2.md)
+- [ParseableFile](ParseableFile.md)
+- java.io.Closeable
+- java.lang.AutoCloseable
+
+---
+**Declaration**
+
+```java
+public class PHXRowFieldFile
+extends AbstractFile
+implements InputFile, OutputFile, OutputFile2
+```
+
+Class implements the parsing capabilities of the RowField type files from the fileWrapper facility. Typical use would be to write a function which creates an instance of this class and implements the parsing using the `transferVar()` function. Then, a mode can be passed in which specifies whether the function should read the template file, generate an input file, or parse an output file.
+You will want to read the documentation on the fileWrapper utility for more specifics on how exactly the file parsing and options work.
+
+Example usage from a java scriptwrapper (Comments show fileWrapper equivalents):
+
+```java
+ //RowFieldInputFile freqIN
+ void rowFieldFreqIN(int mode)
+ throws Exception
+ {
+ RowFieldFile file = new RowFieldFile(super.wrapper, mode)
+ //templateFile: freq.txt.template
+ file.setTemplateFile("freq.txt.template");
+ //fileToGenerate: freq.txt
+ file.setFileToGenerateOrParse("freq.txt");
+
+ //variable: W1 double 1 2
+ file.transferVar(super.W1, 1, 2);
+ //variable: W2 double 2 2
+ file.transferVar(super.W2, 2, 2);
+ //variable: u1 double 3 2
+ file.transferVar(super.u1, 3, 2);
+ //variable: u2 double 4 2
+ file.transferVar(super.u2, 4, 2);
+
+ //Actually generate a file if we are told to
+ if ( mode == RowFieldFile.GENERATE )
+ file.generate();
+ }
+```
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+`ParseableFile.Mode`
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static int` | `GENERATE`
Deprecated. in favor of [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) |
+| `static int` | `PARSE`
Deprecated. in favor of [ParseableFile.Mode.PARSE](ParseableFile.Mode.md) |
+| `static int` | `READ_TEMPLATE`
Deprecated. in favor of [ParseableFile.Mode.READ_TEMPLATE](ParseableFile.Mode.md) |
+
+### Fields inherited from class com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+
+`encoding`, `fileName`, `mode`, `parser`, `templateFileName`, `wrapper`
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXRowFieldFile(PHXScriptWrapperObject wrapper)`
Defaults to [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) |
+| `PHXRowFieldFile(PHXScriptWrapperObject wrapper, int mode)`
Deprecated. in favor of [PHXRowFieldFile(PHXScriptWrapperObject, ParseableFile.Mode)](PHXRowFieldFile.md) |
+| `PHXRowFieldFile(PHXScriptWrapperObject wrapper, ParseableFile.Mode mode)` |
+| `PHXRowFieldFile(java.lang.String baseDirectory, int mode)`
Legacy (pre-QW) constructor. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `clearMarks()`
Removes effects of any previous `markAsBeginning()` or `markAsEnd()` calls |
+| `void` | `defineBookmark(java.lang.String name, java.lang.String parent, java.lang.String start)` |
+| `void` | `defineSection(java.lang.String name, java.lang.String start, java.lang.String end, java.lang.String delimiters)` |
+| `void` | `defineVar(java.lang.String name, java.lang.String type, boolean isInput, java.lang.String rangeStr)` |
+| `void` | `defineVar(java.lang.String name, java.lang.String type, boolean isInput, java.lang.String rangeStr, java.lang.String units, java.lang.String description, java.lang.String lowerBound, java.lang.String upperBound, java.lang.String enumValues, java.lang.String enumAliases, java.lang.String format)` |
+| `void` | `defineVar(java.lang.String name, java.lang.String type, boolean isInput, java.lang.String rangesStr, java.lang.String units, java.lang.String description, java.lang.String lowerBound, java.lang.String upperBound, java.lang.String enumValues, java.lang.String enumAliases, java.lang.String format, java.lang.String fformat)` |
+| `protected void` | `ensureFileParser(ParseableFile.Mode mode)`
Ensure there is a valid parser |
+| `void` | `generate()`
Generate the input file |
+| `void` | `markAsBeginning(int row)`
Makes the specified row act as row 1 for all subsequent calls until another markAsBeginning or clearMarks call. |
+| `void` | `markAsBeginning(java.lang.String find)`
Searches for the specified string and makes the row where the string was found act as row 1 for all subsequent calls until another markAsBeginning or clearMarks call. |
+| `void` | `markAsBeginning(java.lang.String find, int occurrence, int offset, boolean regex)`
Searches for the specified string and makes the row where the string was found act as row 1 for all subsequent calls until another markAsBeginning or clearMarks call. |
+| `void` | `markAsEnd(int row)`
Makes the specified row act as row -1 (end of file) for all subsequent calls until another markAsBeginning or clearMarks call. |
+| `void` | `markAsEnd(java.lang.String find)`
Searches for the specified string, starting from the end of the file and working towards the beginning, and makes the row where the string was found act as row -1 (end of file) for all subsequent calls until another markAsEnd or clearMarks call. |
+| `void` | `markAsEnd(java.lang.String find, int occurrence, int offset, boolean regex)`
Searches for the specified string and makes the row where the string was found act as row -1 (end of file) for all subsequent calls until another markAsEnd or clearMarks call. |
+| `protected Parser` | `newParser(java.io.File rFile, Parser.Mode pmode)`
Generate a new parser for the given file and mode |
+| `void` | `parse()`
Parse the output file |
+| `double` | `readDouble(int row, int field)`
Reads a value out of the input file. |
+| `long` | `readLong(int row, int field)`
Reads a value out of the input file. |
+| `java.lang.String` | `readValue(int row, int field)`
Reads a value out of the input file. |
+| `void` | `setDecimalSeparator(char separator)`
Set decimal separator for floating point value literals. |
+| `void` | `setDelimiters(java.lang.String delimiters)`
Sets the delimiters which should be used for parsing lines into fields. |
+| `void` | `setFileToGenerate(java.lang.String fileName)`
Set the file to be generated |
+| `void` | `setFileToParse(java.lang.String fileName)`
Set the file to be parsed |
+| `void` | `transferArray(PHXSimpleArray var, int rowstart, int rowend, int fieldstart, int fieldend)`
Transfers the data for a particular array. |
+| `void` | `transferArray(PHXSimpleArray var, int rowstart, int rowend, int fieldstart, int fieldend, boolean resizable, java.lang.String fformat)`
Transfers the data for a particular array. |
+| `void` | `transferArray(PHXSimpleArray var, int rowstart, int rowend, int fieldstart, int fieldend, boolean resizable, java.lang.String fformat, int numDimensions)`
Transfers the data for a particular array. |
+| `void` | `transferArray(PHXSimpleArray var, int rowstart, int rowend, int fieldstart, int fieldend, int numDimensions)`
Transfers the data for a particular array. |
+| `void` | `transferKeyVar(PHXSimpleType var, java.lang.String key)`
Transfers the data for a particular variable. |
+| `void` | `transferKeyVar(PHXSimpleType var, java.lang.String key, int occurrence, int rowOffset, int field, java.lang.String fformat)`
Transfers the data for a particular variable. |
+| `void` | `transferVar(PHXSimpleType var, int row, int field)`
Transfers the data for a particular variable. |
+| `void` | `transferVar(PHXSimpleType var, int row, int field, java.lang.String fformat)`
Transfers the data for a particular variable. |
+| `void` | `transferVar(java.lang.String name, PHXSimpleType var, int row, int field)` |
+| `void` | `transferVar(java.lang.String name, PHXSimpleType var, int row, int field, java.lang.String fformat)` |
+| `protected void` | `transferVars(ParseableFile.Mode mode)`
Note that if wrapper is null, variable collection should be empty, and there should be no harm in calling this method |
+| `void` | `writeValue(int row, int field, java.lang.String val)`
Writes a token out to the output file. |
+
+### Methods inherited from class com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+
+`actionByMode`, `backup`, `close`, `delete`, `getEncoding`, `getRealFile`, `readTemplate`, `setEncoding`, `setEncoding`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, s`etVariable`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+`backup`, `close`, `delete`, `readTemplate`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+## Field Detail
+
+### GENERATE
+
+```java
+@Deprecated
+public static final int GENERATE
+```
+Deprecated. in favor of [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md)
+
+This mode makes the row field file prepare to generate the output file by reading the template file, then replacing the specified values passed to `transferVar()`.
+
+### PARSE
+
+```java
+@Deprecated
+public static final int PARSE
+```
+Deprecated. in favor of [ParseableFile.Mode.PARSE](ParseableFile.Mode.md)
+This mode makes the row field file read in values from the `fileToParse` when `transferVar()` is called.
+
+### READ_TEMPLATE
+
+```java
+@Deprecated
+public static final int READ_TEMPLATE
+```
+Deprecated. in favor of [ParseableFile.Mode.READ_TEMPLATE](ParseableFile.Mode.md)
+
+This mode makes the row field file read in values from the template file when `transferVar()` is called.
+
+## Constructor Detail
+
+### PHXRowFieldFile
+
+```java
+public PHXRowFieldFile(PHXScriptWrapperObject wrapper)
+```
+Defaults to [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md)
+
+**Parameters:**
+- `wrapper` - script-wrapper object
+
+### PHXRowFieldFile
+
+```java
+public PHXRowFieldFile(PHXScriptWrapperObject wrapper, ParseableFile.Mode mode)
+```
+
+### PHXRowFieldFile
+
+```java
+@Deprecated
+public PHXRowFieldFile(PHXScriptWrapperObject wrapper, int mode)
+```
+Deprecated. in favor of [PHXRowFieldFile(PHXScriptWrapperObject, ParseableFile.Mode)](PHXRowFieldFile.md)
+
+**Parameters:**
+- `wrapper` - The row field file will find files relative to the run directory specified in this wrapper object.
+- `mode` - parser mode
+
+### PHXRowFieldFile
+
+```java
+public PHXRowFieldFile(java.lang.String baseDirectory, int mode)
+```
+Legacy (pre-QW) constructor.
+
+Note: Using this constructor will make the resultant object incompatible with certain methods. This was necessary for compatibility with QuickWrap. The new constructors accept [PHXScriptWrapperObject](PHXScriptWrapperObject.md). This constructor passes `null` instead.
+
+**Parameters:**
+- `baseDirectory` - All files will be relative to this directory
+- `mode` - parser mode
+
+## Method Detail
+
+### generate
+
+```java
+public void generate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Generate the input file
+
+**Specified by:**
+- `generate` in interface `InputFile`
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### setFileToGenerate
+
+```java
+public void setFileToGenerate(java.lang.String fileName)
+```
+Set the file to be generated
+
+**Specified by:**
+- `setFileToGenerate` in interface `InputFile`
+
+**Parameters:**
+- `fileName` - file name
+
+### parse
+
+```java
+public void parse()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Parse the output file
+
+**Specified by:**
+- `parse` in interface `OutputFile`
+- `parse` in interface `OutputFile2`
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### setFileToParse
+
+```java
+public void setFileToParse(java.lang.String fileName)
+```
+Set the file to be parsed
+
+**Specified by:**
+- `setFileToParse` in interface `OutputFile`
+- `setFileToParse` in interface `OutputFile2`
+
+**Parameters:**
+- `fileName` - file name
+
+### newParser
+
+```java
+protected Parser newParser(java.io.File rFile,
+ Parser.Mode pmode)
+ throws java.io.IOException
+```
+Generate a new parser for the given file and mode
+
+**Specified by:**
+- `newParser` in class `AbstractFile`
+
+**Parameters:**
+- `rFile` - The file to open
+- `pmode` - caching mode for underlying parser
+
+**Throws:**
+- `java.io.IOException`
+
+### ensureFileParser
+
+```java
+protected void ensureFileParser(ParseableFile.Mode mode)
+ throws java.io.IOException
+```
+Ensure there is a valid parser
+
+**Overrides:**
+- `ensureFileParser` in class `AbstractFile`
+
+**Parameters:**
+- `mode` - parser mode in current context
+
+**Throws:**
+- `java.io.IOException`
+
+### defineSection
+
+```java
+public void defineSection(java.lang.String name,
+ java.lang.String start,
+ java.lang.String end,
+ java.lang.String delimiters)
+ throws com.phoenix_int.aserver.util.PHXNoSuchBookmarkException
+```
+
+**Throws:**
+- `com.phoenix_int.aserver.util.PHXNoSuchBookmarkException`
+
+### defineBookmark
+
+```java
+public void defineBookmark(java.lang.String name,
+ java.lang.String parent,
+ java.lang.String start)
+```
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangeStr)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- `PHXNameAlreadyInUseException`
+- `PHXInvalidNameException`
+- `PHXInvalidTypeException`
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangeStr,
+ java.lang.String units,
+ java.lang.String description,
+ java.lang.String lowerBound,
+ java.lang.String upperBound,
+ java.lang.String enumValues,
+ java.lang.String enumAliases,
+ java.lang.String format)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- `PHXNameAlreadyInUseException`
+- `PHXInvalidNameException`
+- `PHXInvalidTypeException`
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangesStr,
+ java.lang.String units,
+ java.lang.String description,
+ java.lang.String lowerBound,
+ java.lang.String upperBound,
+ java.lang.String enumValues,
+ java.lang.String enumAliases,
+ java.lang.String format,
+ java.lang.String fformat)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- `PHXNameAlreadyInUseException`
+- `PHXInvalidNameException`
+- `PHXInvalidTypeException`
+
+### transferVars
+
+```java
+protected void transferVars(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Note that if wrapper is null, variable collection should be empty, and there should be no harm in calling this method.
+
+Transfer values for variables that have been defined using methods from the concrete implementation, i.e. [defineVar(String, String, boolean, String)](PHXRowFieldFile.md)
+
+Variables defined using [PHXScriptWrapperObject.addVariable(String, String, boolean)](PHXScriptWrapperObject.md) must be explicitly transferred using methods of the concrete implementation class.
+
+**Specified by:**
+- `transferVars` in class `AbstractFile`
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### transferVar
+
+```java
+public void transferVar(PHXSimpleType var,
+ int row,
+ int field)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Transfers the data for a particular variable. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The variable to read or write
+- `row` - The row in the file to read/write from/to.
+- `field` - The field within the row to read/write from/to.
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### transferVar
+
+```java
+public void transferVar(java.lang.String name,
+ PHXSimpleType var,
+ int row,
+ int field)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### transferVar
+
+```java
+public void transferVar(PHXSimpleType var,
+ int row,
+ int field,
+ java.lang.String fformat)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Transfers the data for a particular variable. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The variable to read or write
+- `row` - The row in the file to read/write from/to.
+- `field` - The field within the row to read/write from/to.
+- `fformat` - The fortran style format string to apply. Pass null
+ for standard formatting.
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### transferVar
+
+```java
+public void transferVar(java.lang.String name,
+ PHXSimpleType var,
+ int row,
+ int field,
+ java.lang.String fformat)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNumberFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### transferArray
+
+```java
+public void transferArray(PHXSimpleArray var,
+ int rowstart,
+ int rowend,
+ int fieldstart,
+ int fieldend)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular array. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The array to read or write
+- `rowstart` - The starting row in the file to read/write from/to
+- `rowend` - The ending row in the file to read/write from/to
+- `fieldstart` - The starting field within the row to read/write from/to
+- `fieldend` - The ending field within the row to read/write from/to
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+
+### transferArray
+
+```java
+public void transferArray(PHXSimpleArray var,
+ int rowstart,
+ int rowend,
+ int fieldstart,
+ int fieldend,
+ int numDimensions)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular array. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The array to read or write
+- `rowstart` - The starting row in the file to read/write from/to
+- `rowend` - The ending row in the file to read/write from/to
+- `fieldstart` - The starting field within the row to read/write from/to
+- `fieldend` - The ending field within the row to read/write from/to
+- `numDimensions` - Either 1 or 2 to read/write 1 or 2-d arrays.
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+
+### transferArray
+
+```java
+public void transferArray(PHXSimpleArray var,
+ int rowstart,
+ int rowend,
+ int fieldstart,
+ int fieldend,
+ boolean resizable,
+ java.lang.String fformat)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular array. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The array to read or write
+- `rowstart` - The starting row in the file to read/write from/to
+- `rowend` - The ending row in the file to read/write from/to
+- `fieldstart` - The starting field within the row to read/write from/to
+- `fieldend` - The ending field within the row to read/write from/to
+- `resizable` - Whether or not the array is resizable when using [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md).
+- `fformat` - The fortran style format string to apply. Pass null for standard formatting.
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+
+### transferArray
+
+```java
+public void transferArray(PHXSimpleArray var,
+ int rowstart,
+ int rowend,
+ int fieldstart,
+ int fieldend,
+ boolean resizable,
+ java.lang.String fformat,
+ int numDimensions)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular array. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The array to read or write
+- `rowstart` - The starting row in the file to read/write from/to
+- `rowend` - The ending row in the file to read/write from/to
+- `fieldstart` - The starting field within the row to read/write from/to
+- `fieldend` - The ending field within the row to read/write from/to
+- `resizable` - Whether or not the array is resizable when using [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md).
+- `fformat` - The fortran style format string to apply. Pass null for standard formatting.
+- `numDimensions` - The number of dimensions to read the array as. Must be 1 or 2.
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- `PHXNumberFormatException`
+
+### transferKeyVar
+
+```java
+public void transferKeyVar(PHXSimpleType var,
+ java.lang.String key)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular variable. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The variable to read or write
+- `key` - The string to search for that identifies the variable in the file.
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `PHXNumberFormatException`
+
+### transferKeyVar
+
+```java
+public void transferKeyVar(PHXSimpleType var,
+ java.lang.String key,
+ int occurrence,
+ int rowOffset,
+ int field,
+ java.lang.String fformat)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ PHXNumberFormatException
+```
+Transfers the data for a particular variable. If mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md) data is read from the var and put into the file, otherwise data is read from the file into the variable.
+
+**Parameters:**
+- `var` - The variable to read or write
+- `key` - The string to search for that identifies the variable in the file.
+- `occurrence` - (default 1). Which occurrence of string to find.
+- `rowOffset` - (default 0). Once the string is found, offset by this many rows
+- `field` - (default 1). Once the string is found, offset by this many fields. If a negative number is used, it will count from the end of the row backwards, but will not count past the key variable.
+- `fformat` - The fortran style format string to apply. Pass null for standard formatting.
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXNoSuchTokenException`
+- `PHXNumberFormatException`
+
+### readValue
+
+```java
+public java.lang.String readValue(int row,
+ int field)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Reads a value out of the input file. If mode is [ParseableFile.Mode.PARSE](ParseableFile.Mode.md), the input file is the fileToParse, otherwise it is the template file.
+
+**Parameters:**
+- `row` - The row of the file to read from
+- `field` - The field of the file to read from.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- This function does not work if `setDelimiters("columns")` has been specified.
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### readLong
+
+```java
+public long readLong(int row,
+ int field)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ java.lang.NumberFormatException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Reads a value out of the input file. If mode is [ParseableFile.Mode.PARSE](ParseableFile.Mode.md), the input file is the fileToParse, otherwise it is the template file. Returns it as a long value.
+
+**Parameters:**
+- `row` - The row of the file to read from
+- `field` - The field of the file to read from.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- This function does not work if `setDelimiters("columns")` has been specified.
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `java.lang.NumberFormatException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### readDouble
+
+```java
+public double readDouble(int row,
+ int field)
+ throws java.io.IOException,
+ PHXNoSuchTokenException,
+ java.lang.NumberFormatException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Reads a value out of the input file. If mode is [ParseableFile.Mode.PARSE](ParseableFile.Mode.md), the input file is the fileToParse, otherwise it is the template file. Returns it as a double value.
+
+**Parameters:**
+- `row` - The row of the file to read from
+- `field` - The field of the file to read from.
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- This function does not work if `setDelimiters("columns") `has been specified.
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+- `java.lang.NumberFormatException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- `PHXBookmarkNotFoundException`
+- `PHXSectionNotFoundException`
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### writeValue
+
+```java
+public void writeValue(int row,
+ int field,
+ java.lang.String val)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Writes a token out to the output file. This is only useful if mode is [ParseableFile.Mode.GENERATE](ParseableFile.Mode.md).
+
+**Parameters:**
+- `row` - The row of the file to read from
+- `field` - The field of the file to read from.
+- `val` - The string to write
+
+**Throws:**
+- `java.lang.IllegalArgumentException`- This function does not work if `setDelimiters("columns")` has been specified.
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### setDelimiters
+
+```java
+public void setDelimiters(java.lang.String delimiters)
+ throws java.io.IOException
+```
+Sets the delimiters which should be used for parsing lines into fields.
+
+Acceptable values:
+- "columns" - Fortran style column based fields.
+- null - default delimiters (whitespace)
+- "whitespace" - default delimiters (whitespace)
+- "default" - default delimiters (whitespace)
+- "" - default delimiters (whitespace)
+- "none" - No delimiters (entire line as single field)
+- Any other string is taken as a list of character delimiters
+
+**Throws:**
+- `java.io.IOException`
+
+### setDecimalSeparator
+
+```java
+public void setDecimalSeparator(char separator)
+```
+Set decimal separator for floating point value literals.
+
+**Parameters:**
+- `separator` - character to be used as a decimal separator
+
+### clearMarks
+
+```java
+public void clearMarks()
+ throws java.io.IOException
+```
+Removes effects of any previous `markAsBeginning()` or `markAsEnd()` calls
+
+**Throws:**
+- `java.io.IOException`
+
+### markAsBeginning
+
+```java
+public void markAsBeginning(java.lang.String find)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Searches for the specified string and makes the row where the string was found act as row 1 for all subsequent calls until another `markAsBeginning` or `clearMarks` call.
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### markAsBeginning
+
+```java
+public void markAsBeginning(java.lang.String find,
+ int occurrence,
+ int offset,
+ boolean regex)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Searches for the specified string and makes the row where the string was found act as row 1 for all subsequent calls until another `markAsBeginning` or `clearMarks` call.
+
+**Parameters:**
+- `find` - The string to search for.
+- `occurrence` - Search for the Nth occurrence of string (default 1)
+- `offset` - After finding string, move down offset rows. May be negative to move up. (default 0)
+- `regex` - If `true`, the find parameter is a regular expression. (default `false`)
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### markAsBeginning
+
+```java
+public void markAsBeginning(int row)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Makes the specified row act as row 1 for all subsequent calls until another `markAsBeginning` or `clearMarks` call.
+
+**Parameters:**
+- `row` - The row to set
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### markAsEnd
+
+```java
+public void markAsEnd(java.lang.String find)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Searches for the specified string, starting from the end of the file and working towards the beginning, and makes the row where the string was found act as row -1 (end of file) for all subsequent calls until another `markAsEnd` or `clearMarks` call.
+
+**Parameters:**
+- `find` - The string to search for.
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### markAsEnd
+
+```java
+public void markAsEnd(java.lang.String find,
+ int occurrence,
+ int offset,
+ boolean regex)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Searches for the specified string and makes the row where the string was found act as row -1 (end of file) for all subsequent calls until another `markAsEnd` or `clearMarks` call.
+
+**Parameters:**
+- `find` - The string to search for.
+- `occurrence` - Search for the Nth occurrence of string (default 1)
+- `offset` - After finding string, move down offset rows. May be negative to move up. (default 0)
+- `regex` - If `true`, the find parameter is a regular expression. (default `false`)
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
+
+### markAsEnd
+
+```java
+public void markAsEnd(int row)
+ throws java.io.IOException,
+ PHXNoSuchTokenException
+```
+Makes the specified row act as row -1 (end of file) for all subsequent calls until another `markAsBeginning` or `clearMarks` call.
+
+**Parameters:**
+- `row` - The row to set
+
+**Throws:**
+- `java.io.IOException`
+- `PHXNoSuchTokenException`
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldRange.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldRange.md
new file mode 100644
index 0000000000..57092cdded
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldRange.md
@@ -0,0 +1,447 @@
+# Class: PHXRowFieldRange
+
+**Package:**
+- `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldRange
+```
+
+**Implemented Interfaces**
+
+- [IPHXRange](IPHXRange.md)
+
+---
+**Declaration**
+
+```java
+public class PHXRowFieldRange
+extends java.lang.Object
+implements IPHXRange
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static java.lang.String` | `NAME_SEPARATOR` |
+| `static java.lang.String` | `RANGE_SEPARATOR` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `PHXRowFieldRange()` |
+| `PHXRowFieldRange(java.lang.String str)` |
+| `PHXRowFieldRange(java.lang.String start, java.lang.String end)` |
+| `PHXRowFieldRange(java.lang.String pageName, int row)` |
+| `PHXRowFieldRange(java.lang.String pageName, int row, int field)` |
+| `PHXRowFieldRange(java.lang.String pageName, java.lang.String parent, int startRow)` |
+| `PHXRowFieldRange(java.lang.String pageName, java.lang.String parent, java.lang.String startMark, int startOccurrence)` |
+| `PHXRowFieldRange(java.lang.String pageName, java.lang.String startRow, java.lang.String endRow)` |
+| `PHXRowFieldRange(java.lang.String pageName, java.lang.String parent, java.lang.String start, java.lang.String end)` |
+| `PHXRowFieldRange(java.lang.String pageName, java.lang.String startRow, java.lang.String endRow, java.lang.String startCol, java.lang.String endCol)` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `int` | `absoluteEndRow(`[`IPHXLineStore`](../IPHXLineStore.md)` lines, java.util.Vector bookmarks, java.util.Vector sections)` |
+| `int` | `absoluteStartRow(`[`IPHXLineStore`](../IPHXLineStore.md)` lines, java.util.Vector bookmarks, java.util.Vector sections)`
Returns the actual starting row number |
+| `void` | `assertEquals(`[`IPHXRange`](IPHXRange.md)` other)`
Test comparison function. |
+| `void` | `clearEndingMark()` |
+| `void` | `clearStartingMark()` |
+| `void` | `fromString(java.lang.String str)` |
+| `int` | `getAbsoluteStartRow()`
Returns the stored starting row number, assuming it has been stored. |
+| `java.lang.String` | `getDelimiters()` |
+| `java.lang.String` | `getEnd()` |
+| `int` | `getEndCol()` |
+| `java.lang.String` | `getEndMark()` |
+| `int` | `getEndOccurrence()` |
+| `int` | `getEndOffset()` |
+| `java.lang.String` | `getEndParent()` |
+| `int` | `getEndRow()` |
+| `int` | `getNumDimensions()` |
+| `int` | `getNumDimensions(java.lang.String fformat)` |
+| `java.lang.String` | `getPageName()` |
+| `java.lang.String` | `getParent()` |
+| `java.lang.String` | `getRowColString()` |
+| `java.lang.String` | `getStart()` |
+| `java.lang.String` | `getStart(boolean addEscapes)` |
+| `int` | `getStartCol()` |
+| `java.lang.String` | `getStartMark()` |
+| `int` | `getStartOccurrence()` |
+| `int` | `getStartOffset()` |
+| `int` | `getStartRow()` |
+| `boolean` | `isArray()` |
+| `boolean` | `isColArray()` |
+| `boolean` | `isHorizontallyResizable()` |
+| `boolean` | `isRowArray()` |
+| `void` | `setAbsoluteStartRow(int row)`
Sets the stored starting row number. |
+| `void` | `setDelimiters(java.lang.String delim)` |
+| `void` | `setEndingCol(int col)` |
+| `void` | `setEndingMark(java.lang.String mark, int occurrence, int offset)` |
+| `void` | `setEndingRow(int row)` |
+| `void` | `setEndParent(java.lang.String parent)` |
+| `void` | `setPageName(java.lang.String pageName)` |
+| `void` | `setParent(java.lang.String parent)` |
+| `void` | `setStartingCol(int col)` |
+| `void` | `setStartingMark(java.lang.String mark, int occurrence, int offset)` |
+| `void` | `setStartingRow(int row)` |
+| `static java.util.Vector` | `split(java.lang.String rangeStrings)`
Splits a multi-range string into individual range strings. |
+| `java.lang.String` | `toString()` |
+| `java.lang.String` | `toString(boolean showPageName)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### RANGE_SEPARATOR
+
+```java
+public static final java.lang.String RANGE_SEPARATOR
+```
+
+**See Also:**
+- [Constant Field Values](../../../../../../constant-values.md)
+
+### NAME_SEPARATOR
+
+```java
+public static final java.lang.String NAME_SEPARATOR
+```
+
+**See Also:**
+- [Constant Field Values](../../../../../../constant-values.md)
+
+## Constructor Detail
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange()
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String str)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String start,
+ java.lang.String end)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ java.lang.String parent,
+ java.lang.String start,
+ java.lang.String end)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ int row)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ int row,
+ int field)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ java.lang.String parent,
+ int startRow)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ java.lang.String parent,
+ java.lang.String startMark,
+ int startOccurrence)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ java.lang.String startRow,
+ java.lang.String endRow)
+```
+
+### PHXRowFieldRange
+
+```java
+public PHXRowFieldRange(java.lang.String pageName,
+ java.lang.String startRow,
+ java.lang.String endRow,
+ java.lang.String startCol,
+ java.lang.String endCol)
+```
+
+# Method Detail
+
+### generate
+
+```java
+public void generate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Generate the input file
+
+**Specified by:**
+- `generate` in interface [`InputFile`](InputFile.md)
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### setFileToGenerate
+
+```java
+public void setFileToGenerate(java.lang.String fileName)
+```
+Set the file to be generated
+
+**Specified by:**
+- `setFileToGenerate` in interface [`InputFile`](InputFile.md)
+
+**Parameters:**
+- `fileName` - file name
+
+### parse
+
+```java
+public void parse()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Parse the output file
+
+**Specified by:**
+- `parse` in interface [`OutputFile`](OutputFile.md)
+- `parse` in interface [`OutputFile2`](OutputFile2.md)
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
+
+### setFileToParse
+
+```java
+public void setFileToParse(java.lang.String fileName)
+```
+Set the file to be parsed
+
+**Specified by:**
+- `setFileToParse` in interface [`OutputFile`](OutputFile.md)
+- `setFileToParse` in interface [`OutputFile2`](OutputFile2.md)
+
+**Parameters:**
+- `fileName` - file name
+
+### newParser
+
+```java
+protected [`Parser`](../Parser.md) newParser(java.io.File rFile,
+ [`Parser.Mode`](../Parser.Mode.md) pmode)
+ throws java.io.IOException
+```
+Generate a new parser for the given file and mode
+
+**Specified by:**
+- `newParser` in class [`AbstractFile`](AbstractFile.md)
+
+**Parameters:**
+- `rFile` - The file to open
+- `pmode` - caching mode for underlying parser
+
+**Throws:**
+- `java.io.IOException`
+
+### ensureFileParser
+
+```java
+protected void ensureFileParser(ParseableFile.Mode mode)
+ throws java.io.IOException
+```
+Ensure there is a valid parser
+
+**Overrides:**
+- `ensureFileParser` in class [`AbstractFile`](AbstractFile.md)
+
+**Parameters:**
+- `mode` - parser mode in current context
+
+**Throws:**
+- `java.io.IOException`
+
+### defineSection
+
+```java
+public void defineSection(java.lang.String name,
+ java.lang.String start,
+ java.lang.String end,
+ java.lang.String delimiters)
+ throws com.phoenix_int.aserver.util.PHXNoSuchBookmarkException
+```
+
+**Throws:**
+- `com.phoenix_int.aserver.util.PHXNoSuchBookmarkException`
+
+### defineBookmark
+
+```java
+public void defineBookmark(java.lang.String name,
+ java.lang.String parent,
+ java.lang.String start)
+```
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangeStr)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../types/PHXInvalidTypeException.md)
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangeStr,
+ java.lang.String units,
+ java.lang.String description,
+ java.lang.String lowerBound,
+ java.lang.String upperBound,
+ java.lang.String enumValues,
+ java.lang.String enumAliases,
+ java.lang.String format)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../types/PHXInvalidTypeException.md)
+
+### defineVar
+
+```java
+public void defineVar(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String rangesStr,
+ java.lang.String units,
+ java.lang.String description,
+ java.lang.String lowerBound,
+ java.lang.String upperBound,
+ java.lang.String enumValues,
+ java.lang.String enumAliases,
+ java.lang.String format,
+ java.lang.String fformat)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../types/PHXInvalidTypeException.md)
+
+### transferVars
+
+```java
+protected void transferVars(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException,
+ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException
+```
+Note that if wrapper is null, variable collection should be empty, and there should be no harm in calling this method
+
+Transfer values for variables that have been defined using methods from the concrete implementation, i.e. [`defineVar(String, String, boolean, String)`](PHXRowFieldFile.md)
+
+Variables defined using [`PHXScriptWrapperObject.addVariable(String, String, boolean)`](PHXScriptWrapperObject.md) must be explicitly transferred using methods of the concrete implementation class
+
+**Specified by:**
+- `transferVars` in class [`AbstractFile`](AbstractFile.md)
+
+**Throws:**
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+- `com.phoenix_int.aserver.util.scriptwrapper.api.PHXRowFieldOutOfFileException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRunShareContext.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRunShareContext.md
new file mode 100644
index 0000000000..248458177f
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXRunShareContext.md
@@ -0,0 +1,66 @@
+# Class: PHXRunShareContext
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.PHXRunShare
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXRunShareContext
+```
+
+**Implemented Interfaces**
+
+- `IPHXMonitorable`, `com.phoenix_int.aserver.trace.IPHXTraceGenerator`
+
+---
+**Declaration**
+
+```java
+public class PHXRunShareContext
+extends PHXRunShare
+```
+
+This class handles runshare capabilities for any component which needs it. It can create temp directories, deal w/ auto-copy and auto-delete of important files, return errors and block until it is safe to run. It also handles providing monitors for stdout and stderr as well as for monitoring started processes.
+
+This class can only handle one single process running at a time. If you need to run multiple processes, use multiple instances of this class. You can use this same object over and over by calling `lock()` and `unlock()` multiple times.
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from class com.phoenix_int.aserver.PHXRunShare
+`PHXRunShare.RunInfo`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.PHXRunShare
+`DEL_AUTO, DEL_FALSE, DEL_TRUE, MODE_ERROR, MODE_NONE, MODE_SHARE, MODE_WAIT`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXRunShareContext(java.lang.String baseDir, java.lang.String wrapperID)` |
+
+## Method Summary
+
+### Methods inherited from class com.phoenix_int.aserver.PHXRunShare
+`addFileToCopy`, `addRunDirChangedListener`, `addTraceListener`, `cleanTempDir`, `finalize`, `getAutoChangeDir`, `getAutoDelete`, `getBaseDirectory`, `getDictionary`, `getDirectory`, `getIgnoreErrors`, `getMode`, `getMonitor`, `getShell`, `getWrapperID`, `halt`, `listMonitorableFiles`, `listProcesses`, `lock`, `removeRunDirChangedListener`, `removeTraceListener`, `reset`, `run`, `run2`, `setAutoChangeDir`, `setAutoDelete`, `setDictionary`, `setDirectTransfer`, `setFilesToCopy`, `setIgnoreErrors`, `setMode`, `setRunDirectory`, `setRunReplacer`, `setShell`, `timeout`, `unlock` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXRunShareContext
+
+```java
+public PHXRunShareContext(java.lang.String baseDir,
+ java.lang.String wrapperID)
+```
+
+**Parameters:**
+
+- `baseDir` - The directory on disk where the files associated w/ this component are located.
+- `wrapperID` - A unique ID which identifies this component. This is used to synchronize runshare access across multiple instances of the same component. Typically the full path on disk to the component's main file is used for this ID.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperAPIException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperAPIException.md
new file mode 100644
index 0000000000..d4cb7b8a1f
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperAPIException.md
@@ -0,0 +1,53 @@
+# Class: PHXScriptWrapperAPIException
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXScriptWrapperAPIException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+---
+**Declaration**
+
+```java
+public class PHXScriptWrapperAPIException
+extends java.lang.Exception
+```
+
+Represents a problem with transferring data in a `PHXRowFieldFile` object.
+
+**See Also:**
+
+- [Serialized Form](../../../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXScriptWrapperAPIException(java.lang.String message)`
Creates a new instance of `PHXScriptWrapperAPIException` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXScriptWrapperAPIException
+
+```java
+public PHXScriptWrapperAPIException(java.lang.String message)
+```
+Creates a new instance of `PHXScriptWrapperAPIException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperObject.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperObject.md
new file mode 100644
index 0000000000..c9599284c8
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperObject.md
@@ -0,0 +1,467 @@
+# Class: PHXScriptWrapperObject
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXScriptWrapperObject
+```
+
+**Declaration**
+
+```java
+public class PHXScriptWrapperObject
+extends java.lang.Object
+```
+
+This object is passed to Script Wrapper scripts and provides the "wrapper" global object which provides runtime services for the wrapper.
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXScriptWrapperObject(com.phoenix_int.aserver.util.scriptwrapper.PHXScriptWrapper wrapper)`
Constructs a wrapper object from a ScriptWrapper instance. |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addAutoClose(java.io.Closeable file)`
Add the opened file to the file Handlers list |
+| `void` | `addConsoleVariables()` |
+| `void` | `addFileInfo(PHXRowFieldFile rff, java.lang.String fileName, ParseableFile.Mode mode)` |
+| `void` | `addMethod(java.lang.String methodName)`
Publicizes a method to our clients. |
+| `void` | `addMethod(java.lang.String methodName, boolean downloadInputs)`
Publicizes a method to our clients. |
+| `void` | `addMethod(java.lang.String methodName, java.lang.String fullName)`
Publicizes a method to our clients. |
+| `void` | `addMethod(java.lang.String methodName, java.lang.String fullName, boolean downloadInputs)`
Publicizes a method to our clients. |
+| `IPHXType` | `addVariable(java.lang.String name, java.lang.String type, boolean isInput)`
Adds a variable to this component. |
+| `void` | `backupFile(java.lang.String varName, java.lang.String fileName)`
Backup the file on disk. |
+| `void` | `defaultExecutableMapping(java.lang.String name, java.lang.String location)` |
+| `void` | `deleteFile(java.lang.String varName, java.lang.String fileName)`
Deletes the given file variable's file |
+| `com.phoenix_int.aserver.ascore.PHXConnection` | `getConnection()`
gets the connection object |
+| `java.util.Map` | `getDictionary()`
Gets context information for the incoming connection that is running this wrapper. |
+| `java.lang.String` | `getDirectory()`
Returns the directory where this component was loaded from |
+| `java.lang.String` | `getRunDirectory()`
Returns the current "run" directory, which is the same as getDirectory() unless run sharing is being used. |
+| `PHXRunShareContext` | `getRunShare()`
Returns the `PHXRunShareContext` object used for process control and monitoring with this component |
+| `IPHXType` | `getVariable(java.lang.String name)`
Returns a reference to the named variable. |
+| `void` | `parseFile(java.lang.String varName, java.lang.String fileName, boolean throwParseError)`
Read the given file variable from the specified file |
+| `void` | `removeAutoClose(java.io.Closeable file)`
Remove the file from the file Handlers list |
+| `void` | `removeVariable(java.lang.String name)`
Dynamically removes a variable from this component |
+| `void` | `requireAnalysisServerVersion(int majorVersion, int minorVersion)`
Verifies we're running a compatible version of ModelCenter Remote Execution |
+| `void` | `setBinary(java.lang.String varName)`
Make a given file variable binary |
+| `void` | `setConnection(com.phoenix_int.aserver.ascore.PHXConnection c)`
sets the connection object |
+| `void` | `sleep(long millisecs)`
sleeps for a period of time |
+| `void` | `trace(java.lang.String msg)`
Prints a string to the trace window |
+| `void` | `updateConsoleVariables()` |
+| `void` | `writeFile(java.lang.String varName, java.lang.String fileName)`
Write the given file variable out to the specified file |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXScriptWrapperObject
+
+```java
+public PHXScriptWrapperObject(com.phoenix_int.aserver.util.scriptwrapper.PHXScriptWrapper wrapper)
+```
+Constructs a wrapper object from a ScriptWrapper instance.
+
+## Method Detail
+
+### addMethod
+
+```java
+public void addMethod(java.lang.String methodName)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+Publicizes a method to our clients. There must be a method defined in the script by this name. Clients of MCRE will be able to call this method
+
+**Parameters:**
+
+- `methodName` - The name of the method to publicize
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+
+### addMethod
+
+```java
+public void addMethod(java.lang.String methodName,
+ java.lang.String fullName)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+Publicizes a method to our clients. There must be a method defined in the script by this name. Clients of MCRE will be able to call this method
+
+**Parameters:**
+
+- `methodName` - The name of the method to publicize.
+- `fullName` - A human readable name to show in GUI programs for this method. For example, ModelCenter will show this in the right click menu of a component.
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+
+### addMethod
+
+```java
+public void addMethod(java.lang.String methodName,
+ boolean downloadInputs)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+Publicizes a method to our clients. There must be a method defined in the script by this name. Clients of MCRE will be able to call this method
+
+**Parameters:**
+
+- `methodName` - The name of the method to publicize.
+- `downloadInputs` - Hint passed to the client on whether the inputs should be downloaded after the method is run.
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+
+### addMethod
+
+```java
+public void addMethod(java.lang.String methodName,
+ java.lang.String fullName,
+ boolean downloadInputs)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException
+```
+Publicizes a method to our clients. There must be a method defined in the script by this name. Clients of MCRE will be able to call this method
+
+**Parameters:**
+
+- `methodName` - The name of the method to publicize.
+- `fullName` - A human readable name to show in GUI programs for this method. For example, ModelCenter will show this in the right click menu of a component.
+- `downloadInputs` - Hint passed to the client on whether the inputs should be downloaded after the method is run.
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+
+### addVariable
+
+```java
+public IPHXType addVariable(java.lang.String name,
+ java.lang.String type,
+ boolean isInput)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+Adds a variable to this component. Returns a reference to the new variable. Valid types are:
+
+| Type | Aliases | Associated PHXType |
+| --- | --- | --- |
+| double | real | PHXDouble |
+| integer | int,long | PHXLong |
+| string | str | PHXString |
+| boolean | bool | PHXBoolean |
+| geometry | geom | PHXGeometry |
+| file | | PHXRawFile |
+
+All types except `PHXGeometry` and `PHXRawFile` may be made into arrays by adding `[]` at the end of the type string. In that case, the associated `PHXArray` class is used to represent a resizable, multi-dimensional array.
+
+**Parameters:**
+
+- `name` - The full name of the new variable. May include group specification with '.'.
+- `type` - The type of variable to create. Use the same type strings as for the variable: statemensts at the top of the ScriptWrapper.
+- `isInput` - If true, the variable will be an input, if false, it will be an output.
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md) - Thrown if there is already a variable by that name.
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md) - Thrown if the name uses invalid characters like space.
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md) - Thrown if the type string is not understood
+
+### getVariable
+
+```java
+public IPHXType getVariable(java.lang.String name)
+ throws PHXNoSuchObjectException
+```
+Returns a reference to the named variable.
+
+**Throws:**
+
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+
+### removeVariable
+
+```java
+public void removeVariable(java.lang.String name)
+ throws PHXNoSuchObjectException
+```
+Dynamically removes a variable from this component
+
+**Throws:**
+
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+
+### addConsoleVariables
+
+```java
+public void addConsoleVariables()
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+
+### updateConsoleVariables
+
+```java
+public void updateConsoleVariables()
+ throws PHXNoSuchObjectException
+```
+
+**Throws:**
+
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+
+### getDirectory
+
+```java
+public java.lang.String getDirectory()
+```
+Returns the directory where this component was loaded from
+
+### getRunShare
+
+```java
+public PHXRunShareContext getRunShare()
+```
+Returns the [`PHXRunShareContext`](PHXRunShareContext.md) object used for process control and monitoring with this component
+
+### getRunDirectory
+
+```java
+public java.lang.String getRunDirectory()
+```
+Returns the current "run" directory, which is the same as `getDirectory()` unless run sharing is being used.
+
+### sleep
+
+```java
+public void sleep(long millisecs)
+```
+sleeps for a period of time
+
+**Parameters:**
+
+- `millisecs` - the amount of time to sleep
+
+### getConnection
+
+```java
+public com.phoenix_int.aserver.ascore.PHXConnection getConnection()
+```
+gets the connection object
+
+### setConnection
+
+```java
+public void setConnection(com.phoenix_int.aserver.ascore.PHXConnection c)
+```
+sets the connection object
+
+### getDictionary
+
+```java
+public java.util.Map getDictionary()
+```
+Gets context information for the incoming connection that is running this wrapper. Currently only for internal use.
+
+**Returns:**
+
+- a Map of string/value pairs giving context information about the environment inside which the component is running.
+
+### setBinary
+
+```java
+public void setBinary(java.lang.String varName)
+ throws PHXInvalidTypeException,
+ PHXNoSuchObjectException
+```
+Make a given file variable binary
+
+**Parameters:**
+
+- `varName` - the name of the file variable
+
+**Throws:**
+
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+
+### writeFile
+
+```java
+public void writeFile(java.lang.String varName,
+ java.lang.String fileName)
+ throws PHXInvalidTypeException,
+ PHXNoSuchObjectException,
+ java.io.IOException
+```
+Write the given file variable out to the specified file
+
+**Parameters:**
+
+- `varName` - the name of the file variable
+- `fileName` - the name of the target file
+
+**Throws:**
+
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+- `java.io.IOException`
+
+### parseFile
+
+```java
+public void parseFile(java.lang.String varName,
+ java.lang.String fileName,
+ boolean throwParseError)
+ throws PHXInvalidTypeException,
+ PHXNoSuchObjectException,
+ java.io.IOException
+```
+Read the given file variable from the specified file
+
+**Parameters:**
+
+- `varName` - the name of the file variable
+- `fileName` - the name of the target file
+
+**Throws:**
+
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+- `java.io.IOException`
+
+### deleteFile
+
+```java
+public void deleteFile(java.lang.String varName,
+ java.lang.String fileName)
+ throws PHXInvalidTypeException,
+ PHXNoSuchObjectException,
+ java.io.IOException
+```
+Deletes the given file variable's file
+
+**Parameters:**
+
+- `varName` - the name of the file variable
+- `fileName` - the name of the target file
+
+**Throws:**
+
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+- `java.io.IOException`
+
+### backupFile
+
+```java
+public void backupFile(java.lang.String varName,
+ java.lang.String fileName)
+ throws PHXInvalidTypeException,
+ PHXNoSuchObjectException,
+ java.io.IOException
+```
+Backup the file on disk. File is at the same location with ".bac" appended to the end. If a file by that name already exists, it is deleted prior to moving.
+
+**Parameters:**
+
+- `varName` - the name of the file variable
+- `fileName` - the name of the target file
+
+**Throws:**
+
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+- [`PHXNoSuchObjectException`](../../PHXNoSuchObjectException.md)
+- `java.io.IOException`
+
+### defaultExecutableMapping
+
+```java
+public void defaultExecutableMapping(java.lang.String name,
+ java.lang.String location)
+```
+
+### trace
+
+```java
+public void trace(java.lang.String msg)
+```
+Prints a string to the trace window
+
+**Parameters:**
+
+- `msg` - the message to print
+
+### requireAnalysisServerVersion
+
+```java
+public void requireAnalysisServerVersion(int majorVersion,
+ int minorVersion)
+ throws PHXVersionException
+```
+Verifies we're running a compatible version of ModelCenter Remote Execution
+
+**Parameters:**
+
+- `majorVersion` - required major version
+- `minorVersion` - required minor version
+
+**Throws:**
+
+- [`PHXVersionException`](PHXVersionException.md)
+
+### addAutoClose
+
+```java
+public void addAutoClose(java.io.Closeable file)
+```
+Add the opened file to the file Handlers list
+
+**Parameters:**
+
+- `file` - the closeable file
+
+### removeAutoClose
+
+```java
+public void removeAutoClose(java.io.Closeable file)
+```
+Remove the file from the file Handlers list
+
+**Parameters:**
+
+- `file` - the closeable file
+
+### addFileInfo
+
+```java
+public void addFileInfo(PHXRowFieldFile rff,
+ java.lang.String fileName,
+ ParseableFile.Mode mode)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSection.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSection.md
new file mode 100644
index 0000000000..a5d901a9ab
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSection.md
@@ -0,0 +1,143 @@
+# Class: PHXSection
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXSection
+```
+
+**Implemented Interfaces**
+
+- `java.lang.Cloneable`
+---
+**Declaration**
+
+```java
+public class PHXSection
+extends java.lang.Object
+implements java.lang.Cloneable
+```
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `java.lang.Object` | `owner` |
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXSection(java.lang.String name, PHXBookmark start, PHXBookmark end, java.lang.String delimiters)`
Creates a new instance of PHXSection |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `assertEquals(PHXSection other)`
Test comparison function. |
+| `PHXSection` | `copy()` |
+| `java.lang.String` | `getDelimiters()` |
+| `PHXBookmark` | `getEnd()` |
+| `java.lang.String` | `getName()` |
+| `PHXBookmark` | `getStart()` |
+| `void` | `setDelimiters(java.lang.String delimiters)` |
+| `void` | `setEnd(PHXBookmark end)` |
+| `void` | `setName(java.lang.String name)` |
+| `void` | `setStart(PHXBookmark start)` |
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+## Field Detail
+
+### owner
+
+```java
+public java.lang.Object owner
+```
+
+## Constructor Detail
+
+### PHXSection
+
+```java
+public PHXSection(java.lang.String name,
+ PHXBookmark start,
+ PHXBookmark end,
+ java.lang.String delimiters)
+```
+Creates a new instance of `PHXSection`
+
+## Method Detail
+
+### copy
+
+```java
+public PHXSection copy()
+```
+
+### getName
+
+```java
+public java.lang.String getName()
+```
+
+### setName
+
+```java
+public void setName(java.lang.String name)
+```
+
+### getStart
+
+```java
+public PHXBookmark getStart()
+```
+
+### setStart
+
+```java
+public void setStart(PHXBookmark start)
+```
+
+### getEnd
+
+```java
+public PHXBookmark getEnd()
+```
+
+### setEnd
+
+```java
+public void setEnd(PHXBookmark end)
+```
+
+### getDelimiters
+
+```java
+public java.lang.String getDelimiters()
+```
+
+### setDelimiters
+
+```java
+public void setDelimiters(java.lang.String delimiters)
+```
+
+### assertEquals
+
+```java
+public void assertEquals(PHXSection other)
+ throws java.lang.Exception
+```
+Test comparison function. If the two objects are not equal, an exception is thrown
+
+**Parameters:**
+- `other`- the data model to compare this to
+
+**Throws:**
+- `java.lang.Exception`- thrown if the data models do not match
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSectionNotFoundException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSectionNotFoundException.md
new file mode 100644
index 0000000000..0a51834152
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXSectionNotFoundException.md
@@ -0,0 +1,52 @@
+# Class: PHXSectionNotFoundException
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXSectionNotFoundException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXSectionNotFoundException
+extends java.lang.Exception
+```
+
+**See Also:**
+
+- [Serialized Form](../../../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXSectionNotFoundException(java.lang.String sectionName)` |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXSectionNotFoundException
+
+```java
+public PHXSectionNotFoundException(java.lang.String sectionName)
+```
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXVersionException.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXVersionException.md
new file mode 100644
index 0000000000..0fb2baeab2
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/PHXVersionException.md
@@ -0,0 +1,56 @@
+# Class: PHXVersionException
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Throwable
+ ↳ java.lang.Exception
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.PHXVersionException
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`
+
+---
+
+**Declaration**
+
+```java
+public class PHXVersionException
+extends java.lang.Exception
+```
+
+**See Also:**
+
+- [Serialized Form](../../../../../../serialized-form.md)
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `PHXVersionException(int requiredMajorVersion, int requiredMinorVersion, int foundMajorVersion, int foundMinorVersion)`
Creates a new instance of PHXVersionException |
+
+## Method Summary
+
+### Methods inherited from class java.lang.Throwable
+`addSuppressed`, `fillInStackTrace`, `getCause`, `getLocalizedMessage`, `getMessage`, `getStackTrace`, `getSuppressed`, `initCause`, `printStackTrace`, `setStackTrace`, `toString`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Constructor Detail
+
+### PHXVersionException
+
+```java
+public PHXVersionException(int requiredMajorVersion,
+ int requiredMinorVersion,
+ int foundMajorVersion,
+ int foundMinorVersion)
+```
+Creates a new instance of `PHXVersionException`
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.Mode.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.Mode.md
new file mode 100644
index 0000000000..bce8f24b3e
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.Mode.md
@@ -0,0 +1,134 @@
+# Enum: ParseableFile.Mode
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Enclosing interface:**
+
+- [`ParseableFile`](ParseableFile.md)
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.lang.Enum
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile.Mode
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`,
+- `java.lang.Comparable`
+
+---
+**Declaration**
+
+```java
+public static enum ParseableFile.Mode
+ extends java.lang.Enum
+```
+
+File mode. Moved to type-safe enum from legacy integer constants.
+
+## Enum Constant Summary
+
+| Enum Constant and Description |
+|-----------------------------|
+| `GENERATE` |
+| `PARSE` |
+| `READ_TEMPLATE` |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `static ParseableFile.Mode` | `fromCode(int code)`
Utility function for determining the enum from the legacy integer code |
+| `int` | `getCode()`
Retrieve the legacy integer code assigned to this mode |
+| `com.phoenix_int.aserver.trace.PHXTraceFileEvent.Type` | `getEventType()` |
+| `static ParseableFile.Mode` | `valueOf(java.lang.String name)`
Returns the enum constant of this type with the specified name. |
+| `static ParseableFile.Mode[]` | `values()`
Returns an array containing the constants of this enum type, in the order they are declared. |
+
+### Methods inherited from class java.lang.Enum
+
+`clone`, `compareTo`, `equals`, `finalize`, `getDeclaringClass`, `hashCode`, `name`, `ordinal`, `toString`, `valueOf`
+
+### Methods inherited from class java.lang.Object
+
+`getClass`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+## Enum Constant Detail
+
+### GENERATE
+```
+public static final ParseableFile.Mode GENERATE
+```
+
+### PARSE
+```
+public static final ParseableFile.Mode PARSE
+```
+
+### READ_TEMPLATE
+```
+public static final ParseableFile.Mode READ_TEMPLATE
+```
+## Method Detail
+
+### values
+
+```java
+public static ParseableFile.Mode[] values()
+```
+Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
+
+```java
+for (ParseableFile.Mode c : ParseableFile.Mode.values())
+ System.out.println(c);
+```
+
+**Returns:**
+- an array containing the constants of this enum type, in the order they are declared
+
+### valueOf
+
+```java
+public static ParseableFile.Mode valueOf(java.lang.String name)
+```
+Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+
+**Parameters:**
+- `name` - the name of the enum constant to be returned.
+
+**Returns:**
+- the enum constant with the specified name
+
+**Throws:**
+- `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
+- `java.lang.NullPointerException` - if the argument is null
+
+### getEventType
+
+```java
+public com.phoenix_int.aserver.trace.PHXTraceFileEvent.Type getEventType()
+```
+
+### getCode
+
+```java
+public int getCode()
+```
+Retrieve the legacy integer code assigned to this mode
+
+**Returns:**
+- code
+
+### fromCode
+
+```java
+public static ParseableFile.Mode fromCode(int code)
+```
+Utility function for determining the enum from the legacy integer code
+
+**Parameters:**
+- `code` -
+
+**Returns:**
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.md
new file mode 100644
index 0000000000..cf0cbcdc40
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/ParseableFile.md
@@ -0,0 +1,131 @@
+# Interface: ParseableFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**All Known Subinterfaces:**
+
+[`InputFile`](InputFile.md), [`OutputFile`](OutputFile.md)
+
+**All Known Implementing Classes:**
+
+[`AbstractFile`](AbstractFile.md), [`CAEOutputFile`](CAEOutputFile.md), [`PHXRowFieldFile`](PHXRowFieldFile.md), [`XPathFile`](XPathFile.md)
+
+---
+**Declaration:**
+```java
+public interface ParseableFile
+```
+
+Interface for files (not file variables) used in script wrappers
+
+## Nested Class Summary
+
+| Modifier and Type | Interface and Description |
+|-------------------|-------------------------|
+| `static class` | [`ParseableFile.Mode`](ParseableFile.Mode.md)
File mode. Moved to type-safe enum from legacy integer constants |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `backup()`
Backup the file on disk. |
+| `void` | `close()`
Close the file and free up resources |
+| `void` | `delete()`
Delete the file from disk. |
+| `void` | `readTemplate()`
Read the template. |
+| `void` | `setFileToGenerateOrParse(java.lang.String fileName)`
Set the file to generate or to parse, depending on the mode |
+| `void` | `setTempEmbedded(java.lang.String option)`
This method applies only to ModelCenter and has no function in ModelCenter Remote Execution |
+| `void` | `setTemplateFile(java.lang.String templateFileName)`
Set the template file to read. |
+| `void` | `setVariable(java.lang.String name, java.lang.String value)`
Sets the value of a variable |
+
+## Method Detail
+
+### backup
+
+```java
+void backup()
+```
+Backup the file on disk. File is at the same location with ".bac" appended to the end. If a file by that name already exists, it is deleted prior to moving.
+
+### close
+
+```java
+void close()
+```
+Close the file and free up resources
+
+### delete
+
+```java
+void delete()
+```
+Delete the file from disk.
+
+### readTemplate
+
+```java
+void readTemplate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException,
+ PHXBookmarkNotFoundException,
+ PHXSectionNotFoundException
+```
+Read the template. In MCRE 7.1, this method was changed to never throw any exceptions. Reading the templates allows you to fill in default values if you can, but is not mandatory.
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+- [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md)
+- [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md)
+
+### setFileToGenerateOrParse
+
+```java
+void setFileToGenerateOrParse(java.lang.String fileName)
+```
+Set the file to generate or to parse, depending on the mode
+
+**Parameters:**
+- `fileName` -
+
+### setTempEmbedded
+
+```java
+void setTempEmbedded(java.lang.String option)
+```
+This method applies only to ModelCenter and has no function in ModelCenter Remote Execution
+
+### setTemplateFile
+
+```java
+void setTemplateFile(java.lang.String templateFileName)
+```
+Set the template file to read. If the template file is not specified, it defaults to the file that is parsed or generated, for [`Mode.PARSE`](ParseableFile.Mode.md) or [`Mode.GENERATE`](ParseableFile.Mode.md), respectively.
+
+**Parameters:**
+- `templateFileName` - file name
+
+### setVariable
+
+```java
+void setVariable(java.lang.String name,
+ java.lang.String value)
+ throws PHXNoSuchObjectException
+```
+Sets the value of a variable
+
+**Parameters:**
+- `name` - variable name
+- `value` - variable value as a string
+
+**Throws:**
+
+- [`PHXNoSuchObjectException`](../../../PHXNoSuchObjectException.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/XPathFile.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/XPathFile.md
new file mode 100644
index 0000000000..f140a863d4
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/XPathFile.md
@@ -0,0 +1,327 @@
+# Class: XPathFile
+
+**Package:** `com.phoenix_int.aserver.util.scriptwrapper.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+ ↳ com.phoenix_int.aserver.util.scriptwrapper.api.XPathFile
+```
+
+**Implemented Interfaces**
+
+- [`InputFile`](InputFile.md), [`OutputFile`](OutputFile.md), [`OutputFile2`](OutputFile2.md), [`ParseableFile`](ParseableFile.md), `java.io.Closeable`, `java.lang.AutoCloseable`
+
+---
+**Declaration**
+
+```java
+public class XPathFile
+extends AbstractFile
+implements OutputFile, OutputFile2, InputFile
+```
+
+Represents an XML file (not a file variable) used in a script wrapper, with access to the XML node values via XPath statements
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.[ParseableFile](ParseableFile.md)
+ `ParseableFile.Mode`
+
+## Field Summary
+
+### Fields inherited from class com.phoenix_int.aserver.util.scriptwrapper.api.[AbstractFile](AbstractFile.md)
+`encoding`, `fileName`, `mode`, `parser`, `templateFileName`, `wrapper`
+
+## Constructor Summary
+
+| Constructor and Description |
+|---------------------|
+| `XPathFile(PHXScriptWrapperObject wrapper, ParseableFile.Mode mode)`
Constructs a new XPathFile |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `void` | `addVariable(java.lang.String name, java.lang.String type, boolean isInput, java.lang.String xpath)`
Add a variable to the wrapper. |
+| `void` | `generate()`
Generate the input file |
+| `com.phoenix_int.aserver.util.XPathParser` | `getParser()`
Get the XPath parser |
+| `protected com.phoenix_int.aserver.util.XPathParser` | `newParser(java.io.File file)`
Allow a sub-class to form a parser using custom options/features, such as handling DTD and entities |
+| `protected Parser` | `newParser(java.io.File rFile, Parser.Mode pmode)`
Generate a new parser for the given file and mode |
+| `void` | `parse()`
Parse the output file |
+| `void` | `setFileToGenerate(java.lang.String fileName)`
Set the file to be generated |
+| `void` | `setFileToParse(java.lang.String fileName)`
Set the file to be parsed |
+| `void` | `transferArray(PHXSimpleArray var, java.lang.String exp)`
Transfer an array of values, either from the file to the variable, or vice-versa, depending on ParseableFile.Mode |
+| `void` | `transferVar(IPHXType var, java.lang.String exp)`
Transfer a value, either from the file to the variable, or vice-versa, depending on ParseableFile.Mode |
+| `protected void` | `transferVars(ParseableFile.Mode mode)`
Transfer values for variables that have been defined using methods from the concrete implementation |
+
+### Methods inherited from class com.phoenix_int.aserver.util.scriptwrapper.api.AbstractFile
+
+`actionByMode`, `backup`, `close`, `delete`, `ensureFileParser`, `getEncoding`, `getRealFile`, `readTemplate`, `setEncoding`, `setEncoding`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+### Methods inherited from class java.lang.Object
+
+`clone`, `equals`, `finalize`, `getClass`, `hashCode`, `notify`, `notifyAll`, `toString`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface com.phoenix_int.aserver.util.scriptwrapper.api.ParseableFile
+
+`backup`, `close`, `delete`, `readTemplate`, `setFileToGenerateOrParse`, `setTempEmbedded`, `setTemplateFile`, `setVariable`
+
+## Constructor Detail
+
+### XPathFile
+
+```java
+public XPathFile(PHXScriptWrapperObject wrapper,
+ ParseableFile.Mode mode)
+```
+Construct a new XPathFile
+
+**Parameters:**
+
+- `wrapper` - script wrapper object
+- `mode` - parser mode
+
+## Method Detail
+
+### addVariable
+
+```java
+public void addVariable(java.lang.String name,
+ java.lang.String type,
+ boolean isInput,
+ java.lang.String xpath)
+ throws PHXNameAlreadyInUseException,
+ PHXInvalidNameException,
+ PHXInvalidTypeException
+```
+Add a variable to the wrapper. The transfer of variable values will be handled automatically during any call to `generate()`, `parse()`, or `AbstractFile.readTemplate()`.
+
+**Parameters:**
+
+- `name` - variable name
+- `type` - variable type
+- `isInput` - whether variable is an input
+- `xpath` - XPath expression
+
+**Throws:**
+
+- [`PHXNameAlreadyInUseException`](../../PHXNameAlreadyInUseException.md)
+- [`PHXInvalidNameException`](../../PHXInvalidNameException.md)
+- [`PHXInvalidTypeException`](../../../types/PHXInvalidTypeException.md)
+
+### newParser
+
+```java
+protected Parser newParser(java.io.File rFile,
+ Parser.Mode pmode)
+ throws java.io.IOException
+```
+Generate a new parser for the given file and mode
+
+**Specified by:**
+
+- `newParser` in class `AbstractFile`
+
+**Parameters:**
+
+- `rFile` - The file to open
+- `pmode` - caching mode for underlying parser
+
+**Throws:**
+
+- `java.io.IOException`
+
+### newParser
+
+```java
+protected com.phoenix_int.aserver.util.XPathParser newParser(java.io.File file)
+ throws java.io.IOException,
+ org.xml.sax.SAXException,
+ javax.xml.parsers.ParserConfigurationException
+```
+Allow a sub-class to form a parser using custom options/features, such as handling DTD and entities
+
+**Parameters:**
+
+- `file` -
+
+**Returns:**
+
+**Throws:**
+
+- `java.io.IOException`
+- `org.xml.sax.SAXException`
+- `javax.xml.parsers.ParserConfigurationException`
+
+### getParser
+
+```java
+public com.phoenix_int.aserver.util.XPathParser getParser()
+ throws java.io.IOException
+```
+Get the XPath parser
+
+**Returns:**
+
+**Throws:**
+
+- `java.io.IOException`
+
+### transferVars
+
+```java
+protected void transferVars(ParseableFile.Mode mode)
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Transfer values for variables that have been defined using methods from the concrete implementation, i.e.[PHXRowFieldFile.defineVar(String, String, boolean, String)](../../../../../../com/phoenix_int/aserver/util/scriptwrapper/api/PHXRowFieldFile.html#defineVar-java.lang.String-java.lang.String-boolean-java.lang.String-)
+
+Variables defined using[PHXScriptWrapperObject.addVariable(String, String, boolean)](../../../../../../com/phoenix_int/aserver/util/scriptwrapper/api/PHXScriptWrapperObject.html#addVariable-java.lang.String-java.lang.String-boolean-)must be explicitly transferred using methods of the concrete implementation class
+
+**Specified by:**
+
+- `transferVars` in class `AbstractFile`
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+
+### transferArray
+
+```java
+public void transferArray(PHXSimpleArray var,
+ java.lang.String exp)
+ throws PHXNoSuchTokenException,
+ java.io.IOException,
+ javax.xml.xpath.XPathExpressionException
+```
+Transfer an array of values, either from the file to the variable, or vice-versa, depending on `ParseableFile.Mode`
+
+**Parameters:**
+
+- `var` - array variable
+- `exp` - XPath expression
+
+**Throws:**
+
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.io.IOException`
+- `javax.xml.xpath.XPathExpressionException`
+
+### transferVar
+
+```java
+public void transferVar(IPHXType var,
+ java.lang.String exp)
+ throws javax.xml.xpath.XPathExpressionException,
+ PHXNoSuchTokenException,
+ java.io.IOException
+```
+Transfer a value, either from the file to the variable, or vice-versa, depending on `ParseableFile.Mode`
+
+**Parameters:**
+
+- `var` - variable
+- `exp` - XPath expression
+
+**Throws:**
+
+- `javax.xml.xpath.XPathExpressionException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.io.IOException`
+
+### parse
+
+```java
+public void parse()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Parse the output file
+
+**Specified by:**
+
+- `parse` in interface `OutputFile`
+- `parse` in interface `OutputFile2`
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+
+### setFileToParse
+
+```java
+public void setFileToParse(java.lang.String fileName)
+```
+Set the file to be parsed
+
+**Specified by:**
+
+- `setFileToParse` in interface `OutputFile`
+- `setFileToParse` in interface `OutputFile2`
+
+**Parameters:**
+
+- `fileName` - file name
+
+### generate
+
+```java
+public void generate()
+ throws java.io.IOException,
+ com.phoenix_int.aserver.util.PHXInvalidFormatException,
+ PHXNoSuchTokenException,
+ java.lang.IllegalAccessException,
+ java.lang.InstantiationException,
+ PHXNumberFormatException
+```
+Generate the input file
+
+**Specified by:**
+
+- `generate` in interface `InputFile`
+
+**Throws:**
+
+- `java.io.IOException`
+- `com.phoenix_int.aserver.util.PHXInvalidFormatException`
+- [`PHXNoSuchTokenException`](../../PHXNoSuchTokenException.md)
+- `java.lang.IllegalAccessException`
+- `java.lang.InstantiationException`
+- [`PHXNumberFormatException`](../../../types/PHXNumberFormatException.md)
+
+### setFileToGenerate
+
+```java
+public void setFileToGenerate(java.lang.String fileName)
+```
+Set the file to be generated
+
+**Specified by:**
+
+- `setFileToGenerate` in interface `InputFile`
+
+**Parameters:**
+
+- `fileName` - file name
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-summary.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-summary.md
new file mode 100644
index 0000000000..cded799b7d
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-summary.md
@@ -0,0 +1,44 @@
+# Package com.phoenix_int.aserver.util.scriptwrapper.api
+
+Provides utilities which are designed to make writing ScriptWrappers with FileWrapper-like capabilities.
+
+## Interface Summary
+| Interface | Description |
+| --- | --- |
+| [`InputFile`](InputFile.md) | Interface for input files (not file variables) used in script-wrappers |
+| [`IPHXRange`](IPHXRange.md) | |
+| [`IPHXRangeChangeListener`](IPHXRangeChangeListener.md) | |
+| [`OutputFile`](OutputFile.md) | Deprecated in favor of [`OutputFile2`](OutputFile2.md) |
+| [`OutputFile2`](OutputFile2.md) | Interface for output files (not file variables) used in script-wrappers |
+| [`ParseableFile`](ParseableFile.md) | Interface for files (not file variables) used in script wrappers |
+
+## Class Summary
+| Class | Description |
+| --- | --- |
+| [`AbstractFile`](AbstractFile.md) | Common implementation for files (not file variables) used in script wrappers. |
+| [`CAEOutputFile`](CAEOutputFile.md) | This represents a binary output file from a CAE program such as NASTRAN or LSDyna. |
+| [`PHXBookmark`](PHXBookmark.md) | |
+| [`PHXCAERange`](PHXCAERange.md) | |
+| [`PHXRowFieldFile`](PHXRowFieldFile.md) | Class implements the parsing capabilities of the RowField type files from the fileWrapper facility. |
+| [`PHXRowFieldRange`](PHXRowFieldRange.md) | |
+| [`PHXRunShareContext`](PHXRunShareContext.md) | This class handles runshare capabilities for any component which needs it. |
+| [`PHXScriptWrapperObject`](PHXScriptWrapperObject.md) | This object is passed to Script Wrapper scripts and provides the "wrapper" global object which provides runtime services for the wrapper. |
+| [`PHXSection`](PHXSection.md) | |
+| [`XPathFile`](XPathFile.md) | Represents an XML file (not a file variable) used in a script wrapper, with access to the XML node values via XPath statements |
+
+## Enum Summary
+| Enum | Description |
+| --- | --- |
+| [`ParseableFile.Mode`](ParseableFile.Mode.md) | File mode
+ Moved to type-safe enum from legacy integer constants |
+
+ ## Exception Summary
+| Exception | Description |
+| --- | --- |
+| [`PHXBookmarkNotFoundException`](PHXBookmarkNotFoundException.md) | |
+| [`PHXScriptWrapperAPIException`](PHXScriptWrapperAPIException.md) | Represents a problem with transferring data in a [`PHXRowFieldFile`](PHXRowFieldFile.md) object. |
+| [`PHXSectionNotFoundException`](PHXSectionNotFoundException.md) | |
+| [`PHXVersionException`](PHXVersionException.md) | |
+
+## Package com.phoenix_int.aserver.util.scriptwrapper.api Description
+Provides utilities which are designed to make writing ScriptWrappers with FileWrapper-like capabilities. These classes may also be used from Java Components.
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-tree.md b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-tree.md
new file mode 100644
index 0000000000..c0f69460fb
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/aserver/util/scriptwrapper/api/package-tree.md
@@ -0,0 +1,39 @@
+# Hierarchy For Package com.phoenix_int.aserver.util.scriptwrapper.api
+**Package Hierarchies:**
+- [All Packages](../../../../../../overview-tree.md)
+
+## Class Hierarchy
+
+- java.lang.Object
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[AbstractFile](AbstractFile.md) (implements java.io.Closeable, com.phoenix_int.aserver.util.scriptwrapper.api.[ParseableFile](ParseableFile.md))
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[CAEOutputFile](CAEOutputFile.md) (implements com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile2](OutputFile2.md))
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXRowFieldFile](PHXRowFieldFile.md) (implements com.phoenix_int.aserver.util.scriptwrapper.api.[InputFile](InputFile.md), com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile](OutputFile.md), com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile2](OutputFile2.md))
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[XPathFile](XPathFile.md) (implements com.phoenix_int.aserver.util.scriptwrapper.api.[InputFile](InputFile.md), com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile](OutputFile.md), com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile2](OutputFile2.md))
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXBookmark](PHXBookmark.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXCAERange](PHXCAERange.md) (implements com.phoenix_int.aserver.util.scriptwrapper.api.[IPHXRange](IPHXRange.md))
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXRowFieldRange](PHXRowFieldRange.md) (implements com.phoenix_int.aserver.util.scriptwrapper.api.[IPHXRange](IPHXRange.md))
+ - com.phoenix_int.aserver.[PHXRunShare](../../../PHXRunShare.md) (implements com.phoenix_int.aserver.[IPHXMonitorable](../../../IPHXMonitorable.md), com.phoenix_int.aserver.trace.IPHXTraceGenerator)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXRunShareContext](PHXRunShareContext.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXScriptWrapperObject](PHXScriptWrapperObject.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXSection](PHXSection.md) (implements java.lang.Cloneable)
+ - java.lang.Throwable (implements java.io.Serializable)
+ - java.lang.Exception
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXBookmarkNotFoundException](PHXBookmarkNotFoundException.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXScriptWrapperAPIException](PHXScriptWrapperAPIException.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXSectionNotFoundException](PHXSectionNotFoundException.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[PHXVersionException](PHXVersionException.md)
+
+## Interface Hierarchy
+
+- com.phoenix_int.aserver.util.scriptwrapper.api.[IPHXRange](IPHXRange.md)
+- com.phoenix_int.aserver.util.scriptwrapper.api.[IPHXRangeChangeListener](IPHXRangeChangeListener.md)
+- com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile2](OutputFile2.md)
+- com.phoenix_int.aserver.util.scriptwrapper.api.[ParseableFile](ParseableFile.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[InputFile](InputFile.md)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[OutputFile](OutputFile.md)
+
+## Enum Hierarchy
+
+- java.lang.Object
+ - java.lang.Enum`` (implements java.lang.Comparable``, java.io.Serializable)
+ - com.phoenix_int.aserver.util.scriptwrapper.api.[ParseableFile.Mode](ParseableFile.Mode.md)
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/Environment.md b/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/Environment.md
new file mode 100644
index 0000000000..2c8bc5788d
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/Environment.md
@@ -0,0 +1,126 @@
+# Class: Environment
+
+**Package:** `com.phoenix_int.pacz.api`
+
+**Class Hierarchy**
+
+```
+↳ java.lang.Object
+ ↳ java.util.AbstractMap
+ ↳ java.util.HashMap
+ ↳ com.phoenix_int.pacz.api.Environment
+```
+
+**Implemented Interfaces**
+
+- `java.io.Serializable`, `java.lang.Cloneable`, `java.util.Map`
+
+---
+**Deprecated:** see [`com.phoenix_int.pacz.api.v2.Environment`](v2/Environment.md)
+
+```java
+@Deprecated
+public class Environment
+extends java.util.HashMap
+```
+
+Environment variables for component configuration
+
+## Nested Class Summary
+
+### Nested classes/interfaces inherited from class java.util.AbstractMap
+`java.util.AbstractMap.SimpleEntry`, `java.util.AbstractMap.SimpleImmutableEntry`
+
+### Nested classes/interfaces inherited from interface java.util.Map
+`java.util.Map.Entry`
+
+## Field Summary
+
+| Modifier and Type | Field and Description |
+|-------------------|----------------------|
+| `static java.lang.String` | `COMPONENT_DIR`
**Deprecated.** Pre-defined component directory environment variable |
+
+## Constructor Summary
+
+| Constructor and Description |
+|----------------------------|
+| `Environment()`
**Deprecated.** Constructor |
+| `Environment(java.util.Map dictionary)`
**Deprecated.** Copy constructor |
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.String` | `evaluateKey(java.lang.String key)`
**Deprecated.** Get the value for the specified environment variable |
+| `java.lang.String` | `evaluateString(java.lang.String str)`
**Deprecated.** Substitute environment variables in specified string with corresponding environment values |
+
+### Methods inherited from class java.util.HashMap
+`clear`, `clone`, `compute`, `computeIfAbsent`, `computeIfPresent`, `containsKey`, `containsValue`, `entrySet`, `forEach`, `get`, `getOrDefault`, `isEmpty`, `keySet`, `merge`, `put`, `putAll`, `putIfAbsent`, `remove`, `remove`, `replace`, `replace`, `replaceAll`, `size`, `values`
+
+### Methods inherited from class java.util.AbstractMap
+`equals`, `hashCode`, `toString`
+
+### Methods inherited from class java.lang.Object
+`finalize`, `getClass`, `notify`, `notifyAll`, `wait`, `wait`, `wait`
+
+### Methods inherited from interface java.util.Map
+`equals`, `hashCode`
+
+## Field Detail
+
+### COMPONENT_DIR
+
+```java
+public static final java.lang.String COMPONENT_DIR
+```
+**Deprecated.** Pre-defined component directory environment variable
+
+**See Also:**
+- [Constant Field Values](../../../../constant-values.md)
+
+## Constructor Detail
+
+### Environment
+
+```java
+public Environment()
+```
+**Deprecated.** Constructor
+
+### Environment
+
+```java
+public Environment(java.util.Map dictionary)
+```
+**Deprecated.** Copy constructor
+
+**Parameters:**
+- `dictionary` - dictionary to copy; if null, an empty map will be used
+
+## Method Detail
+
+### evaluateString
+
+```java
+public java.lang.String evaluateString(java.lang.String str)
+```
+**Deprecated.** Substitute environment variables in specified string with corresponding environment values
+
+**Parameters:**
+- `str` - string on which to perform substitutions
+
+**Returns:**
+- string with substituted environment values
+
+### evaluateKey
+
+```java
+public java.lang.String evaluateKey(java.lang.String key)
+```
+**Deprecated.** Get the value for the specified environment variable
+
+**Parameters:**
+- `key` - environment variable for which to get value
+
+**Returns:**
+- value of environment variable; null if not found
\ No newline at end of file
diff --git a/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/IComponentConfig.md b/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/IComponentConfig.md
new file mode 100644
index 0000000000..52bbdb40f2
--- /dev/null
+++ b/2025R2/modelCenter_java_api/com/phoenix_int/pacz/api/IComponentConfig.md
@@ -0,0 +1,260 @@
+# Interface: IComponentConfig
+
+**Package:** `com.phoenix_int.pacz.api`
+
+---
+**Deprecated:** see [`com.phoenix_int.pacz.api.v2.IComponentConfig`](v2/IComponentConfig.md)
+
+```java
+@Deprecated
+public interface IComponentConfig
+```
+
+Configuration for PACZ file
+
+## Method Summary
+
+| Modifier and Type | Method and Description |
+|-------------------|----------------------|
+| `java.lang.Object` | `getAdditionalConfigValue(java.lang.String valueName)`
**Deprecated.** Get additional configuration value based on specified value name. |
+| `java.util.Map` | `getAdditionalConfigValues()`
**Deprecated.** Get additional configuration values as key-value pair map |
+| `java.lang.String` | `getASComponent()`
**Deprecated.** Get ModelCenter Remote Execution component name |
+| `java.util.List` | `getCommandLineArguments()`
**Deprecated.** Get command line arguments to be passed to component executable |
+| `java.lang.String` | `getDescription()`
**Deprecated.** Get component description |
+| `Environment` | `getEnvironment()`
**Deprecated.** Get component environment |
+| `java.lang.String` | `getExecutable()`
**Deprecated.** Get name of component executable |
+| `java.net.URI` | `getHelpUri()`
**Deprecated.** Get URI of help to use for component |
+| `java.net.URI` | `getIconUri()`
**Deprecated.** Get URI of icon to use for component |
+| `java.util.List` | `getInputs()`
**Deprecated.** Get component inputs |
+| `java.util.List` | `getInstanceFiles()`
**Deprecated.** Get component instance files |
+| `java.util.List` | `getOutputs()`
**Deprecated.** Get component outputs |
+| `java.util.Map` | `getProperties()`
**Deprecated.** Get additional component properties |
+| `java.util.List` | `getRequiredFeatures()`
**Deprecated.** Get list of features required for component to execute |
+| `RunFolderPreference` | `getRunFolderPreference()`
**Deprecated.** Get run folder preference for component |
+| `java.lang.String` | `getVersion()`
**Deprecated.** Get component version |
+| `void` | `setAdditionalConfigValue(java.lang.String valueName, java.lang.Object value)`
**Deprecated.** Set additional configuration value key-value pair in map. |
+| `void` | `setDescription(java.lang.String description)`
**Deprecated.** Set component description |
+| `void` | `setRequiredFeatures(java.util.List requiredFeatures)`
**Deprecated.** Set list features required for component to execute |
+| `void` | `setVersion(java.lang.String version)`
**Deprecated.** Set component version |
+
+## Method Detail
+
+### getEnvironment
+
+```java
+Environment getEnvironment()
+```
+**Deprecated.** Get component environment
+
+**Returns:**
+- component environment
+
+**See Also:**
+- [Environment](Environment.md)
+
+### getRunFolderPreference
+
+```java
+RunFolderPreference getRunFolderPreference()
+```
+**Deprecated.** Get run folder preference for component
+
+**Returns:**
+- component run folder preference
+
+**See Also:**
+- [RunFolderPreference](RunFolderPreference.md)
+
+### getVersion
+
+```java
+java.lang.String getVersion()
+```
+**Deprecated.** Get component version
+
+**Returns:**
+- component version
+
+### setVersion
+
+```java
+void setVersion(java.lang.String version)
+```
+**Deprecated.** Set component version
+
+**Parameters:**
+- `version` - component version to use; if null, an empty version will be used
+
+### getDescription
+
+```java
+java.lang.String getDescription()
+```
+**Deprecated.** Get component description
+
+**Returns:**
+- component description
+
+### setDescription
+
+```java
+void setDescription(java.lang.String description)
+```
+**Deprecated.** Set component description
+
+**Parameters:**
+- `description` - component description to use; if null, an empty description will be used
+
+### getRequiredFeatures
+
+```java
+java.util.List getRequiredFeatures()
+```
+**Deprecated.** Get list of features required for component to execute
+
+**Returns:**
+- list of required features
+
+### setRequiredFeatures
+
+```java
+void setRequiredFeatures(java.util.List