private T get()

in impl/src/main/java/org/apache/geronimo/config/ConfigValueImpl.java [243:293]


    private T get(boolean convert) {
        long now = -1;
        if (cacheTimeNs > 0)
        {
            now = System.nanoTime();
            if (now <= reloadAfter)
            {
                // now check if anything in the underlying Config got changed
                long lastCfgChange = config.getLastChanged();
                if (lastCfgChange < lastReloadedAt)
                {
                    return lastValue;
                }
            }
        }

        String valueStr = resolveStringValue();

        if ((valueStr == null || valueStr.isEmpty()) && withDefault) {
            return defaultValue;
        }

        T value;
        if (isList || isSet) {
            value = splitAndConvertListValue(valueStr);
            if (isSet) {
                value = (T) new HashSet((List) value);
            }
        }
        else {
            value = convert ? convert(valueStr) : (T) valueStr;
        }

        //X will later get added again
        /*X
        if (valueChangeListener != null && (value != null && !value.equals(lastValue) || (value == null && lastValue != null)) )
        {
            valueChangeListener.onValueChange(keyOriginal, lastValue, value);
        }
        */

        lastValue = value;

        if (cacheTimeNs > 0)
        {
            reloadAfter = now + cacheTimeNs;
            lastReloadedAt = now;
        }

        return value;
    }