import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.concepts.Variant;
/**
*/
@Beta
@NonNullByDefault
-public interface CanonicalValueValidator<T extends CanonicalValue<T>, V extends T> {
+public interface CanonicalValueValidator<T extends CanonicalValue<T>, V extends T> extends Immutable {
/**
* Returns the instantiated representation class. The representation class is a {@link CanonicalValue} which
* understands the semantics of modeled data and has some internal representation of it. All {@link CanonicalValue}s
import java.io.Serializable;
import java.util.Objects;
import java.util.Optional;
-import javax.annotation.concurrent.ThreadSafe;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.concepts.Variant;
/**
*/
@Beta
@NonNullByDefault
-@ThreadSafe
-public abstract class CanonicalValueViolation implements Serializable {
+public abstract class CanonicalValueViolation implements Immutable, Serializable {
public static class Regular extends CanonicalValueViolation {
private static final long serialVersionUID = 1L;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import javax.annotation.concurrent.Immutable;
+import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.concepts.SemVer;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
</code>
*/
-@Immutable
-public interface Module extends DataNodeContainer, DocumentedNode, NotificationNodeContainer, NamespaceRevisionAware {
+public interface Module extends DataNodeContainer, DocumentedNode, Immutable, NotificationNodeContainer,
+ NamespaceRevisionAware {
/**
* Returns the name of the module which is specified as argument of YANG
* {@link Module <b><font color="#FF0000">module</font></b>} keyword.
import java.util.Collection;
import java.util.Optional;
import java.util.Set;
-import javax.annotation.concurrent.Immutable;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
* Instances MUST be immutable and thus usage in multi threaded
* environment is safe.
*/
-@Immutable
// FIXME: 3.0.0: ContainerSchemaNode is far too broad. A combination of DataNodeContainer, NotificationNodeContainer
// and possibly DataSchemaNode would reflect SchemaContext traits better.
-public interface SchemaContext extends ContainerSchemaNode {
+public interface SchemaContext extends ContainerSchemaNode, Immutable {
/**
* QName of NETCONF top-level data node.
*/
import java.util.Set;
import java.util.TreeMap;
import java.util.function.Function;
-import javax.annotation.concurrent.Immutable;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-@Immutable
public final class FilteringSchemaContextProxy extends AbstractSchemaContext {
private final ImmutableMap<QNameModule, Module> moduleMap;