001    /*
002     * Copyright 2010-2013 JetBrains s.r.o.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.jetbrains.jet.lang.resolve.java;
018    
019    import jet.runtime.typeinfo.JetConstructor;
020    
021    public class JvmStdlibNames {
022    
023        public static final JvmClassName JET_VALUE_PARAMETER = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetValueParameter");
024    
025        public static final String JET_VALUE_PARAMETER_NAME_FIELD = "name";
026        public static final String JET_VALUE_PARAMETER_HAS_DEFAULT_VALUE_FIELD = "hasDefaultValue";
027        public static final String JET_VALUE_PARAMETER_TYPE_FIELD = "type";
028        public static final String JET_VALUE_PARAMETER_RECEIVER_FIELD = "receiver";
029        public static final String JET_VALUE_PARAMETER_VARARG = "vararg";
030    
031    
032        public static final JvmClassName JET_TYPE_PARAMETER = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetTypeParameter");
033    
034    
035        public static final JvmClassName JET_METHOD = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetMethod");
036    
037        public static final String JET_FLAGS_FIELD = "flags";
038    
039        public static final String JET_METHOD_RETURN_TYPE_FIELD = "returnType";
040        public static final String JET_METHOD_TYPE_PARAMETERS_FIELD = "typeParameters";
041        public static final String JET_METHOD_PROPERTY_TYPE_FIELD = "propertyType";
042    
043        public static final int FLAGS_DEFAULT_VALUE = 0;
044    
045        public static final int FLAG_PROPERTY_BIT = 1;
046        public static final int FLAG_FORCE_OPEN_BIT = 1 << 1;
047        public static final int FLAG_FORCE_FINAL_BIT = 1 << 2;
048        public static final int FLAG_PRIVATE_BIT =  1 << 3;
049        public static final int FLAG_INTERNAL_BIT = 1 << 4;
050        public static final int FLAG_PROTECTED_BIT = 1 << 5;
051    
052        // for method, three bits (one reserved)
053        public static final int FLAG_METHOD_KIND_MASK = 7 << 6;
054        public static final int FLAG_METHOD_KIND_DECLARATION =   0 << 6;
055        public static final int FLAG_METHOD_KIND_FAKE_OVERRIDE = 1 << 6;
056        public static final int FLAG_METHOD_KIND_DELEGATION =    2 << 6;
057        public static final int FLAG_METHOD_KIND_SYNTHESIZED =   3 << 6;
058    
059        public static final int FLAG_CLASS_KIND_MASK = 7 << 6;
060        public static final int FLAG_CLASS_KIND_DEFAULT = 0 << 6;
061        public static final int FLAG_CLASS_KIND_OBJECT = 1 << 6;
062    
063        public static final JvmClassName JET_CONSTRUCTOR = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetConstructor");
064    
065        /**
066         * @deprecated
067         * @see JetConstructor#hidden()
068         */
069        public static final String JET_CONSTRUCTOR_HIDDEN_FIELD = "hidden";
070    
071    
072        public static final JvmClassName JET_CLASS = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetClass");
073    
074        public static final JvmClassName JET_CLASS_OBJECT = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetClassObject");
075    
076        public static final JvmClassName JET_PACKAGE_CLASS = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.JetPackageClass");
077    
078        public static final String ABI_VERSION_NAME = "abiVersion";
079    
080        public static final String JET_CLASS_SIGNATURE = "signature";
081    
082    
083        public static final JvmClassName JET_OBJECT = JvmClassName.byFqNameWithoutInnerClasses("jet.JetObject");
084    
085    
086        public static final JvmClassName ASSERT_INVISIBLE_IN_RESOLVER = JvmClassName.byFqNameWithoutInnerClasses("org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver");
087    
088        public static final JvmClassName KOTLIN_SIGNATURE = JvmClassName.byFqNameWithoutInnerClasses("jet.runtime.typeinfo.KotlinSignature");
089        public static final String KOTLIN_SIGNATURE_VALUE_METHOD = "value";
090    
091        private JvmStdlibNames() {
092        }
093    }