# PortData

**Kind:** Class

**Source:** `Frontend/src/app/models/shared/files-port.model.ts` (line 2)

**Part of:** [Frontend](subsystem-frontend-src-app)

`PortData` represents port-related data used by the shared file-port model layer. Its `clone()` method creates a copy of a `PortData` instance for workflows that need to preserve the original object while working with a separate instance.

## 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
  A[PortData instance] --> B[clone()]
  B --> C[Copied PortData instance]
  C --> D[File and port workflow]
```

## Usage

```ts
function preparePortUpdate(portData: PortData): PortData {
  const updatedPortData = portData.clone();

  // Apply changes to updatedPortData as needed.
  return updatedPortData;
}
```

## AI Coding Instructions

- Use `clone()` before changing a `PortData` instance when the original value must remain available.
- Keep `PortData` handling within the shared file-port model flow rather than duplicating port-data structures elsewhere.
- Check the implementation of `clone()` before assuming how nested object references are copied.
- Preserve the `PortData` type when passing cloned data between file and port-related components.

## 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` — `Frontend/src/app/services/shared/files-port-service.service.ts`:1
