From: Martin Vitez Date: Fri, 4 Jul 2014 07:31:01 +0000 (+0200) Subject: BUG-579: Remove the dependency on GeneratedTOBuilderImpl to break a package cycle. X-Git-Tag: release/helium~377 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=666930f0438dabd328a5954b11d2ce25c363ee0b;p=yangtools.git BUG-579: Remove the dependency on GeneratedTOBuilderImpl to break a package cycle. Change-Id: Ibcdd7bcb0cdf44d5d7ef30105624bede15bcd50e Signed-off-by: Martin Vitez --- diff --git a/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/BindingGeneratorUtil.java b/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/BindingGeneratorUtil.java index f6403aef20..d5ec8b202f 100644 --- a/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/BindingGeneratorUtil.java +++ b/code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/BindingGeneratorUtil.java @@ -10,11 +10,9 @@ package org.opendaylight.yangtools.binding.generator.util; import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; - import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.io.Serializable; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; @@ -25,9 +23,6 @@ import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; - -import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedPropertyBuilderImpl; -import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTOBuilderImpl; import org.opendaylight.yangtools.sal.binding.model.api.AccessModifier; import org.opendaylight.yangtools.sal.binding.model.api.Restrictions; import org.opendaylight.yangtools.sal.binding.model.api.Type; @@ -379,20 +374,6 @@ public final class BindingGeneratorUtil { return sb.toString(); } - /** - * Add {@link Serializable} to implemented interfaces of this TO. Also - * compute and add serialVersionUID property. - * - * @param gto - * transfer object which needs to be serializable - */ - public static void makeSerializable(final GeneratedTOBuilderImpl gto) { - gto.addImplementsType(Types.typeForClass(Serializable.class)); - GeneratedPropertyBuilder prop = new GeneratedPropertyBuilderImpl("serialVersionUID"); - prop.setValue(Long.toString(computeDefaultSUID(gto))); - gto.setSUID(prop); - } - public static long computeDefaultSUID(final GeneratedTypeBuilderBase to) { try { ByteArrayOutputStream bout = new ByteArrayOutputStream(); diff --git a/code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java b/code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java index 8228d87ddc..7b1aa834f8 100644 --- a/code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java +++ b/code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java @@ -14,6 +14,10 @@ import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findD import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNodeForRelativeXPath; import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findParentModule; +import com.google.common.base.Preconditions; +import com.google.common.collect.Sets; +import com.google.common.io.BaseEncoding; +import java.io.Serializable; import java.math.BigDecimal; import java.math.BigInteger; import java.net.URI; @@ -30,7 +34,6 @@ import java.util.Set; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.apache.commons.lang3.StringEscapeUtils; import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil; import org.opendaylight.yangtools.binding.generator.util.TypeConstants; @@ -89,15 +92,6 @@ import org.opendaylight.yangtools.yang.model.util.Uint64; import org.opendaylight.yangtools.yang.model.util.Uint8; import org.opendaylight.yangtools.yang.model.util.UnionType; -import com.google.common.base.Preconditions; -import com.google.common.collect.Sets; -import com.google.common.io.BaseEncoding; - - -import com.google.common.base.Preconditions; -import com.google.common.collect.Sets; -import com.google.common.io.BaseEncoding; - public final class TypeProviderImpl implements TypeProvider { private static final Pattern NUMBERS_PATTERN = Pattern.compile("[0-9]+\\z"); @@ -707,7 +701,7 @@ public final class TypeProviderImpl implements TypeProvider { genTOBuilder.setTypedef(true); genTOBuilder.setIsUnion(true); addUnitsToGenTO(genTOBuilder, typedef.getUnits()); - BindingGeneratorUtil.makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); returnType = genTOBuilder.toInstance(); // union builder GeneratedTOBuilder unionBuilder = new GeneratedTOBuilderImpl(genTOBuilder.getPackageName(), @@ -736,7 +730,7 @@ public final class TypeProviderImpl implements TypeProvider { basePackageName, bitsTypeDefinition, typedefName); genTOBuilder.setTypedef(true); addUnitsToGenTO(genTOBuilder, typedef.getUnits()); - BindingGeneratorUtil.makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); returnType = genTOBuilder.toInstance(); } else { final Type javaType = BaseYangTypes.BASE_YANG_TYPES_PROVIDER.javaTypeForSchemaDefinitionType( @@ -785,7 +779,7 @@ public final class TypeProviderImpl implements TypeProvider { } addUnitsToGenTO(genTOBuilder, typedef.getUnits()); genTOBuilder.setTypedef(true); - BindingGeneratorUtil.makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); return genTOBuilder.toInstance(); } @@ -1229,11 +1223,25 @@ public final class TypeProviderImpl implements TypeProvider { } } addUnitsToGenTO(genTOBuilder, typedef.getUnits()); - BindingGeneratorUtil.makeSerializable(genTOBuilder); + makeSerializable(genTOBuilder); return genTOBuilder.toInstance(); } + /** + * Add {@link Serializable} to implemented interfaces of this TO. Also + * compute and add serialVersionUID property. + * + * @param gto + * transfer object which needs to be serializable + */ + private void makeSerializable(final GeneratedTOBuilderImpl gto) { + gto.addImplementsType(Types.typeForClass(Serializable.class)); + GeneratedPropertyBuilder prop = new GeneratedPropertyBuilderImpl("serialVersionUID"); + prop.setValue(Long.toString(BindingGeneratorUtil.computeDefaultSUID(gto))); + gto.setSUID(prop); + } + /** * Finds out for each type definition how many immersion (depth) is * necessary to get to the base type. Every type definition is inserted to