[Canonical page](<https://docs.dhtmlx.com/planning-engine/java/api/support/overview/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# support

These are the helper types the rest of the API is built on. You rarely create them on purpose, but they show up in field types and signatures. [`ValueRecord`](<https://docs.dhtmlx.com/planning-engine/java/api/support/value-record.md>) is the base class of every record. It gives a shallow `copy()`, structural `equals` and `hashCode` over the public fields, and a `Type{field=value, …}` `toString()`. [`Vec<T>`](<https://docs.dhtmlx.com/planning-engine/java/api/support/vec.md>) is an `ArrayList<T>` subclass and the type of every list field. Plain `List` methods are enough to work with it, and setters that take a `Vec` also accept any `java.util.Collection`.

[`SortedDict<K, V>`](<https://docs.dhtmlx.com/planning-engine/java/api/support/sorted-dict.md>) is a `TreeMap<K, V>` subclass. You meet it as the date exceptions in [`Worktime.dates`](<https://docs.dhtmlx.com/planning-engine/java/api/data/worktime.md>). [`Ref<T>`](<https://docs.dhtmlx.com/planning-engine/java/api/support/ref.md>) holds one mutable `value` and works as the out parameter of [`Patch#tryGetValue`](<https://docs.dhtmlx.com/planning-engine/java/api/changes/patch.md>). Every type here is in the `org.dhtmlx.plen` package.

:::category-index
:::
