NullConstant.java revision 12651:6ef01bd40ce2
1/*
2 * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23package jdk.vm.ci.meta;
24
25/**
26 * The implementation type of the {@link JavaConstant#NULL_POINTER null constant}.
27 */
28final class NullConstant implements JavaConstant {
29
30    protected NullConstant() {
31    }
32
33    @Override
34    public JavaKind getJavaKind() {
35        return JavaKind.Object;
36    }
37
38    @Override
39    public boolean isNull() {
40        return true;
41    }
42
43    @Override
44    public boolean isDefaultForKind() {
45        return true;
46    }
47
48    @Override
49    public Object asBoxedPrimitive() {
50        throw new IllegalArgumentException();
51    }
52
53    @Override
54    public int asInt() {
55        throw new IllegalArgumentException();
56    }
57
58    @Override
59    public boolean asBoolean() {
60        throw new IllegalArgumentException();
61    }
62
63    @Override
64    public long asLong() {
65        throw new IllegalArgumentException();
66    }
67
68    @Override
69    public float asFloat() {
70        throw new IllegalArgumentException();
71    }
72
73    @Override
74    public double asDouble() {
75        throw new IllegalArgumentException();
76    }
77
78    @Override
79    public String toString() {
80        return JavaConstant.toString(this);
81    }
82
83    @Override
84    public String toValueString() {
85        return "null";
86    }
87
88    @Override
89    public int hashCode() {
90        return 13;
91    }
92
93    @Override
94    public boolean equals(Object o) {
95        return o instanceof NullConstant;
96    }
97}
98