ru.codeinside.gses.activiti.ftarchive.LongField.java Source code

Java tutorial

Introduction

Here is the source code for ru.codeinside.gses.activiti.ftarchive.LongField.java

Source

/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * Copyright (c) 2013, MPL CodeInside http://codeinside.ru
 */

package ru.codeinside.gses.activiti.ftarchive;

import com.vaadin.ui.TextField;
import org.apache.commons.lang.StringUtils;

public class LongField extends TextField {

    public LongField() {

    }

    public LongField(Long strValue) {
        setValue(strValue);
    }

    /**
     * ?   ?.
     */
    @Override
    public Object getValue() {
        Object value = null;

        String string = null;

        final Object original = super.getValue();
        if (original != null) {

            if (original instanceof Long) {
                return original;
            }

            if (original instanceof Integer) {
                return Long.valueOf((Integer) original);
            }

            string = StringUtils.trimToNull(original.toString());
        }

        if (string != null) {
            try {
                value = Long.parseLong(string);
            } catch (NumberFormatException e) {
                value = string;
            }
        }

        return value;
    }
}