* 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.mdsal.binding.dom.adapter;
import static java.util.Objects.requireNonNull;
import com.google.common.util.concurrent.SettableFuture;
-import java.net.URI;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Predicate;
-import javax.annotation.concurrent.GuardedBy;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.opendaylight.mdsal.binding.generator.api.BindingRuntimeContext;
import org.opendaylight.yangtools.yang.binding.Augmentation;
+import org.opendaylight.yangtools.yang.common.QNameModule;
abstract class FutureSchema implements AutoCloseable {
private static final class Waiting extends FutureSchema {
schemaPromise.get(FutureSchema.this.duration, FutureSchema.this.unit);
return true;
} catch (final InterruptedException | ExecutionException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
} catch (final TimeoutException e) {
return false;
} finally {
}
}
- boolean waitForSchema(final URI namespace, final Date revision) {
+ boolean waitForSchema(final QNameModule module) {
return addPostponedOpAndWait(new FutureSchemaPredicate() {
@Override
public boolean test(final BindingRuntimeContext input) {
- return input.getSchemaContext().findModuleByNamespaceAndRevision(namespace, revision) != null;
+ return input.getSchemaContext().findModule(module).isPresent();
}
});
}