blob: 71cabf39ab94bfb431356a5172118d284ed599bb [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.codehaus.groovy.runtime;
import org.codehaus.groovy.runtime.metaclass.DefaultMetaClassInfo;
/**
* This class contains methods special to optimizations used directly from bytecode in Groovy 1.8
*/
public class BytecodeInterface8 {
public static boolean disabledStandardMetaClass() {
return DefaultMetaClassInfo.disabledStandardMetaClass();
}
// ------------------ int ------------------
/**
* @return true if integer has its default MetaClass
*/
public static boolean isOrigInt(){
return DefaultMetaClassInfo.isOrigInt();
}
// ------------------ int[] ------------------
/**
* @return true if integer array has its default MetaClass
*/
public static boolean isOrigIntArray(){
return DefaultMetaClassInfo.isOrigIntArray();
}
/**
* get value from int[] using normalized index
*/
public static int intArrayGet(int[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from int[] using normalized index
*/
public static void intArraySet(int[] a, int i, int v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ byte ------------------
/**
* @return true if byte has its default MetaClass
*/
public static boolean isOrigB(){
return DefaultMetaClassInfo.isOrigByte();
}
// ------------------ byte[] ------------------
/**
* @return true if byte array has its default MetaClass
*/
public static boolean isOrigBArray(){
return false;
}
/**
* get value from byte[] using normalized index
*/
public static byte bArrayGet(byte[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from byte[] using normalized index
*/
public static void bArraySet(byte[] a, int i, byte v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ short ------------------
/**
* @return true if short has its default MetaClass
*/
public static boolean isOrigS(){
return DefaultMetaClassInfo.isOrigShort();
}
// ------------------ short[] ------------------
/**
* @return true if short array has its default MetaClass
*/
public static boolean isOrigSArray(){
return false;
}
/**
* get value from short[] using normalized index
*/
public static short sArrayGet(short[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from short[] using normalized index
*/
public static void sArraySet(short[] a, int i, short v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ char ------------------
/**
* @return true if char has its default MetaClass
*/
public static boolean isOrigC(){
return DefaultMetaClassInfo.isOrigChar();
}
// ------------------ char[] ------------------
/**
* @return true if char array has its default MetaClass
*/
public static boolean isOrigCArray(){
return false;
}
/**
* get value from char[] using normalized index
*/
public static char cArrayGet(char[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from char[] using normalized index
*/
public static void cArraySet(char[] a, int i, char v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ long ------------------
/**
* @return true if long has its default MetaClass
*/
public static boolean isOrigL(){
return DefaultMetaClassInfo.isOrigLong();
}
// ------------------ long[] ------------------
/**
* @return true if long array has its default MetaClass
*/
public static boolean isOrigLArray(){
return false;
}
/**
* get value from long[] using normalized index
*/
public static long lArrayGet(long[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from long[] using normalized index
*/
public static void lArraySet(long[] a, int i, long v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ boolean ------------------
/**
* @return true if boolean has its default MetaClass
*/
public static boolean isOrigZ(){
return DefaultMetaClassInfo.isOrigBool();
}
// ------------------ boolean[] ------------------
/**
* @return true if boolean array has its default MetaClass
*/
public static boolean isOrigZArray(){
return false;
}
/**
* get value from boolean[] using normalized index
*/
public static boolean zArrayGet(boolean[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from boolean[] using normalized index
*/
public static void zArraySet(boolean[] a, int i, boolean v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ float ------------------
/**
* @return true if float has its default MetaClass
*/
public static boolean isOrigF(){
return DefaultMetaClassInfo.isOrigFloat();
}
// ------------------ float[] ------------------
/**
* @return true if float array has its default MetaClass
*/
public static boolean isOrigFArray(){
return false;
}
/**
* get value from float[] using normalized index
*/
public static float fArrayGet(float[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from float[] using normalized index
*/
public static void fArraySet(float[] a, int i, float v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ double ------------------
/**
* @return true if double has its default MetaClass
*/
public static boolean isOrigD(){
return DefaultMetaClassInfo.isOrigDouble();
}
// ------------------ double[] ------------------
/**
* @return true if double array has its default MetaClass
*/
public static boolean isOrigDArray(){
return false;
}
/**
* get value from double[] using normalized index
*/
public static double dArrayGet(double[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from double[] using normalized index
*/
public static void dArraySet(double[] a, int i, double v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
// ------------------ Object[] ------------------
public static Object objectArrayGet(Object[] a, int i) {
try {
return a[i];
} catch (Throwable t) {
return a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)];
}
}
/**
* set value from double[] using normalized index
*/
public static void objectArraySet(Object[] a, int i, Object v) {
try {
a[i]=v;
} catch (Throwable t) {
a[DefaultGroovyMethodsSupport.normaliseIndex(i,a.length)]=v;
}
}
}