All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.palominolabs.crm.sf.rest.FieldDescription Maven / Gradle / Ivy

The newest version!
/*
 * Copyright © 2013. Palomino Labs (http://palominolabs.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.palominolabs.crm.sf.rest;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableList;

import javax.annotation.CheckForNull;
import javax.annotation.concurrent.Immutable;
import java.util.ArrayList;
import java.util.List;

@Immutable
public final class FieldDescription {

    private final int length;
    private final String name;
    private final String type;
    private final String defaultValue;
    private final String label;
    private final boolean updateable;
    private final boolean calculated;
    private final String controllerName;
    private final boolean unique;
    private final boolean nillable;
    private final int precision;
    private final int scale;
    private final boolean caseSensitive;
    private final int byteLength;
    private final String inlineHelpText;
    private final boolean nameField;
    private final boolean externalId;
    private final boolean idLookup;
    private final boolean filterable;
    private final String soapType;
    private final boolean createable;
    private final boolean deprecatedAndHidden;
    private final boolean autoNumber;
    private final String calculatedFormula;
    private final String defaultValueFormula;
    private final boolean defaultedOnCreate;
    private final int digits;
    private final boolean groupable;
    private final List picklistValues;
    private final List referenceTo;
    private final String relationshipName;
    private final String relationshipOrder;
    private final boolean restrictedPicklist;
    private final boolean namePointing;
    private final boolean custom;
    private final boolean htmlFormatted;
    private final boolean dependentPicklist;
    private final boolean writeRequiresMasterRead;
    private final boolean sortable;
    private final boolean cascadeDelete;
    private final boolean restrictedDelete;
    private final boolean permissionable;
    private final boolean displayLocationInDecimal;

    @JsonCreator
    FieldDescription(
            @JsonProperty("length") int length,
            @JsonProperty("name") String name,
            @JsonProperty("type") String type,
            @JsonProperty("defaultValue") String defaultValue,
            @JsonProperty("label") String label,
            @JsonProperty("updateable") boolean updateable,
            @JsonProperty("calculated") boolean calculated,
            @JsonProperty("controllerName") String controllerName,
            @JsonProperty("unique") boolean unique,
            @JsonProperty("nillable") boolean nillable,
            @JsonProperty("precision") int precision,
            @JsonProperty("scale") int scale,
            @JsonProperty("caseSensitive") boolean caseSensitive,
            @JsonProperty("byteLength") int byteLength,
            @JsonProperty("inlineHelpText") String inlineHelpText,
            @JsonProperty("nameField") boolean nameField,
            @JsonProperty("externalId") boolean externalId,
            @JsonProperty("idLookup") boolean idLookup,
            @JsonProperty("filterable") boolean filterable,
            @JsonProperty("soapType") String soapType,
            @JsonProperty("createable") boolean createable,
            @JsonProperty("deprecatedAndHidden") boolean deprecatedAndHidden,
            @JsonProperty("autoNumber") boolean autoNumber,
            @JsonProperty("calculatedFormula") String calculatedFormula,
            @JsonProperty("defaultValueFormula") String defaultValueFormula,
            @JsonProperty("defaultedOnCreate") boolean defaultedOnCreate,
            @JsonProperty("digits") int digits,
            @JsonProperty("groupable") boolean groupable,
            @JsonProperty("picklistValues") PicklistEntryList picklistValues,
            @JsonProperty("referenceTo") ReferenceToList referenceTo,
            @JsonProperty("relationshipName") String relationshipName,
            @JsonProperty("relationshipOrder") String relationshipOrder,
            @JsonProperty("restrictedPicklist") boolean restrictedPicklist,
            @JsonProperty("namePointing") boolean namePointing,
            @JsonProperty("custom") boolean custom,
            @JsonProperty("htmlFormatted") boolean htmlFormatted,
            @JsonProperty("dependentPicklist") boolean dependentPicklist,
            @JsonProperty("writeRequiresMasterRead") boolean writeRequiresMasterRead,
            @JsonProperty("sortable") boolean sortable,
            @JsonProperty("cascadeDelete") boolean cascadeDelete,
            @JsonProperty("restrictedDelete") boolean restrictedDelete,
            @JsonProperty("permissionable") boolean permissionable,
            @JsonProperty("displayLocationInDecimal") boolean displayLocationInDecimal
            ) {

        this.length = length;
        this.name = name;
        this.type = type;
        this.defaultValue = defaultValue;
        this.label = label;
        this.updateable = updateable;
        this.calculated = calculated;
        this.controllerName = controllerName;
        this.unique = unique;
        this.nillable = nillable;
        this.precision = precision;
        this.scale = scale;
        this.caseSensitive = caseSensitive;
        this.byteLength = byteLength;
        this.inlineHelpText = inlineHelpText;
        this.nameField = nameField;
        this.externalId = externalId;
        this.idLookup = idLookup;
        this.filterable = filterable;
        this.soapType = soapType;
        this.createable = createable;
        this.deprecatedAndHidden = deprecatedAndHidden;
        this.autoNumber = autoNumber;
        this.calculatedFormula = calculatedFormula;
        this.defaultValueFormula = defaultValueFormula;
        this.defaultedOnCreate = defaultedOnCreate;
        this.digits = digits;
        this.groupable = groupable;
        this.cascadeDelete = cascadeDelete;
        this.restrictedDelete = restrictedDelete;
        this.permissionable = permissionable;
        this.displayLocationInDecimal = displayLocationInDecimal;
        this.picklistValues = ImmutableList.copyOf(picklistValues);
        this.referenceTo = ImmutableList.copyOf(referenceTo);
        this.relationshipName = relationshipName;
        this.relationshipOrder = relationshipOrder;
        this.restrictedPicklist = restrictedPicklist;
        this.namePointing = namePointing;
        this.custom = custom;
        this.htmlFormatted = htmlFormatted;
        this.dependentPicklist = dependentPicklist;
        this.writeRequiresMasterRead = writeRequiresMasterRead;
        this.sortable = sortable;
    }

    public int getLength() {
        return length;
    }

    public String getName() {
        return name;
    }

    public String getType() {
        return type;
    }

    public String getDefaultValue() {
        return defaultValue;
    }

    public String getLabel() {
        return label;
    }

    public boolean isUpdateable() {
        return updateable;
    }

    public boolean isCalculated() {
        return calculated;
    }

    @CheckForNull
    public String getControllerName() {
        return controllerName;
    }

    public boolean isUnique() {
        return unique;
    }

    public boolean isNillable() {
        return nillable;
    }

    public int getPrecision() {
        return precision;
    }

    public int getScale() {
        return scale;
    }

    public boolean isCaseSensitive() {
        return caseSensitive;
    }

    public int getByteLength() {
        return byteLength;
    }

    @CheckForNull
    public String getInlineHelpText() {
        return inlineHelpText;
    }

    public boolean isNameField() {
        return nameField;
    }

    public boolean isExternalId() {
        return externalId;
    }

    public boolean isIdLookup() {
        return idLookup;
    }

    public boolean isFilterable() {
        return filterable;
    }

    public String getSoapType() {
        return soapType;
    }

    public boolean isCreateable() {
        return createable;
    }

    public boolean isDeprecatedAndHidden() {
        return deprecatedAndHidden;
    }

    public boolean isAutoNumber() {
        return autoNumber;
    }

    @CheckForNull
    public String getCalculatedFormula() {
        return calculatedFormula;
    }

    @CheckForNull
    public String getDefaultValueFormula() {
        return defaultValueFormula;
    }

    public boolean isDefaultedOnCreate() {
        return defaultedOnCreate;
    }

    public int getDigits() {
        return digits;
    }

    public boolean isGroupable() {
        return groupable;
    }

    public List getPicklistValues() {
        //noinspection ReturnOfCollectionOrArrayField
        return picklistValues;
    }

    public List getReferenceTo() {
        //noinspection ReturnOfCollectionOrArrayField
        return referenceTo;
    }

    @CheckForNull
    public String getRelationshipName() {
        return relationshipName;
    }

    @CheckForNull
    public String getRelationshipOrder() {
        return relationshipOrder;
    }

    public boolean isRestrictedPicklist() {
        return restrictedPicklist;
    }

    public boolean isNamePointing() {
        return namePointing;
    }

    public boolean isCustom() {
        return custom;
    }

    public boolean isHtmlFormatted() {
        return htmlFormatted;
    }

    public boolean isDependentPicklist() {
        return dependentPicklist;
    }

    public boolean isWriteRequiresMasterRead() {
        return writeRequiresMasterRead;
    }

    public boolean isSortable() {
        return sortable;
    }

    public boolean isCascadeDelete() {
        return cascadeDelete;
    }

    public boolean isRestrictedDelete() {
        return restrictedDelete;
    }

    public boolean isPermissionable() {
        return permissionable;
    }

    public boolean isDisplayLocationInDecimal() {
        return displayLocationInDecimal;
    }

    /**
     * STT for Jackson
     */
    private static class PicklistEntryList extends ArrayList {
    }

    private static class ReferenceToList extends ArrayList {
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy