rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/Defaults.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 13 Sep 2014 18:21:25 +0200
branchjdk8
changeset 1687 baa80d712c77
parent 1673 2d3d0b72af04
permissions -rw-r--r--
Check behavior of overriden defender method.
jaroslav@1673
     1
/**
jaroslav@1673
     2
 * Back 2 Browser Bytecode Translator
jaroslav@1673
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jaroslav@1673
     4
 *
jaroslav@1673
     5
 * This program is free software: you can redistribute it and/or modify
jaroslav@1673
     6
 * it under the terms of the GNU General Public License as published by
jaroslav@1673
     7
 * the Free Software Foundation, version 2 of the License.
jaroslav@1673
     8
 *
jaroslav@1673
     9
 * This program is distributed in the hope that it will be useful,
jaroslav@1673
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jaroslav@1673
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jaroslav@1673
    12
 * GNU General Public License for more details.
jaroslav@1673
    13
 *
jaroslav@1673
    14
 * You should have received a copy of the GNU General Public License
jaroslav@1673
    15
 * along with this program. Look for COPYING file in the top folder.
jaroslav@1673
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jaroslav@1673
    17
 */
jaroslav@1673
    18
package org.apidesign.bck2brwsr.vm8;
jaroslav@1673
    19
jaroslav@1673
    20
public interface Defaults {
jaroslav@1673
    21
    public static int staticValue() {
jaroslav@1673
    22
        return 42;
jaroslav@1673
    23
    }
jaroslav@1673
    24
    
jaroslav@1673
    25
    public default int value() {
jaroslav@1673
    26
        return 42;
jaroslav@1673
    27
    }
jaroslav@1673
    28
    
jaroslav@1687
    29
    public static Defaults create(int type) {
jaroslav@1673
    30
        class X implements Defaults {
jaroslav@1673
    31
        }
jaroslav@1673
    32
        class Y implements Defaults {
jaroslav@1673
    33
            @Override
jaroslav@1673
    34
            public int value() {
jaroslav@1673
    35
                return 7;
jaroslav@1673
    36
            }
jaroslav@1673
    37
        }
jaroslav@1687
    38
        class Z implements DoubleDefaults {
jaroslav@1687
    39
        }
jaroslav@1687
    40
        switch (type) {
jaroslav@1687
    41
            case 0: return new X();
jaroslav@1687
    42
            case 1: return new Y();
jaroslav@1687
    43
            default: return new Z();
jaroslav@1687
    44
        }
jaroslav@1673
    45
    }
jaroslav@1673
    46
    
jaroslav@1673
    47
    public static int defaultValue() {
jaroslav@1687
    48
        return create(0).value();
jaroslav@1673
    49
    }
jaroslav@1673
    50
    
jaroslav@1673
    51
    public static int myValue() {
jaroslav@1687
    52
        return create(1).value();
jaroslav@1687
    53
    }
jaroslav@1687
    54
jaroslav@1687
    55
    public static int sndValue() {
jaroslav@1687
    56
        return create(2).value();
jaroslav@1687
    57
    }
jaroslav@1687
    58
    
jaroslav@1687
    59
    public interface DoubleDefaults extends Defaults {
jaroslav@1687
    60
        @Override
jaroslav@1687
    61
        public default int value() {
jaroslav@1687
    62
            return 84;
jaroslav@1687
    63
        }
jaroslav@1673
    64
    }
jaroslav@1673
    65
}