/*
 * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others.  All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */
package org.opendaylight.yangtools.yang.model.api;

import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNull;

/**
 * A static provider of an {@link EffectiveModelContext}.
 *
 * @author Robert Varga
 */
@Beta
public interface EffectiveModelContextProvider extends SchemaContextProvider {
    /**
     * Return the {@link EffectiveModelContext} attached to this object.
     *
     * @return An EffectiveModelContext instance.
     */
    @NonNull EffectiveModelContext getEffectiveModelContext();

    @Override
    default @NonNull SchemaContext getSchemaContext() {
        return getEffectiveModelContext();
    }
}

@@ -762,16 +762,86 @@
 ce.%0A
+     * @throws IllegalStateException if the context is not available.%0A
      */%0A
     
@@ -836,16 +836,16 @@
      */%0A
-
     @Non
@@ -926,25 +926,16 @@
 default 
-@NonNull 
 SchemaCo
@@ -961,16 +961,34 @@
 ext() %7B%0A
+        try %7B%0A    
         
@@ -1022,16 +1022,95 @@
 text();%0A
+        %7D catch (IllegalStateException e) %7B%0A            return null;%0A        %7D%0A
     %7D%0A%7D%0A

Allow EffectiveModelContextProvider to throw ISE