# Parameter

## Content

<div class="docapp-java-api-doc-main"><style>:not(h1, h2, h3, h4, h5, h6)>code,
:not(h1, h2, h3, h4, h5, h6)>tt {
    font-size: 14px;
    padding-top: 4px;
    margin-top: 8px;
    line-height: 1.4em;
}

.summary-table dt code {
    font-size: 14px;
    vertical-align: top;
    padding-top: 4px;
}

.tab {
    background-color: #0066FF;
    color: #ffffff;
    padding: 8px;
    width: 5em;
    font-weight: bold;
}

/*
 * Styles for page header and footer.
 */
.title {
    color: #2c4557;
    margin: 10px 0;
}

.sub-title {
    margin: 5px 0 0 0;
}

.header ul {
    margin: 0 0 15px 0;
    padding: 0;
}

.header ul li,
.footer ul li {
    list-style: none;
}

/*
 * Styles for headings.
 */
.summary h2,
.details h2,
h2,
.block-list h2 {
    padding: 0;
    margin: 15px 0;
}

.summary h3,
.details h3,
.summary .inherited-list h2 {
    background-color: var(--ds-product-color);
    color: #fff;
    border: 1px solid #d0d9e0;
    padding: 7px 5px;
}

.summary h3 a,
.details h3 a,
.summary .inherited-list h2 a {
    color: #fff !important;
}
/*
 * Styles for page layout containers.
 */
dl.notes>dt {
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0 0;
    color: #4E4E4E;
}

dl.notes>dd {
    margin: 5px 10px 10px 0;
    font-size: 14px;
}

dl.name-value>dt {
    margin-left: 1px;
    font-size: 1.1em;
    display: inline;
    font-weight: bold;
}

dl.name-value>dd {
    margin: 0 0 0 1px;
    font-size: 1.1em;
    display: inline;
}

/*
 * Styles for lists.
 */
li.circle {
    list-style: circle;
}

ul.horizontal li {
    display: inline;
    font-size: 0.9em;
}

div.inheritance {
    margin: 0;
    padding: 0;
}

div.inheritance div.inheritance {
    margin-left: 2em;
}

ul.block-list,
ul.details-list,
ul.member-list,
ul.summary-list {
    margin: 10px 0 10px 0;
    padding: 0;
}

ul.block-list>li,
ul.details-list>li,
ul.member-list>li,
ul.summary-list>li {
    list-style: none;
    margin-bottom: 15px;
    line-height: 1.4;
}

.summary-table dl,
.summary-table dl dt,
.summary-table dl dd {
    margin-top: 0;
    margin-bottom: 1px;
}

ul.see-list,
ul.see-list-long {
    padding-left: 0;
    list-style: none;
}

ul.see-list li {
    display: inline;
}

ul.see-list li:not(:last-child):after,
ul.see-list-long li:not(:last-child):after {
    content: ", ";
    white-space: pre-wrap;
}

/*
 * Styles for tables.
 */
.summary-table,
.details-table {
    width: 100%;
    border-spacing: 0;
    border-left: 1px solid #EEE;
    border-right: 1px solid #EEE;
    border-bottom: 1px solid #EEE;
    padding: 0;
}

.caption {
    position: relative;
    text-align: left;
    background-repeat: no-repeat;
    color: #253441;
    font-weight: bold;
    clear: none;
    overflow: hidden;
    padding: 0;
    padding-top: 10px;
    padding-left: 1px;
    margin: 0;
    white-space: pre;
}

.caption a:link,
.caption a:visited {
    color: #1f389c;
}

.caption a:hover,
.caption a:active {
    color: #FFFFFF;
}

.caption span {
    white-space: nowrap;
    padding-top: 5px;
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 7px;
    display: inline-block;
    background-color: var(--ds-product-color);
    color: #fff;
    border: none;
}

div.table-tabs {
    padding: 10px 0 0 1px;
    margin: 0;
}

div.table-tabs>button {
    border: none;
    cursor: pointer;
    padding: 5px 12px 7px 12px;
    font-weight: bold;
    margin-right: 3px;
}

div.table-tabs>button.active-table-tab {
    background: var(--ds-product-color);
    color: #fff;
}

div.table-tabs>button.table-tab {
    background: var(--ds-product-color);
    color: #FFFFFF;
    border-bottom: 1px solid #eee;
}

.two-column-summary {
    display: grid;
    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
}

.three-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
}

.four-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
}

@media screen and (max-width: 600px) {
    .two-column-summary {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 800px) {
    .three-column-summary {
        display: grid;
        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    }

    .three-column-summary .col-last {
        grid-column-end: span 2;
    }
}

@media screen and (max-width: 1000px) {
    .four-column-summary {
        display: grid;
        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    }
}

.summary-table>div,
.details-table>div {
    text-align: left;
    padding: 8px 3px 3px 7px;
}

.col-first,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name {
    vertical-align: top;
    padding-right: 0;
    padding-top: 8px;
    padding-bottom: 3px;
}

.table-header {
    background: var(--ds-product-color);
    color: #fff;
    font-weight: bold;
}

.col-first,
.col-first {
    font-size: 13px;
}

.col-second,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name,
.col-last {
    font-size: 13px;
}

.col-first,
.col-second,
.col-constructor-name {
    vertical-align: top;
    overflow: auto;
}

.col-last {
    white-space: normal;
}

.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-constructor-name a:link,
.col-constructor-name a:visited,
.col-summary-item-name a:link,
.col-summary-item-name a:visited,
.constant-values-container a:link,
.constant-values-container a:visited,
.all-classes-container a:link,
.all-classes-container a:visited,
.all-packages-container a:link,
.all-packages-container a:visited {
    font-weight: bold;
}

.table-sub-heading-color {
    background-color: #EEEEFF;
}

.even-row-color,
.even-row-color .table-header {
    background-color: #FFFFFF;
}

.odd-row-color,
.odd-row-color .table-header {
    background-color: #EEEEEF;
}

/*
 * Styles for contents.
 */
.deprecated-content {
    margin: 0;
    padding: 10px 0;
}

div.block {
    font-size: 14px;
}

.col-last div {
    padding-top: 0;
}

.col-last a {
    padding-bottom: 3px;
}

.module-signature,
.package-signature,
.type-signature,
.member-signature {
    font-size: 14px;
    margin: 14px 0;
    white-space: pre-wrap;
}

.module-signature,
.package-signature,
.type-signature {
    margin-top: 0;
}

.member-signature .type-parameters-long,
.member-signature .parameters,
.member-signature .exceptions {
    display: inline-block;
    vertical-align: top;
    white-space: pre;
}

.member-signature .type-parameters {
    white-space: normal;
}

/*
 * Styles for formatting effect.
 */
.source-line-no {
    color: green;
    padding: 0 30px 0 0;
}

h1.hidden {
    visibility: hidden;
    overflow: hidden;
    font-size: 10px;
}

.block {
    display: block;
    margin: 0 10px 5px 0;
    color: #474747;
}

.deprecated-label,
.descfrm-type-label,
.implementation-label,
.member-name-label,
.member-name-link,
.module-label-in-package,
.module-label-in-type,
.override-specify-label,
.package-label-in-type,
.package-hierarchy-label,
.type-name-label,
.type-name-link,
.search-tag-link,
.preview-label {
    font-weight: bold;
}

.deprecation-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

.preview-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

/*
 * Styles for user-provided tables.
 *
 * borderless:
 *      No borders, vertical margins, styled caption.
 *      This style is provided for use with existing doc comments.
 *      In general, borderless tables should not be used for layout purposes.
 *
 * plain:
 *      Plain borders around table and cells, vertical margins, styled caption.
 *      Best for small tables or for complex tables for tables with cells that span
 *      rows and columns, when the "striped" style does not work well.
 *
 * striped:
 *      Borders around the table and vertical borders between cells, striped rows,
 *      vertical margins, styled caption.
 *      Best for tables that have a header row, and a body containing a series of simple rows.
 */

table.borderless,
table.plain,
table.striped {
    margin-top: 10px;
    margin-bottom: 10px;
}

table.borderless>caption,
table.plain>caption,
table.striped>caption {
    font-weight: bold;
    font-size: smaller;
}

table.borderless th,
table.borderless td,
table.plain th,
table.plain td,
table.striped th,
table.striped td {
    padding: 2px 5px;
}

table.borderless,
table.borderless>thead>tr>th,
table.borderless>tbody>tr>th,
table.borderless>tr>th,
table.borderless>thead>tr>td,
table.borderless>tbody>tr>td,
table.borderless>tr>td {
    border: none;
}

table.borderless>thead>tr,
table.borderless>tbody>tr,
table.borderless>tr {
    background-color: transparent;
}

table.plain {
    border-collapse: collapse;
    border: 1px solid black;
}

table.plain>thead>tr,
table.plain>tbody tr,
table.plain>tr {
    background-color: transparent;
}

table.plain>thead>tr>th,
table.plain>tbody>tr>th,
table.plain>tr>th,
table.plain>thead>tr>td,
table.plain>tbody>tr>td,
table.plain>tr>td {
    border: 1px solid black;
}

table.striped {
    border-collapse: collapse;
    border: 1px solid black;
}

table.striped>thead {
    background-color: #E3E3E3;
}

table.striped>thead>tr>th,
table.striped>thead>tr>td {
    border: 1px solid black;
}

table.striped>tbody>tr:nth-child(even) {
    background-color: #EEE
}

table.striped>tbody>tr:nth-child(odd) {
    background-color: #FFF
}

table.striped>tbody>tr>th,
table.striped>tbody>tr>td {
    border-left: 1px solid black;
    border-right: 1px solid black;
}

table.striped>tbody>tr>th {
    font-weight: normal;
}
</style><h1>Class Parameter</h1>
<!-- ======== START OF CLASS DATA ======== -->

<div class="inheritance" title="Inheritance Tree"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</a>
<div class="inheritance">com.grapecity.documents.excel.Parameter</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Parameter</span>
<span class="extends-implements">extends <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></span></div>
<div class="block">Represents a parameter definition for a custom function. <p>A  <code>Parameter</code> describes the metadata for one function argument, including its name, description,  <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel"><code>value type</code></a>, default value, and whether  the argument can accept references or custom objects. Use this class when defining  parameters for  <a href="CustomFunction.html" title="class in com.grapecity.documents.excel"><code>CustomFunction</code></a> or <a href="AsyncCustomFunction.html" title="class in com.grapecity.documents.excel"><code>AsyncCustomFunction</code></a> instances.</p>
<pre><code data-language="Java">
 class DiscountPriceFunction extends CustomFunction {
     DiscountPriceFunction(Parameter[] parameters) {
         super("DISCOUNT_PRICE", FunctionValueType.Number, parameters);
     }

     @Override
     public Object evaluate(Object[] arguments, ICalcContext context) {
         return (double) arguments[0] * (1 - (double) arguments[1]);
     }
 }

 Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
 Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
 Workbook.AddCustomFunction(new DiscountPriceFunction(new Parameter[] {
     priceParameter,
     discountParameter
 }), true);
 worksheet.getRange("A1").setFormula("=DISCOUNT_PRICE(100,0.15)");
 Object discountedPrice = worksheet.getRange("A1").getValue();
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType)">Parameter</a><wbr>(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType)</code></div>
<div class="col-last even-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType,boolean)">Parameter</a><wbr>(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 boolean&nbsp;acceptReference)</code></div>
<div class="col-last odd-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name even-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType,boolean,boolean)">Parameter</a><wbr>(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 boolean&nbsp;acceptReference,
 boolean&nbsp;acceptCustomObjects)</code></div>
<div class="col-last even-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType,java.lang.Object)">Parameter</a><wbr>(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue)</code></div>
<div class="col-last odd-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name even-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean)">Parameter</a><wbr>(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference)</code></div>
<div class="col-last even-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object)">Parameter</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue)</code></div>
<div class="col-last odd-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name even-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean)">Parameter</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference)</code></div>
<div class="col-last even-row-color">
<div class="block">Initializes an instance of a parameter.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a class="member-name-link" href="#%3Cinit%3E(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean,boolean)">Parameter</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference,
 boolean&nbsp;acceptCustomObjects)</code></div>
<div class="col-last odd-row-color">
<div class="block">Initializes a parameter with its name, description, value type, default value, and input rules.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div aria-orientation="horizontal" class="table-tabs" role="tablist"><button aria-controls="method-summary-table.tabpanel" aria-selected="true" class="active-table-tab" id="method-summary-table-tab0" onclick="show('method-summary-table', 'method-summary-table', 3)" onkeydown="switchTab(event)" role="tab" tabindex="0">All Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab2" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Instance Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab4" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div aria-labelledby="method-summary-table-tab0" class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getAcceptReference()">getAcceptReference</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether the parameter accepts a reference value.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getDefaultValue()">getDefaultValue</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the default value of the parameter.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getDescription()">getDescription</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the description of the parameter.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getName()">getName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the name of the parameter.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getValueType()">getValueType</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the value type of the parameter.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></h3>
<code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="<init>(com.grapecity.documents.excel.FunctionValueType)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType)</span></div>
<div class="block">Initializes an instance of a parameter. <p>This overload forwards  <code>null</code> as the default value to <a href="#%3Cinit%3E(com.grapecity.documents.excel.FunctionValueType,java.lang.Object)"><code>Parameter(FunctionValueType,Object)</code></a>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valueType</code> - The value type of the parameter.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(com.grapecity.documents.excel.FunctionValueType,boolean)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 boolean&nbsp;acceptReference)</span></div>
<div class="block">Initializes an instance of a parameter. <p>This overload creates a parameter without a name, description, or default value and forwards  <code>null</code> as the default value.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>acceptReference</code> - <code>true</code> if this parameter can accept a reference; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(com.grapecity.documents.excel.FunctionValueType,java.lang.Object)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue)</span></div>
<div class="block">Initializes an instance of a parameter. <p>This overload creates a parameter without a name or description and stores  the specified default value for the specified  <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel"><code>FunctionValueType</code></a>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>defaultValue</code> - The default value of the parameter.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference)</span></div>
<div class="block">Initializes an instance of a parameter. <p>This overload creates a parameter without a name or description and forwards  <code>null</code> for both values.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>defaultValue</code> - The default value of the parameter. This value can be <code>null</code>.</dd>
<dd><code>acceptReference</code> - If this parameter can accept reference.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue)</span></div>
<div class="block">Initializes an instance of a parameter. <p>Creates a parameter definition with the specified name, description, value type, and default value.  This overload forwards  <code>false</code> for the <code>acceptReference</code> argument.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the parameter. This value can be <code>null</code>.</dd>
<dd><code>description</code> - The description of the parameter. This value can be <code>null</code>.</dd>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>defaultValue</code> - The default value of the parameter. This value can be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference)</span></div>
<div class="block">Initializes an instance of a parameter. <p>Creates a parameter definition with the specified name, description, value type, and default value.  This overload forwards  <code>false</code> for the <code>acceptCustomObjects</code> argument to <a href="#%3Cinit%3E(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean,boolean)"><code>Parameter(String,String,FunctionValueType,Object,boolean,boolean)</code></a>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the parameter. This value can be <code>null</code>.</dd>
<dd><code>description</code> - The description of the parameter. This value can be <code>null</code>.</dd>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>defaultValue</code> - The default value of the parameter. This value can be <code>null</code>.</dd>
<dd><code>acceptReference</code> - <code>true</code> if this parameter can accept a reference; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(com.grapecity.documents.excel.FunctionValueType,boolean,boolean)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 boolean&nbsp;acceptReference,
 boolean&nbsp;acceptCustomObjects)</span></div>
<div class="block">Initializes an instance of a parameter. <p>This overload creates a parameter without a name, description, or default value and forwards  <code>null</code> for those values to <a href="#%3Cinit%3E(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean,boolean)"><code>Parameter(String,String,FunctionValueType,Object,boolean,boolean)</code></a>.</p> <p>Set  <code>acceptCustomObjects</code> to <code>true</code> to allow custom objects when <code>valueType</code> is <code>FunctionValueType.Object</code>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>acceptReference</code> - If this parameter can accept reference.</dd>
<dd><code>acceptCustomObjects</code> - Accepts custom objects if value type is <code>FunctionValueType.Object</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="<init>(java.lang.String,java.lang.String,com.grapecity.documents.excel.FunctionValueType,java.lang.Object,boolean,boolean)">
<h3>Parameter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Parameter</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;name,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;description,
 <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a>&nbsp;valueType,
 <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a>&nbsp;defaultValue,
 boolean&nbsp;acceptReference,
 boolean&nbsp;acceptCustomObjects)</span></div>
<div class="block">Initializes a parameter with its name, description, value type, default value, and input rules. <p>Use this constructor when defining metadata for a custom function parameter, including  whether the parameter accepts references and whether custom objects are allowed when the  value type is  <code>FunctionValueType.Object</code>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the parameter.</dd>
<dd><code>description</code> - The description of the parameter.</dd>
<dd><code>valueType</code> - The value type of the parameter.</dd>
<dd><code>defaultValue</code> - The default value of the parameter.</dd>
<dd><code>acceptReference</code> - <code>true</code> if this parameter can accept a reference; otherwise, <code>false</code>.</dd>
<dd><code>acceptCustomObjects</code> - <code>true</code> if this parameter accepts custom objects when <code>valueType</code> is <code>FunctionValueType.Object</code>; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getName()">
<h3>getName</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getName</span>()</div>
<div class="block">Gets the name of the parameter. <p>This method returns the name specified when the  <a href="Parameter.html" title="class in com.grapecity.documents.excel"><code>Parameter</code></a> instance was created. Use the parameter name to identify an argument when defining a  <a href="CustomFunction.html" title="class in com.grapecity.documents.excel"><code>CustomFunction</code></a> or <a href="AsyncCustomFunction.html" title="class in com.grapecity.documents.excel"><code>AsyncCustomFunction</code></a>.</p>
<pre><code data-language="Java">
 Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
 Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
 CustomFunction function = new DiscountPriceFunction(new Parameter[] {
     priceParameter,
     discountParameter
 });
 Workbook.AddCustomFunction(function, true);
 String name = priceParameter.getName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The name of the parameter, or <code>null</code> if no name was specified.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDescription()">
<h3>getDescription</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getDescription</span>()</div>
<div class="block">Gets the description of the parameter. <p>This description provides user-facing information about the purpose of the  parameter when defining a  <a href="CustomFunction.html" title="class in com.grapecity.documents.excel"><code>CustomFunction</code></a> or <a href="AsyncCustomFunction.html" title="class in com.grapecity.documents.excel"><code>AsyncCustomFunction</code></a>.  Returns the description that was specified when the  <a href="Parameter.html" title="class in com.grapecity.documents.excel"><code>Parameter</code></a> instance was created.</p>
<pre><code data-language="Java">
 Parameter priceParameter = new Parameter("price", "Original price.", FunctionValueType.Number, 0d);
 Parameter discountParameter = new Parameter("discount", "Discount rate.", FunctionValueType.Number, 0d);
 CustomFunction function = new DiscountPriceFunction(new Parameter[] {
     priceParameter,
     discountParameter
 });
 Workbook.AddCustomFunction(function, true);
 String description = discountParameter.getDescription();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The description of the parameter, or <code>null</code> if no description was specified.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValueType()">
<h3>getValueType</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel">FunctionValueType</a></span>&nbsp;<span class="element-name">getValueType</span>()</div>
<div class="block">Gets the value type of the parameter. <p>This method returns the  <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel"><code>FunctionValueType</code></a> that defines what kind of value the parameter accepts, such as number, text, boolean, variant, or object.  The returned value is the type that was specified when the  <a href="Parameter.html" title="class in com.grapecity.documents.excel"><code>Parameter</code></a> instance was created.</p>
<pre><code data-language="Java">
 Parameter amountParameter = new Parameter(FunctionValueType.Number, 0d);
 CustomFunction function = new AddTaxFunction(new Parameter[] {
     amountParameter,
     new Parameter(FunctionValueType.Number, 0.08d)
 });
 Workbook.AddCustomFunction(function, true);
 FunctionValueType valueType = amountParameter.getValueType();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The value type of the parameter.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDefaultValue()">
<h3>getDefaultValue</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></span>&nbsp;<span class="element-name">getDefaultValue</span>()</div>
<div class="block">Gets the default value of the parameter. <p>This method returns the default value that was specified when the  <a href="Parameter.html" title="class in com.grapecity.documents.excel"><code>Parameter</code></a> instance was created. The returned object type depends on the parameter's  <a href="FunctionValueType.html" title="enum class in com.grapecity.documents.excel"><code>FunctionValueType</code></a>.</p>
<pre><code data-language="Java">
 Parameter taxRateParameter = new Parameter(FunctionValueType.Number, 0.08d);
 CustomFunction function = new AddTaxFunction(new Parameter[] {
     new Parameter(FunctionValueType.Number),
     taxRateParameter
 });
 Workbook.AddCustomFunction(function, true);
 worksheet.getRange("A1").setFormula("=ADD_TAX(100)");
 Object total = worksheet.getRange("A1").getValue();
 Object defaultValue = taxRateParameter.getDefaultValue();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The default value of the parameter, or <code>null</code> if no default value was specified.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAcceptReference()">
<h3>getAcceptReference</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getAcceptReference</span>()</div>
<div class="block">Gets whether the parameter accepts a reference value. <p>Use this property to determine whether a custom function parameter can receive  a cell or range reference instead of only the referenced value.</p>
<pre><code data-language="Java">
 Parameter rangeParameter = new Parameter(FunctionValueType.Object, true);
 CustomFunction function = new SumRangeFunction(new Parameter[] { rangeParameter });
 Workbook.AddCustomFunction(function, true);
 worksheet.getRange("A1:A3").setValue(new Object[][] {{1}, {2}, {3}});
 worksheet.getRange("B1").setFormula("=SUM_RANGE(A1:A3)");
 boolean acceptReference = rangeParameter.getAcceptReference();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the parameter accepts a reference value; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<script>var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";

function show(tableId, selected, columns) {
    if (tableId !== selected) {
        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
            .forEach(function (elem) {
                elem.style.display = 'none';
            });
    }
    document.querySelectorAll('div.' + selected)
        .forEach(function (elem, index) {
            elem.style.display = '';
            var isEvenRow = index % (columns * 2) < columns;
            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
        });
    updateTabs(tableId, selected);
}

function updateTabs(tableId, selected) {
    document.querySelector('div#' + tableId + ' .summary-table')
        .setAttribute('aria-labelledby', selected);
    document.querySelectorAll('button[id^="' + tableId + '"]')
        .forEach(function (tab, index) {
            if (selected === tab.id || (tableId === selected && index === 0)) {
                tab.className = activeTableTab;
                tab.setAttribute('aria-selected', true);
                tab.setAttribute('tabindex', 0);
            } else {
                tab.className = tableTab;
                tab.setAttribute('aria-selected', false);
                tab.setAttribute('tabindex', -1);
            }
        });
}

function switchTab(e) {
    var selected = document.querySelector('[aria-selected=true]');
    if (selected) {
        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
            // left or up arrow key pressed: move focus to previous tab
            selected.previousSibling.click();
            selected.previousSibling.focus();
            e.preventDefault();
        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
            // right or down arrow key pressed: move focus to next tab
            selected.nextSibling.click();
            selected.nextSibling.focus();
            e.preventDefault();
        }
    }
}
</script></div>