jaroslav@1673: /** jaroslav@1673: * Back 2 Browser Bytecode Translator jaroslav@1673: * Copyright (C) 2012 Jaroslav Tulach jaroslav@1673: * jaroslav@1673: * This program is free software: you can redistribute it and/or modify jaroslav@1673: * it under the terms of the GNU General Public License as published by jaroslav@1673: * the Free Software Foundation, version 2 of the License. jaroslav@1673: * jaroslav@1673: * This program is distributed in the hope that it will be useful, jaroslav@1673: * but WITHOUT ANY WARRANTY; without even the implied warranty of jaroslav@1673: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the jaroslav@1673: * GNU General Public License for more details. jaroslav@1673: * jaroslav@1673: * You should have received a copy of the GNU General Public License jaroslav@1673: * along with this program. Look for COPYING file in the top folder. jaroslav@1673: * If not, see http://opensource.org/licenses/GPL-2.0. jaroslav@1673: */ jaroslav@1673: package org.apidesign.bck2brwsr.vm8; jaroslav@1673: jaroslav@1673: public interface Defaults { jaroslav@1673: public static int staticValue() { jaroslav@1673: return 42; jaroslav@1673: } jaroslav@1673: jaroslav@1673: public default int value() { jaroslav@1673: return 42; jaroslav@1673: } jaroslav@1673: jaroslav@1673: public static Defaults create(boolean overriden) { jaroslav@1673: class X implements Defaults { jaroslav@1673: } jaroslav@1673: class Y implements Defaults { jaroslav@1673: @Override jaroslav@1673: public int value() { jaroslav@1673: return 7; jaroslav@1673: } jaroslav@1673: } jaroslav@1673: return overriden ? new Y() : new X(); jaroslav@1673: } jaroslav@1673: jaroslav@1673: public static int defaultValue() { jaroslav@1673: return create(false).value(); jaroslav@1673: } jaroslav@1673: jaroslav@1673: public static int myValue() { jaroslav@1673: return create(true).value(); jaroslav@1673: } jaroslav@1673: }