# NodeInputReader

The `NodeInputReader` class provides methods to retrieve node input in various formats, such as Files, Tables, and Data objects.

### Methods

#### `inputAsFile(): File`

Gets the node input as a File object.

```typescript
var fileInput = NodeInputReader.inputAsFile();
// Use the 'fileInput' File object in your code
```

#### `inputAsDataFrame(page: Integer, limit: Integer): Table`

Gets the node input as a Table object that can be queried and read. This method is useful for working with data in a tabular format.

**Parameters**

* `page` (Integer): The page number for data pagination.
* `limit` (Integer): The maximum number of rows to retrieve.

```typescript
var page = 1;
var limit = 10;
var tableInput = NodeInputReader.inputAsDataFrame(page, limit);
// Use the 'tableInput' Table object in your code
```

#### `inputAsDataObject(): JsonNode`

Gets the node input as a Data object that can be read.

```typescript
var dataObject = NodeInputReader.inputAsDataObject();
// Use the 'dataObject' JsonNode in your code
```

#### `inputAsFileIndex(index: Integer): File`

Gets the node input as a File object by an index. This is used when there are multiple inputs.

**Parameters**

* `index` (Integer): The index of the input.

```typescript
var inputIndex = 0;
var fileInput = NodeInputReader.inputAsFileIndex(inputIndex);
// Use the 'fileInput' File object in your code
```

#### `inputAsDataFrameIndex(index: Integer, page: Integer, limit: Integer): Table`

Gets the node input as a Table object by an index and allows for pagination when working with large datasets. This is used when there are multiple inputs.

**Parameters**

* `index` (Integer): The index of the input.
* `page` (Integer): The page number for data pagination.
* `limit` (Integer): The maximum number of rows to retrieve.

```typescript
var inputIndex = 0;
var page = 1;
var limit = 10;
var tableInput = NodeInputReader.inputAsDataFrameIndex(inputIndex, page, limit);
// Use the 'tableInput' Table object in your code
```

#### `inputAsDataFrameTotalRows(index: Integer): Integer`

Gets the number of parts the DataFrame has by index.

**Parameters**

* `index` (Integer): The index of the input.

```typescript
var inputIndex = 0;
var totalRows = NodeInputReader.inputAsDataFrameTotalRows(inputIndex);
// Use the 'totalRows' Integer in your code
```

#### `inputAsDataFrameTotalRows(): Integer`

Gets the number of parts the DataFrame has.

```typescript
var totalRows = NodeInputReader.inputAsDataFrameTotalRows();
// Use the 'totalRows' Integer in your code
```

#### `inputAsDataFrameByIndexPartsCount(index: Integer): Integer`

Gets the number of parts the DataFrame has by DataFrame index.

**Parameters**

* `index` (Integer): The index of the DataFrame.

```typescript
var inputIndex = 0;
var partsCount = NodeInputReader.inputAsDataFrameByIndexPartsCount(inputIndex);
// Use the 'partsCount' Integer in your code
```

#### `inputAsDataFrame(): Table` (Deprecated)

Gets the table object. This method is deprecated and should not be used. Instead, use `inputAsDataFrameIndex()` with page and limit for more controlled data retrieval.

### **Examples**

**Example: Get Columns Max Value**

**Description:** This script retrieves the maximum value from the 6th column of an input table.

**Use Case:** Useful when you need to find the highest value in a specific column of a dataset.

```javascript
// Get a copy of the table reference from the previous node
var table = NodeInputReader.inputAsDataFrame(0);

//Get a new table sorted by the sixth column descendant (-6 means desc, 6 means asc)
table = table.sortOn(-6);

//Get the values of the 6th column from the first row (Index 0)
var maxValue = table.column(6).get(0);
```

**Example: New Table Filtered**

**Description:** This script filters a table based on a condition, creating a new table with filtered data.

**Use Case:** Ideal for data preprocessing and filtering based on specific criteria.

```javascript
//Get a copy of the table reference from the previous node
var table = NodeInputReader.inputAsDataFrame()

//Gets the 4th column as String
var stringColumn = table.stringColumn(4);

//Return a new table with only value: female filtered
return table.where(stringColumn.endsWith("female"));
```
