/* * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.javafx.css.converters; import com.sun.javafx.css.Size; import com.sun.javafx.css.StyleConverterImpl; import javafx.css.ParsedValue; import javafx.css.StyleConverter; import javafx.scene.text.Font; import javafx.util.Duration; /* Convert a Size to Duration */ public final class DurationConverter extends StyleConverterImpl, Duration> { // lazy, thread-safe instatiation private static class Holder { static final DurationConverter INSTANCE = new DurationConverter(); } public static StyleConverter, Duration> getInstance() { return Holder.INSTANCE; } private DurationConverter() { super(); } @Override public Duration convert(ParsedValue, Duration> value, Font font) { ParsedValue parsedValue = value.getValue(); Size size = parsedValue.convert(font); double time = size.getValue(); Duration duration = null; if (time < Double.POSITIVE_INFINITY) { switch (size.getUnits()) { case S: duration = Duration.seconds(time); break; case MS: duration = Duration.millis(time); break; default: duration = Duration.UNKNOWN; } } else { duration = Duration.INDEFINITE; } return duration; } @Override public String toString() { return "DurationConverter"; } }