import java.util.Set;
import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.binding.CodeHelpers;
+import org.opendaylight.yangtools.binding.lib.CodeHelpers;
import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collection
import java.util.List
import java.util.Optional
+import org.opendaylight.yangtools.binding.lib.AbstractAugmentable
import org.opendaylight.yangtools.binding.model.api.AnnotationType
import org.opendaylight.yangtools.binding.model.api.GeneratedProperty
import org.opendaylight.yangtools.binding.model.api.GeneratedType
import org.opendaylight.yangtools.binding.model.api.MethodSignature.ValueMechanics
import org.opendaylight.yangtools.binding.model.api.Type
import org.opendaylight.yangtools.binding.model.ri.Types
-import org.opendaylight.yangtools.binding.AbstractAugmentable
class BuilderImplTemplate extends AbstractBuilderTemplate {
val BuilderTemplate builder;
override protected generateCopyAugmentation(Type implType) '''
super(base.«AUGMENTATION_FIELD»);
'''
-}
\ No newline at end of file
+}
import java.util.Locale;
import java.util.Set;
import java.util.function.Function;
-import org.opendaylight.yangtools.binding.CodeHelpers;
+import org.opendaylight.yangtools.binding.lib.CodeHelpers;
import org.opendaylight.yangtools.yang.common.Decimal64;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint8;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.opendaylight.yangtools.binding.Augmentable;
-import org.opendaylight.yangtools.binding.CodeHelpers;
import org.opendaylight.yangtools.binding.contract.Naming;
+import org.opendaylight.yangtools.binding.lib.CodeHelpers;
import org.opendaylight.yangtools.binding.model.api.AnnotationType;
import org.opendaylight.yangtools.binding.model.api.ConcreteType;
import org.opendaylight.yangtools.binding.model.api.GeneratedProperty;
import java.lang.Override;
import java.lang.String;
import org.eclipse.jdt.annotation.NonNull;
- import org.opendaylight.yangtools.binding.ResourceYangModuleInfo;
+ import org.opendaylight.yangtools.binding.lib.ResourceYangModuleInfo;
import org.opendaylight.yangtools.binding.meta.YangModuleInfo;
import org.opendaylight.yangtools.yang.common.QName;
'''
import java.util.HashSet;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
- import org.opendaylight.yangtools.binding.ResourceYangModuleInfo;
+ import org.opendaylight.yangtools.binding.lib.ResourceYangModuleInfo;
import org.opendaylight.yangtools.binding.meta.YangModuleInfo;
import org.opendaylight.yangtools.yang.common.QName;
'''
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.binding.AbstractOpaqueObject;
import org.opendaylight.yangtools.binding.OpaqueData;
import org.opendaylight.yangtools.binding.OpaqueObject;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueObject;
/**
* A base class for {@link OpaqueObject}s backed by {@link ForeignOpaqueData}. While this class is public, it not part
import static java.util.Objects.requireNonNull;
-import org.opendaylight.yangtools.binding.AbstractOpaqueData;
import org.opendaylight.yangtools.binding.OpaqueData;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueData;
import org.opendaylight.yangtools.yang.data.api.schema.ForeignDataNode;
/**
import org.opendaylight.yang.gen.v1.mdsal438.norev.Cont;
import org.opendaylight.yang.gen.v1.mdsal438.norev.ContBuilder;
import org.opendaylight.yang.gen.v1.mdsal438.norev.cont.ContAny;
-import org.opendaylight.yangtools.binding.AbstractOpaqueData;
-import org.opendaylight.yangtools.binding.AbstractOpaqueObject;
import org.opendaylight.yangtools.binding.DataObject;
import org.opendaylight.yangtools.binding.OpaqueData;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueData;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueObject;
import org.opendaylight.yangtools.util.xml.UntrustedXML;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yang.gen.v1.mdsal437.norev.Cont;
import org.opendaylight.yang.gen.v1.mdsal437.norev.ContBuilder;
import org.opendaylight.yang.gen.v1.mdsal437.norev.cont.ContAny;
-import org.opendaylight.yangtools.binding.AbstractOpaqueData;
-import org.opendaylight.yangtools.binding.AbstractOpaqueObject;
import org.opendaylight.yangtools.binding.DataObject;
import org.opendaylight.yangtools.binding.OpaqueData;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueData;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueObject;
import org.opendaylight.yangtools.util.xml.UntrustedXML;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.binding.RegexPatterns;
import org.opendaylight.yangtools.binding.TypeObject;
import org.opendaylight.yangtools.binding.contract.Naming;
+import org.opendaylight.yangtools.binding.contract.RegexPatterns;
import org.opendaylight.yangtools.binding.generator.BindingGeneratorUtil;
import org.opendaylight.yangtools.binding.generator.impl.reactor.TypeReference.ResolvedLeafref;
import org.opendaylight.yangtools.binding.model.api.ConcreteType;
exports org.opendaylight.yangtools.binding;
exports org.opendaylight.yangtools.binding.annotations;
exports org.opendaylight.yangtools.binding.contract;
+ exports org.opendaylight.yangtools.binding.lib;
exports org.opendaylight.yangtools.binding.meta;
exports org.opendaylight.yangtools.binding.util;
// FIXME: inhume this package
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueData;
import org.opendaylight.yangtools.concepts.Immutable;
/**
package org.opendaylight.yangtools.binding;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.binding.lib.AbstractOpaqueObject;
/**
* An opaque object. This interface supports code generation for both {@code anyxml} and {@code anydata}. Both of these
* 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.binding;
+package org.opendaylight.yangtools.binding.contract;
import static com.google.common.base.Preconditions.checkArgument;
-import com.google.common.annotations.Beta;
import java.util.regex.Pattern;
-@Beta
public final class RegexPatterns {
private static final String NEGATED_PATTERN_PREFIX = "^(?!";
private static final String NEGATED_PATTERN_SUFFIX = ").*$";
private RegexPatterns() {
-
+ // Hidden on purpose
}
/**
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import static java.util.Objects.requireNonNull;
import com.google.common.collect.ImmutableMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.binding.Augmentable;
+import org.opendaylight.yangtools.binding.Augmentation;
/**
* Abstract base class for implementing immutable {@link Augmentable} classes. This class is provided as a convenience.
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import com.google.common.annotations.Beta;
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.binding.OpaqueData;
/**
* Utility class for {@link OpaqueData} implementations. This class provides baseline implementation of
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import com.google.common.annotations.Beta;
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.binding.OpaqueData;
+import org.opendaylight.yangtools.binding.OpaqueObject;
/**
* Utility base class for {@link OpaqueObject} implementations. This class provides baseline implementation of
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Verify.verify;
import java.util.regex.Pattern;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.binding.Augmentable;
+import org.opendaylight.yangtools.binding.BindingContract;
+import org.opendaylight.yangtools.binding.EnumTypeObject;
+import org.opendaylight.yangtools.binding.contract.RegexPatterns;
/**
* Helper methods for generated binding code. This class concentrates useful primitives generated code may call
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import static java.util.Objects.requireNonNull;
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import static com.google.common.base.Verify.verifyNotNull;
--- /dev/null
+/*
+ * Copyright (c) 2024 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
+ */
+/**
+ * Library of utilities for use by generated code. The contents of this package as well as their semantics are an
+ * implementation detail of the Binding Specification.
+ */
+@org.osgi.annotation.bundle.Export
+package org.opendaylight.yangtools.binding.lib;
\ No newline at end of file
* 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.binding;
+package org.opendaylight.yangtools.binding.lib;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.List;
import java.util.Set;
import org.junit.Test;
+import org.opendaylight.yangtools.binding.EnumTypeObject;
public class CodeHelpersTest {
@Test