# PortData

**Kind:** Class

**Source:** `Pams/Web/Pams.Web/Client/app/models/shared/files-port.model.ts` (line 2)

**Part of:** [Pams](subsystem-pams)

`PortData` represents file-port data in the shared client model layer. Its `clone()` method creates a separate `PortData` instance for workflows that need to copy file-port state without directly reusing the original object.

## Methods

| Method | Signature | Returns |
|---|---|---|
| `clone` | `clone(init: Partial<PortData>)` | `void` |

## Properties

| Property | Type |
|---|---|
| `IsOpened` | `boolean` |
| `ClientSerial` | `number` |
| `ExcuteFileSide` | `boolean` |
| `RefrenceTypeID` | `number` |
| `RefrenceID` | `number` |

## Diagram

```mermaid
graph LR
  Source[PortData instance] --> Clone[clone()]
  Clone --> Copy[Copied PortData instance]
  Source --> FilePortModel[files-port.model.ts]
```

## Usage

```ts
import { PortData } from './models/shared/files-port.model';

// Obtain a PortData instance from the file-port workflow.
declare const sourcePortData: PortData;

// Create a copy before passing data to another operation.
const copiedPortData = sourcePortData.clone();

// Keep the original available for the current workflow.
processPortData(copiedPortData);

function processPortData(portData: PortData): void {
  // Handle the copied file-port data.
}
```

## AI Coding Instructions

- Use `clone()` when a workflow needs a copied `PortData` instance rather than sharing the existing instance.
- Keep `PortData` handling within the shared file-port model flow defined by `files-port.model.ts`.
- Check the `clone()` implementation before relying on whether nested values are copied or retained by reference.
- Preserve the `PortData` type when passing copied data between client components and services.

## Relationships

- IMPORTS → `File`

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Imported by (1)

- `FilesPortService` — `Pams/Web/Pams.Web/Client/app/services/shared/files-port-service.service.ts`:1
