1/*
2 * Copyright (C) 2016 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "DeprecatedCSSOMPrimitiveValue.h"
28
29#include "DeprecatedCSSOMCounter.h"
30#include "DeprecatedCSSOMRGBColor.h"
31#include "DeprecatedCSSOMRect.h"
32
33namespace WebCore {
34
35// FIXME: For now these still call into CSSPrimitiveValue, but as we refactor into subclasses
36// such as StyleCounterValue, StyleRectValue, and StyleColorValue, these methods will get
37// more complicated.
38
39
40unsigned short DeprecatedCSSOMPrimitiveValue::primitiveType() const
41{
42 return m_value->primitiveType();
43}
44
45ExceptionOr<void> DeprecatedCSSOMPrimitiveValue::setFloatValue(unsigned short unitType, double floatValue)
46{
47 return m_value->setFloatValue(unitType, floatValue);
48}
49
50ExceptionOr<float> DeprecatedCSSOMPrimitiveValue::getFloatValue(unsigned short unitType) const
51{
52 return m_value->getFloatValue(unitType);
53}
54
55ExceptionOr<void> DeprecatedCSSOMPrimitiveValue::setStringValue(unsigned short stringType, const String& stringValue)
56{
57 return m_value->setStringValue(stringType, stringValue);
58}
59
60ExceptionOr<String> DeprecatedCSSOMPrimitiveValue::getStringValue() const
61{
62 return m_value->getStringValue();
63}
64
65ExceptionOr<Ref<DeprecatedCSSOMCounter>> DeprecatedCSSOMPrimitiveValue::getCounterValue() const
66{
67 ExceptionOr<Counter&> counter = m_value->getCounterValue();
68 if (counter.hasException())
69 return Exception { InvalidAccessError };
70 return DeprecatedCSSOMCounter::create(counter.releaseReturnValue(), m_owner.get());
71}
72
73ExceptionOr<Ref<DeprecatedCSSOMRect>> DeprecatedCSSOMPrimitiveValue::getRectValue() const
74{
75 ExceptionOr<Rect&> rect = m_value->getRectValue();
76 if (rect.hasException())
77 return Exception { InvalidAccessError };
78 return DeprecatedCSSOMRect::create(rect.releaseReturnValue(), m_owner.get());
79}
80
81ExceptionOr<Ref<DeprecatedCSSOMRGBColor>> DeprecatedCSSOMPrimitiveValue::getRGBColorValue() const
82{
83 ExceptionOr<Ref<RGBColor>> color = m_value->getRGBColorValue();
84 if (color.hasException())
85 return Exception { InvalidAccessError };
86 return DeprecatedCSSOMRGBColor::create(color.releaseReturnValue(), m_owner.get());
87}
88
89}
90