emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 23 Jan 2013 22:55:28 +0100
branchemul
changeset 560 53fafe384803
child 568 6bcb6b98155d
permissions -rw-r--r--
Moving all arraycopy methods into one System class
jaroslav@560
     1
/**
jaroslav@560
     2
 * Back 2 Browser Bytecode Translator
jaroslav@560
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jaroslav@560
     4
 *
jaroslav@560
     5
 * This program is free software: you can redistribute it and/or modify
jaroslav@560
     6
 * it under the terms of the GNU General Public License as published by
jaroslav@560
     7
 * the Free Software Foundation, version 2 of the License.
jaroslav@560
     8
 *
jaroslav@560
     9
 * This program is distributed in the hope that it will be useful,
jaroslav@560
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jaroslav@560
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jaroslav@560
    12
 * GNU General Public License for more details.
jaroslav@560
    13
 *
jaroslav@560
    14
 * You should have received a copy of the GNU General Public License
jaroslav@560
    15
 * along with this program. Look for COPYING file in the top folder.
jaroslav@560
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jaroslav@560
    17
 */
jaroslav@560
    18
package org.apidesign.bck2brwsr.emul.lang;
jaroslav@560
    19
jaroslav@560
    20
/**
jaroslav@560
    21
 *
jaroslav@560
    22
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jaroslav@560
    23
 */
jaroslav@560
    24
public class System {
jaroslav@560
    25
    private System() {
jaroslav@560
    26
    }
jaroslav@560
    27
jaroslav@560
    28
    public static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) {
jaroslav@560
    29
        if (srcBegin < dstBegin) {
jaroslav@560
    30
            while (count-- > 0) {
jaroslav@560
    31
                dst[dstBegin + count] = value[srcBegin + count];
jaroslav@560
    32
            }
jaroslav@560
    33
        } else {
jaroslav@560
    34
            while (count-- > 0) {
jaroslav@560
    35
                dst[dstBegin++] = value[srcBegin++];
jaroslav@560
    36
            }
jaroslav@560
    37
        }
jaroslav@560
    38
    }
jaroslav@560
    39
    
jaroslav@560
    40
    public static void arraycopy(byte[] value, int srcBegin, byte[] dst, int dstBegin, int count) {
jaroslav@560
    41
        if (srcBegin < dstBegin) {
jaroslav@560
    42
            while (count-- > 0) {
jaroslav@560
    43
                dst[dstBegin + count] = value[srcBegin + count];
jaroslav@560
    44
            }
jaroslav@560
    45
        } else {
jaroslav@560
    46
            while (count-- > 0) {
jaroslav@560
    47
                dst[dstBegin++] = value[srcBegin++];
jaroslav@560
    48
            }
jaroslav@560
    49
        }
jaroslav@560
    50
    }
jaroslav@560
    51
jaroslav@560
    52
    public static void arraycopy(Object[] value, int srcBegin, Object[] dst, int dstBegin, int count) {
jaroslav@560
    53
        if (srcBegin < dstBegin) {
jaroslav@560
    54
            while (count-- > 0) {
jaroslav@560
    55
                dst[dstBegin + count] = value[srcBegin + count];
jaroslav@560
    56
            }
jaroslav@560
    57
        } else {
jaroslav@560
    58
            while (count-- > 0) {
jaroslav@560
    59
                dst[dstBegin++] = value[srcBegin++];
jaroslav@560
    60
            }
jaroslav@560
    61
        }
jaroslav@560
    62
    }
jaroslav@560
    63
    
jaroslav@560
    64
}