<!-- Auto-generated — do not edit by hand -->
# Java Interop Reference for PTC-Lisp

> **Warning:** This file is auto-generated by `mix ptc.gen_docs` from `priv/functions.exs`.
> Manual edits will be overwritten. Edit `priv/functions.exs` instead.

PTC-Lisp emulates a subset of Java interop for LLM compatibility. These are **not** real JVM calls — they are BEAM-native implementations that mirror the Java API surface LLMs are trained on.

14 interop entries across 6 classes.

See also: [Function Reference](function-reference.md) | [PTC-Lisp Specification](ptc-lisp-specification.md)

### java.lang.Double

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `Double/NEGATIVE_INFINITY` | Constant | `Double/NEGATIVE_INFINITY, NEGATIVE_INFINITY` | Negative infinity constant (##-Inf) |  |
| `Double/NaN` | Constant | `Double/NaN, NaN` | Not-a-Number constant (##NaN) |  |
| `Double/POSITIVE_INFINITY` | Constant | `Double/POSITIVE_INFINITY, POSITIVE_INFINITY` | Positive infinity constant (##Inf) |  |


### java.lang.String

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `.contains` | Method | `(.contains s substr)` | Returns true if string contains substring |  |
| `.indexOf` | Method | `(.indexOf s substr), (.indexOf s substr from-index)` | Index of first occurrence of substring, or -1 if not found | Uses grapheme indices (not byte offsets). |
| `.lastIndexOf` | Method | `(.lastIndexOf s substr)` | Index of last occurrence of substring, or -1 if not found | Uses grapheme indices (not byte offsets). |
| `.toLowerCase` | Method | `(.toLowerCase s)` | Convert string to lower case |  |
| `.toUpperCase` | Method | `(.toUpperCase s)` | Convert string to upper case |  |


### java.lang.System

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `System/currentTimeMillis` | Static | `(System/currentTimeMillis), (currentTimeMillis)` | Return current time in milliseconds since Unix epoch |  |


### java.time.LocalDate

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `LocalDate/parse` | Static | `(LocalDate/parse date-string)` | Parse ISO-8601 date string (YYYY-MM-DD) to Date | Returns Elixir Date. Only supports ISO-8601 YYYY-MM-DD format. |


### java.time.LocalDate / java.util.Date

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `.isAfter` | Method | `(.isAfter a b)` | Returns true if receiver comes strictly after argument (same-type only) | Works on both LocalDate and DateTime. Mixed types raise an error. |
| `.isBefore` | Method | `(.isBefore a b)` | Returns true if receiver comes strictly before argument (same-type only) | Works on both LocalDate and DateTime. Mixed types raise an error. |


### java.util.Date

| Name | Kind | Signature | Description | Notes |
|------|------|-----------|-------------|-------|
| `.getTime` | Method | `(.getTime date)` | Return Unix timestamp in milliseconds from DateTime |  |
| `java.util.Date.` | Constructor | `(java.util.Date.), (java.util.Date. timestamp-or-string)` | Construct current UTC time or from timestamp/ISO-8601/RFC-2822 string | Returns Elixir DateTime. Accepts integer (seconds or ms auto-detected), ISO-8601, RFC 2822. |

