- Fix checkstyle issues and activate enforcement.
Change-Id: Id7400f6eb267c822597cf4ff9adb41ba117d3c70
Signed-off-by: Jie Han <han.jie@zte.com.cn>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
+ </configuration>
+ </plugin>
+
</plugins>
</build>
</project>
import com.google.common.annotations.Beta;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BuilderRenderer;
+
import org.opendaylight.mdsal.binding.javav2.model.api.CodeGenerator;
-import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTypeForBuilder;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
import org.opendaylight.mdsal.binding.javav2.model.api.UnitName;
-import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentable;
-import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentation;
import org.opendaylight.yangtools.concepts.Identifier;
/**
import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.JavaCodePrettyPrint;
import org.opendaylight.mdsal.binding.javav2.model.api.CodeGenerator;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject;
+import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTypeForBuilder;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
import org.opendaylight.mdsal.binding.javav2.model.api.UnitName;
-import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTypeForBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonatype.plexus.build.incremental.BuildContext;
private final Collection<? extends Type> types;
/**
- * BuildContext used for instantiating files
+ * BuildContext used for instantiating files.
*/
private final BuildContext buildContext;
* Creates instance of this class with the set of <code>types</code> for
* which the JAVA code is generated.
*
+ * <p>
* The instances of concrete JAVA code generator are created.
*
* @param buildContext
return null;
}
- try (final OutputStream stream = this.buildContext.newFileOutputStream(file)) {
- try (final Writer fw = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
- try (final BufferedWriter bw = new BufferedWriter(fw)) {
+ try (OutputStream stream = this.buildContext.newFileOutputStream(file)) {
+ try (Writer fw = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
+ try (BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(generatedCode);
}
} catch (final IOException e) {
public String generate(Type type) {
if (type instanceof GeneratedTransferObject) {
final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
- if(genTO.isUnionType()) {
+ if (genTO.isUnionType()) {
return new UnionRenderer(genTO).generateTemplate();
} else if (genTO.isUnionTypeBuilder()) {
return new UnionBuilderRenderer(genTO).generateTemplate();
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.collect.Range;
import java.util.Set;
sb.append("static {\n");
sb.append(" @SuppressWarnings(\"unchecked\")\n");
sb.append(" final ").append(arrayType()).append(" a = (").append(arrayType())
- .append(") java.lang.reflect.Array.newInstance(").append(RANGE).append(".class, ").append(constraints.size()).append(");\n");
+ .append(") java.lang.reflect.Array.newInstance(").append(RANGE).append(".class, ")
+ .append(constraints.size()).append(");\n");
- int i = 0;
+ int count = 0;
for (Range<? extends Number> r : constraints) {
final String min = format(getValue(r.lowerEndpoint()));
final String max = format(getValue(r.upperEndpoint()));
-
- sb.append(" a[").append(i++).append("] = ").append(RANGE).append(".closed(").append(min).append(", ").append(max).append(");\n");
+ sb.append(" a[").append(count++).append("] = ").append(RANGE).append(".closed(").append(min).append(", ")
+ .append(max).append(");\n");
}
sb.append(" ").append(fieldName).append(" = a;\n");
sb.append("}\n");
// Static enforcement method
- sb.append("private static void ").append(checkerName).append("(final ").append(getTypeName()).append(" value) {\n");
+ sb.append("private static void ").append(checkerName).append("(final ").append(getTypeName())
+ .append(" value) {\n");
sb.append(" for (").append(itemType()).append(" r : ").append(fieldName).append(") {\n");
sb.append(" if (r.contains(value)) {\n");
sb.append(" return;\n");
sb.append(" }\n");
sb.append(" }\n");
- sb.append(" throw new IllegalArgumentException(String.format(\"Invalid range: %s, expected: %s.\", value, java.util.Arrays.asList(").append(fieldName).append(")));\n");
+ sb.append(" throw new IllegalArgumentException(String.format(\"Invalid range: %s, expected: %s.\", "
+ + "value, java.util.Arrays.asList(").append(fieldName).append(")));\n");
sb.append("}\n");
return sb.toString();
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.base.Preconditions;
import com.google.common.collect.Range;
private final T minValue;
private final T maxValue;
- protected AbstractPrimitiveRangeGenerator(final Class<T> typeClass, final String primitiveName, final T minValue, final T maxValue) {
+ protected AbstractPrimitiveRangeGenerator(final Class<T> typeClass, final String primitiveName, final T minValue,
+ final T maxValue) {
super(typeClass);
this.primitiveName = Preconditions.checkNotNull(primitiveName);
this.minValue = Preconditions.checkNotNull(minValue);
final StringBuilder sb = new StringBuilder();
final Collection<String> expressions = createExpressions(constraint);
- sb.append("private static void ").append(checkerName).append("(final ").append(primitiveName).append(" value) {\n");
+ sb.append("private static void ").append(checkerName).append("(final ").append(primitiveName)
+ .append(" value) {\n");
if (!expressions.isEmpty()) {
for (String exp : expressions) {
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
private static final Logger LOG = LoggerFactory.getLogger(AbstractRangeGenerator.class);
private static final Map<String, AbstractRangeGenerator<?>> GENERATORS;
- private static void addGenerator(final Builder<String, AbstractRangeGenerator<?>> b, final AbstractRangeGenerator<?> generator) {
- b.put(generator.getTypeClass().getCanonicalName(), generator);
+ private static void addGenerator(final Builder<String, AbstractRangeGenerator<?>> builder,
+ final AbstractRangeGenerator<?> generator) {
+ builder.put(generator.getTypeClass().getCanonicalName(), generator);
}
static {
final AbstractRangeGenerator<?> gen = GENERATORS.get(value.getClass().getName());
final Number check = gen.convert(ret);
if (!value.equals(check)) {
- LOG.warn("Number class conversion from {} to {} truncated value {} to {}", value.getClass(), type, value, ret);
+ LOG.warn("Number class conversion from {} to {} truncated value {} to {}", value.getClass(),
+ type, value, ret);
}
return ret;
}
// FIXME: Once BUG-3399 is fixed, we should never need this
- protected abstract T convert(final Number value);
+ protected abstract T convert(Number value);
/**
* Format a value into a Java-compilable expression which results in the appropriate
* @param value Number value
* @return Java language string representation
*/
- @Nonnull protected abstract String format(final T value);
+ @Nonnull protected abstract String format(T value);
/**
* Generate the checker method source code.
* @param constraint Restrictions which need to be applied.
* @return Method source code.
*/
- @Nonnull protected abstract String generateRangeCheckerImplementation(@Nonnull final String checkerName,
- @Nonnull final RangeConstraint<?> constraint);
+ @Nonnull protected abstract String generateRangeCheckerImplementation(@Nonnull String checkerName,
+ @Nonnull RangeConstraint<?> constraint);
private static String rangeCheckerName(final String member) {
return "check" + member + "Range";
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
-import javax.annotation.Nonnull;
-
-abstract class AbstractSubIntegerRangeGenerator<T extends Number & Comparable<T>> extends AbstractPrimitiveRangeGenerator<T> {
- protected AbstractSubIntegerRangeGenerator(final Class<T> typeClass, final String primitiveName, final T minValue, final T maxValue) {
+abstract class AbstractSubIntegerRangeGenerator<T extends Number & Comparable<T>> extends
+ AbstractPrimitiveRangeGenerator<T> {
+ protected AbstractSubIntegerRangeGenerator(final Class<T> typeClass, final String primitiveName, final T
+ minValue, final T maxValue) {
super(typeClass, primitiveName, minValue, maxValue);
}
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import javax.annotation.Nonnull;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import java.math.BigDecimal;
import java.math.BigInteger;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import java.math.BigInteger;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
final class ByteRangeGenerator extends AbstractSubIntegerRangeGenerator<Byte> {
ByteRangeGenerator() {
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
final class IntegerRangeGenerator extends AbstractPrimitiveRangeGenerator<Integer> {
IntegerRangeGenerator() {
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.collect.Range;
import java.util.ArrayList;
}
}
- public static String generateLengthCheckerCall(@Nullable final String member, @Nonnull final String valueReference) {
+ public static String generateLengthCheckerCall(@Nullable final String member,
+ @Nonnull final String valueReference) {
return lengthCheckerName(member) + '(' + valueReference + ");\n";
}
}
\ 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.mdsal.binding.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
final class LongRangeGenerator extends AbstractPrimitiveRangeGenerator<Long> {
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
final class ShortRangeGenerator extends AbstractSubIntegerRangeGenerator<Short> {
ShortRangeGenerator() {
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.base.Preconditions;
import javax.annotation.Nonnull;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import org.opendaylight.yangtools.yang.common.Uint16;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import org.opendaylight.yangtools.yang.common.Uint32;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import com.google.common.primitives.UnsignedLong;
import java.math.BigInteger;
* 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.javav2.java.api.generator.rangeGenerators;
+package org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators;
import org.opendaylight.yangtools.yang.common.Uint8;
package org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers;
import static com.google.common.base.Preconditions.checkArgument;
-import static org.opendaylight.mdsal.binding.javav2.util.BindingMapping.PATTERN_CONSTANT_NAME;
import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import java.util.ArrayList;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
-import org.apache.commons.text.StringEscapeUtils;
+
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.javav2.generator.util.Types;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil;
-import org.opendaylight.mdsal.binding.javav2.model.api.Constant;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedProperty;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject;
import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.javav2.model.api.ParameterizedType;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
import org.opendaylight.mdsal.binding.javav2.model.api.WildcardType;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.Revision;
+
+
public abstract class BaseRenderer {
private static final String COMMA = ",";
private static final String DOT = ".";
- private final GeneratedType type;
+ private final GeneratedType genType;
private final Map<String, String> importMap;
/**
- * list of all imported names for template
+ * list of all imported names for template.
*/
private final Map<String, String> importedNames = new HashMap<>();
protected BaseRenderer(final GeneratedType type) {
- this.type = Preconditions.checkNotNull(type);
+ this.genType = Preconditions.checkNotNull(type);
this.importMap = new HashMap<>();
}
/**
- * Implementation needs to call Scala template render() method to generate string body
+ * Implementation needs to call Scala template render() method to generate string body.
* @return rendered body
*/
protected abstract String body();
protected GeneratedType getType() {
- return type;
+ return genType;
}
protected Map<String, String> getImportedNames() {
}
/**
+ * Return string with type name for type in the full format or in the short format.
* @param intype type to format and add to imports
* @return formatted type
*/
protected String importedName(final Type intype) {
- putTypeIntoImports(type, intype);
- return getExplicitType(type, intype);
+ putTypeIntoImports(genType, intype);
+ return getExplicitType(genType, intype);
}
protected String importedName(final Class<?> cls) {
}
/**
+ * Generate package definition for template.
* @return package definition for template
*/
protected String packageDefinition() {
final StringBuilder sb = new StringBuilder();
sb.append("package ")
- .append(type.getPackageName())
+ .append(genType.getPackageName())
.append(";\n\n");
return sb.toString();
}
/**
- * walks through map of imports
+ * walks through map of imports.
* @return string of imports for template
*/
private String imports() {
}
/**
- * Checks if package of generated type and imported type is the same
+ * Checks if package of generated type and imported type is the same.
* @param importedTypePackageName imported types package name
* @return equals packages
*/
protected boolean hasSamePackage(final String importedTypePackageName) {
- return type.getPackageName().equals(importedTypePackageName);
+ return genType.getPackageName().equals(importedTypePackageName);
}
/**
* @param parentGenType generated type which contains type
* @return adds actual type parameters to builder
*/
- private StringBuilder addActualTypeParameters(final StringBuilder sb, final Type type, final GeneratedType parentGenType) {
+ private StringBuilder addActualTypeParameters(final StringBuilder sb, final Type type,
+ final GeneratedType parentGenType) {
if (type instanceof ParameterizedType) {
final ParameterizedType pType = (ParameterizedType) type;
final Type[] pTypes = pType.getActualTypeArguments();
}
/**
- * Generates the string with all actual type parameters from
+ * Generates the string with all actual type parameters from.
*
* @param parentGenType generated type for which is the JAVA code generated
- * @param pTypes array of Type instances = actual type parameters
- * @return string with all actual type parameters from pTypes
+ * @param types array of Type instances = actual type parameters
+ * @return string with all actual type parameters from types
*/
- private String getParameters(final GeneratedType parentGenType, final Type[] pTypes) {
- if (pTypes == null || pTypes.length == 0) {
+ private String getParameters(final GeneratedType parentGenType, final Type[] types) {
+ if (types == null || types.length == 0) {
return "?";
}
final StringBuilder sb = new StringBuilder();
- for (int i = 0; i < pTypes.length; i++) {
- final Type t = pTypes[i];
+ for (int i = 0; i < types.length; i++) {
+ final Type t = types[i];
String separator = COMMA;
- if (i == pTypes.length - 1) {
+ if (i == types.length - 1) {
separator = "";
}
}
/**
- * Template method which generates the getter method for field
+ * Template method which generates the getter method for field.
*
* @param field generated property with data about field which is generated as the getter method
* @return string with the getter method source code in JAVA format
}
/**
- * builds template
+ * builds template.
* @return generated final template
*/
public String generateTemplate() {
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSortedSet;
+
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Objects;
import java.util.Set;
import java.util.regex.Pattern;
+
import org.opendaylight.mdsal.binding.javav2.generator.util.BindingTypes;
import org.opendaylight.mdsal.binding.javav2.generator.util.ReferencedTypeImpl;
import org.opendaylight.mdsal.binding.javav2.generator.util.Types;
public class BuilderRenderer extends BaseRenderer {
/**
- * Set of class attributes (fields) which are derived from the getter methods names
+ * Set of class attributes (fields) which are derived from the getter methods names.
*/
private final Set<GeneratedProperty> properties;
/**
- * Set of name from properties
+ * Set of name from properties.
*/
private final Map<GeneratedProperty, String> importedNamesForProperties = new HashMap<>();
/**
- * Generated property is set if among methods is found one with the name GET_AUGMENTATION_METHOD_NAME
+ * Generated property is set if among methods is found one with the name GET_AUGMENTATION_METHOD_NAME.
*/
private GeneratedProperty augmentField;
protected String packageDefinition() {
final StringBuilder sb = new StringBuilder();
sb.append("package ")
- .append(((GeneratedTypeForBuilder)getType()).getPackageNameForBuilder())
+ .append(((GeneratedTypeForBuilder) getType()).getPackageNameForBuilder())
.append(";\n\n");
return sb.toString();
}
@Override
protected boolean hasSamePackage(final String importedTypePackageName) {
- return ((GeneratedTypeForBuilder)getType()).getPackageNameForBuilder()
+ return ((GeneratedTypeForBuilder) getType()).getPackageNameForBuilder()
.equals(importedTypePackageName);
}
*
* @param method method signature from which is the method name and return type obtained
* @return generated property instance for the getter <code>method</code>
- * @throws IllegalArgumentException
- * <li>if the <code>method</code> equals <code>null</code></li>
- * <li>if the name of the <code>method</code> equals <code>null</code></li>
- * <li>if the name of the <code>method</code> is empty</li>
- * <li>if the return type of the <code>method</code> equals <code>null</code></li>
+ * @throws IllegalArgumentException <li>if the <code>method</code> equals <code>null</code></li>
+ * <li>if the name of the <code>method</code> equals <code>null</code></li>
+ * <li>if the name of the <code>method</code> is empty</li>
+ * <li>if the return type of the <code>method</code> equals <code>null</code></li>
*/
private GeneratedProperty propertyFromGetter(final MethodSignature method) {
Preconditions.checkArgument(method != null, "Method cannot be NULL");
Preconditions.checkArgument(!Strings.isNullOrEmpty(method.getName()),
- "Method name cannot be NULL or empty");
+ "Method name cannot be NULL or empty");
Preconditions.checkArgument(method.getReturnType() != null,
- "Method return type reference cannot be NULL");
+ "Method return type reference cannot be NULL");
final String prefix = Types.BOOLEAN.equals(method.getReturnType()) ? "is" : "get";
if (method.getName().startsWith(prefix)) {
final String fieldName = toFirstLower(method.getName().substring(prefix.length()));
final GeneratedTOBuilderImpl tmpGenTO =
- new GeneratedTOBuilderImpl("foo", "foo", true);
+ new GeneratedTOBuilderImpl("foo", "foo", true);
tmpGenTO.addProperty(fieldName).setReturnType(method.getReturnType());
return tmpGenTO.toInstance().getProperties().get(0);
}
* Adds to the <code>methods</code> set all the methods of the <code>implementedIfcs</code>
* and recursively their implemented interfaces.
*
- * @param methods set of method signatures
+ * @param methods set of method signatures
* @param implementedIfcs list of implemented interfaces
*/
private void collectImplementedMethods(final Set<MethodSignature> methods, List<Type> implementedIfcs) {
final GeneratedTOBuilderImpl generatedTOBuilder = new GeneratedTOBuilderImpl(aPackage,
name, true);
final ReferencedTypeImpl referencedType = new ReferencedTypeImpl(aPackage, name,
- true, null);
+ true, null);
final ReferencedTypeImpl generic = new ReferencedTypeImpl(getType().getPackageName(),
getType().getName(), true, null);
final ParameterizedType parametrizedReturnType =
- Types.parameterizedTypeFor(referencedType, generic);
+ Types.parameterizedTypeFor(referencedType, generic);
generatedTOBuilder.addMethod(method.getName()).setReturnType(parametrizedReturnType);
augmentField = propertyFromGetter(generatedTOBuilder.toInstance().getMethodDefinitions()
- .get(0));
+ .get(0));
getImportedNames().put("map", importedName(Map.class));
getImportedNames().put("hashMap", importedName(HashMap.class));
getImportedNames().put("class", importedName(Class.class));
// To do This is for third party, is it needed ?
getImportedNames().put("augmentationHolder", importedName(AugmentationHolder.class));
getImportedNames().put("collections", importedName(Collections.class));
- getImportedNames().put("augmentFieldReturnType", importedName(augmentField.getReturnType()));
+ getImportedNames().put("augmentFieldReturnType", importedName(
+ augmentField.getReturnType()));
}
}
} else if (Instantiable.class.getName().equals(implementedIfc.getFullyQualifiedName())) {
}
/**
- * Returns the name of tye type from <code>fullyQualifiedName</code>
+ * Returns the name of the type from <code>fullyQualifiedName</code>.
*
* @param fullyQualifiedName string with fully qualified type name (package + type)
* @return string with the name of the type
public static Set<Type> getAllIfcs(final Type type) {
final Set<Type> baseIfcs = new HashSet<>();
if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
- for (Type impl : ((GeneratedType)type).getImplements()) {
- if (impl instanceof GeneratedType && !(((GeneratedType)impl).getMethodDefinitions().isEmpty())) {
+ for (Type impl : ((GeneratedType) type).getImplements()) {
+ if (impl instanceof GeneratedType && !(((GeneratedType) impl).getMethodDefinitions().isEmpty())) {
baseIfcs.add(impl);
}
baseIfcs.addAll(getAllIfcs(impl));
*/
public static boolean hasImplementsFromUses(GeneratedType type) {
for (Type impl : getAllIfcs(type)) {
- if ((impl instanceof GeneratedType) && !(((GeneratedType)impl).getMethodDefinitions().isEmpty())) {
+ if ((impl instanceof GeneratedType) && !(((GeneratedType) impl).getMethodDefinitions().isEmpty())) {
return true;
}
}
if (getType().getImplements().contains(BindingTypes.IDENTIFIABLE)) {
childTreeNodeIdent = true;
final ParameterizedType pType = (ParameterizedType) getType().getImplements().get(getType()
- .getImplements().indexOf(BindingTypes.IDENTIFIABLE));
+ .getImplements().indexOf(BindingTypes.IDENTIFIABLE));
keyTypeName = pType.getActualTypeArguments()[0].getName();
}
}
getImportedNames().put("augmentation", importedName(Augmentation.class));
getImportedNames().put("classInstMap", importedName(ClassToInstanceMap.class));
- final String constants = constantsTemplate.render(getType(), getImportedNames(), this::importedName, false).body();
+ final String constants = constantsTemplate.render(getType(), getImportedNames(), this::importedName, false)
+ .body();
// list for generate copy constructor
final String copyConstructorHelper = generateListForCopyConstructor();
List<String> getterMethods = new ArrayList<>(Collections2.transform(properties, this::getterMethod));
- return builderTemplate.render(getType(), properties, getImportedNames(), importedNamesForProperties, augmentField,
- copyConstructorHelper, getterMethods, parentTypeForBuilderName, childTreeNode, childTreeNodeIdent,
- keyTypeName, instantiable, constants).body();
+ return builderTemplate.render(getType(), properties, getImportedNames(), importedNamesForProperties,
+ augmentField,
+ copyConstructorHelper, getterMethods, parentTypeForBuilderName, childTreeNode, childTreeNodeIdent,
+ keyTypeName, instantiable, constants).body();
}
private String generateListForCopyConstructor() {
final List allProps = new ArrayList<>(properties);
final boolean isList = implementsIfc(getType(),
- Types.parameterizedTypeFor(typeForClass(Identifiable.class), getType()));
+ Types.parameterizedTypeFor(typeForClass(Identifiable.class), getType()));
final Type keyType = getKey(getType());
if (isList && keyType != null) {
final List<GeneratedProperty> keyProps = ((GeneratedTransferObject) keyType).getProperties();
}
removeProperty(allProps, "key");
getImportedNames().put("keyTypeConstructor", importedName(keyType));
- return builderConstructorHelperTemplate.render(allProps, keyProps, getImportedNames(), getPropertyList(keyProps))
- .body();
+ return builderConstructorHelperTemplate.render(allProps, keyProps, getImportedNames(),
+ getPropertyList(keyProps)).body();
}
return builderConstructorHelperTemplate.render(allProps, null, getImportedNames(), null).body();
}
return type.getImplements().contains(impl);
}
- private void removeProperty(final Collection<GeneratedProperty> properties, final String name) {
- for (final GeneratedProperty property : properties) {
+ private void removeProperty(final Collection<GeneratedProperty> props, final String name) {
+ for (final GeneratedProperty property : props) {
if (name.equals(property.getName())) {
- properties.remove(property);
+ props.remove(property);
break;
}
}
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.io.BaseEncoding;
+
import java.beans.ConstructorProperties;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
-import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.AbstractRangeGenerator;
-import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.LengthGenerator;
+
+import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.AbstractRangeGenerator;
+import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.LengthGenerator;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.classTemplate;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.classTemplateConstructors;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.classTemplateRestrictions;
if (!enclosedGeneratedTypes.isEmpty()) {
for (GeneratedType innerClass : enclosedGeneratedTypes) {
if (innerClass instanceof GeneratedTransferObject) {
- classTemplateBuilder.add(generateInnerClassBody((GeneratedTransferObject)innerClass));
+ classTemplateBuilder.add(generateInnerClassBody((GeneratedTransferObject) innerClass));
}
}
}
}
final String enumerations = String.join("\n", enumList);
- final String constants = constantsTemplate.render(getType(), getImportedNames(), this::importedName, false).body();
+ final String constants = constantsTemplate.render(getType(), getImportedNames(), this::importedName, false)
+ .body();
if (genTO.getSuperType() != null) {
getImportedNames().put("superType", importedName(genTO.getSuperType()));
final String fields = sb2.toString();
getImportedNames().put("baseEncoding", importedName(BaseEncoding.class));
if (!allProperties.isEmpty()) {
- getImportedNames().put("defProp", importedName(((GeneratedProperty)((List) allProperties).get(0)).getReturnType()));
+ getImportedNames().put("defProp", importedName(((GeneratedProperty) ((List) allProperties).get(0))
+ .getReturnType()));
}
final StringBuilder sb3 = new StringBuilder();
final List other = new ArrayList<>(properties);
if (other.remove(allProperty)) {
sb2.append(classTemplateUnionConstr.render(getType(), parentProperties, allProperty,
- other, importedName(allProperty.getReturnType()), genRestrictions).body());
+ other, importedName(allProperty.getReturnType()), genRestrictions).body());
}
}
}
* Selects from input list of properties only those which have read only
* attribute set to true.
*
- * @param properties
- * list of properties of generated transfer object
+ * @param props list of properties of generated transfer object
* @return subset of <code>properties</code> which have read only attribute
- * set to true
+ * set to true
*/
- private List<GeneratedProperty> resolveReadOnlyPropertiesFromTO(final List<GeneratedProperty> properties) {
- return new ArrayList<>(Collections2.filter(properties, GeneratedProperty::isReadOnly));
+ private List<GeneratedProperty> resolveReadOnlyPropertiesFromTO(final List<GeneratedProperty> props) {
+ return new ArrayList<>(Collections2.filter(props, GeneratedProperty::isReadOnly));
}
/**
* Returns the list of the read only properties of all extending generated
* transfer object from <code>genTO</code> to highest parent generated
- * transfer object
+ * transfer object.
*
- * @param genTO
- * generated transfer object for which is the list of read only
- * properties generated
+ * @param transferObject generated transfer object for which is the list of read only
+ * properties generated
* @return list of all read only properties from actual to highest parent
- * generated transfer object. In case when extension exists the
- * method is recursive called.
+ * generated transfer object. In case when extension exists the
+ * method is recursive called.
*/
- private List<GeneratedProperty> getPropertiesOfAllParents(final GeneratedTransferObject genTO) {
+ private List<GeneratedProperty> getPropertiesOfAllParents(final GeneratedTransferObject transferObject) {
final List<GeneratedProperty> propertiesOfAllParents = new ArrayList<>();
- if (genTO.getSuperType() != null) {
- final List<GeneratedProperty> allPropertiesOfTO = genTO.getSuperType().getProperties();
+ if (transferObject.getSuperType() != null) {
+ final List<GeneratedProperty> allPropertiesOfTO = transferObject.getSuperType().getProperties();
List<GeneratedProperty> readOnlyPropertiesOfTO = resolveReadOnlyPropertiesFromTO(allPropertiesOfTO);
propertiesOfAllParents.addAll(readOnlyPropertiesOfTO);
- propertiesOfAllParents.addAll(getPropertiesOfAllParents(genTO.getSuperType()));
+ propertiesOfAllParents.addAll(getPropertiesOfAllParents(transferObject.getSuperType()));
}
return propertiesOfAllParents;
}
import java.util.LinkedList;
import java.util.List;
-import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
import org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.enumTemplate;
+import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
public class EnumRenderer extends BaseRenderer {
private final Enumeration enums;
}
/**
- * @param enumeration enumeration to write
+ * Return list of enumeration pairs with javadoc.
+ * @param enumeration enumeration to write.
* @return List of enumeration pairs with javadoc
*/
public static String writeEnumeration(final Enumeration enumeration) {
}
/**
+ * Return string of annotations.
* @param annotationTypeList list of annotations
* @return String of annotations in format:
- * "@"annotation
- * (parameterName1=ParameterSingleValue1,...)
+ * "@"annotation
+ * (parameterName1=ParameterSingleValue1,...)
*
*/
private String generateAnnotations(final List<AnnotationType> annotationTypeList) {
final List<String> parameterList = new ArrayList<>(annotationType.getParameters().size());
for (AnnotationType.Parameter parameter : annotationType.getParameters()) {
final StringBuilder sb2 = new StringBuilder();
- sb2.append(parameter.getName())
- .append('=')
- .append(parameter.getSingleValue());
+ sb2.append(parameter.getName()).append('=').append(parameter.getSingleValue());
parameterList.add(sb2.toString());
}
sb1.append(String.join(",", parameterList));
*/
private Entry<String, String> generateInstanceIdentifier() {
//Only tree data nodes need to generate the method.
- if (null == getType().getBindingNamespaceType() ||
- !BindingNamespaceType.isTreeData(getType().getBindingNamespaceType()) ||
- !getType().getImplements().contains(BindingTypes.TREE_CHILD_NODE) ) {
+ if (null == getType().getBindingNamespaceType()
+ || !BindingNamespaceType.isTreeData(getType().getBindingNamespaceType())
+ || !getType().getImplements().contains(BindingTypes.TREE_CHILD_NODE)) {
return new SimpleEntry<>(null, null);
}
/**
+ * Return list of parameters.
* @param parameters list of parameters
* @return list of parameters separated with ","
*/
// list of all imported names for template
final Map<String, String> importedNames = new HashMap<>();
- if(isBaseEncodingImportRequired()) {
+ if (isBaseEncodingImportRequired()) {
this.putToImportMap("BaseEncoding","com.google.common.io");
}
for (GeneratedProperty finalProperty : getFinalProperties()) {
}
for (GeneratedProperty property : getProperties()) {
- if("char[]".equals(property.getReturnType().getName())) {
+ if ("char[]".equals(property.getReturnType().getName())) {
importedNames.put("constructorProperties", importedName(ConstructorProperties.class));
importedNames.put("string", importedName(String.class));
importedNames.put(property.getName(), importedName(property.getReturnType()));
final Type returnType = property.getReturnType();
if (returnType instanceof GeneratedTransferObject) {
final GeneratedTransferObject returnTypeGto = (GeneratedTransferObject)returnType;
- if (returnTypeGto.isTypedef() && returnTypeGto.getProperties() != null &&
- !returnTypeGto.getProperties().isEmpty() && returnTypeGto.getProperties().size() == 1 &&
- "value".equals(returnTypeGto.getProperties().get(0).getName()) &&
- "byte[]".equals(returnTypeGto.getProperties().get(0).getReturnType().getName())) {
+ if (returnTypeGto.isTypedef() && returnTypeGto.getProperties() != null
+ && !returnTypeGto.getProperties().isEmpty() && returnTypeGto.getProperties().size() == 1
+ && "value".equals(returnTypeGto.getProperties().get(0).getName())
+ && "byte[]".equals(returnTypeGto.getProperties().get(0).getReturnType().getName())) {
return true;
}
}
final StringBuilder sb = new StringBuilder();
final List<GeneratedProperty> retTypeCastProperties = typedefType.getProperties();
- if (retTypeCastProperties != null &&
- !retTypeCastProperties.isEmpty() && retTypeCastProperties.size() == 1 &&
- retTypeCastProperties.get(0).getName().equals("value")) {
+ if (retTypeCastProperties != null
+ && !retTypeCastProperties.isEmpty() && retTypeCastProperties.size() == 1
+ && retTypeCastProperties.get(0).getName().equals("value")) {
final StringBuilder sb1 = new StringBuilder(fieldName);
sb1.append(".")
sb.append(generateCharArrayField(sb1.toString(), retTypeCastProperties.get(0)));
// generated bits typedef
- } else if (retTypeCastProperties != null && !retTypeCastProperties.isEmpty() &&
- typedefType.getBaseType() instanceof BitsTypeDefinition) {
+ } else if (retTypeCastProperties != null && !retTypeCastProperties.isEmpty()
+ && typedefType.getBaseType() instanceof BitsTypeDefinition) {
sb.append("java.util.Arrays.toString(")
.append(fieldName)
.append(".getValue()).toCharArray();");
//generated typedef typedef
} else if ((retTypeCastProperties == null || retTypeCastProperties.isEmpty())) {
- Preconditions.checkState(typedefType.getSuperType() != null );
+ Preconditions.checkState(typedefType.getSuperType() != null);
sb.append(generateCharArrayFieldForTypedef(fieldName,
(GeneratedTransferObject) typedefType.getSuperType()));
if ("java.lang.String".equals(propertyReturnType.getFullyQualifiedName())) {
sb.append(fieldName).append(".toCharArray();");
// generated type InstanceIdentifier
- } else if ("org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier".equals(propertyReturnType
- .getFullyQualifiedName())) {
- sb.append(fieldName)
- .append(".toString().toCharArray();");
+ } else if ("org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier"
+ .equals(propertyReturnType.getFullyQualifiedName())) {
+ sb.append(fieldName).append(".toString().toCharArray();");
//generated type binary, boolean, empty
} else if (BOOLEAN.equals(propertyReturnType)) {
sb.append(fieldName).append(".toString().toCharArray();");
sb.append("BaseEncoding.base64().encode(").append(fieldName)
.append(").toCharArray();");
//generated type int*, uint, decimal64 or enumeration*
- } else if (propertyReturnType.getFullyQualifiedName().startsWith("java.lang") ||
- propertyReturnType instanceof Enumeration ||
- propertyReturnType.getFullyQualifiedName().startsWith("java.math") ||
- propertyReturnType.getFullyQualifiedName().startsWith("org.opendaylight.yangtools.yang.common")) {
+ } else if (propertyReturnType.getFullyQualifiedName().startsWith("java.lang")
+ || propertyReturnType instanceof Enumeration
+ || propertyReturnType.getFullyQualifiedName().startsWith("java.math")
+ || propertyReturnType.getFullyQualifiedName().startsWith("org.opendaylight.yangtools.yang.common")) {
sb.append(fieldName).append(".toString().toCharArray();");
} else if (propertyReturnType instanceof GeneratedTransferObject) {
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
protected String body() {
/**
- * list of all imported names for template
+ * list of all imported names for template.
*/
final Map<String, String> importedNames = new HashMap<>();
}
/**
- * Builds template
+ * Builds template.
* @return generated final template
*/
public String generateTemplate() {
}
/**
- * Walks through map of imports
+ * Walks through map of imports.
* @return string of imports for template
*/
private String imports() {
return sb;
}
- private String getParameters(final Type[] pTypes) {
- if (pTypes == null || pTypes.length == 0) {
+ private String getParameters(final Type[] ptypes) {
+ if (ptypes == null || ptypes.length == 0) {
return "?";
}
final StringBuilder sb = new StringBuilder();
- int i = 0;
- for (Type pType : pTypes) {
- final Type type = pTypes[i];
+ int count = 0;
+ for (Type ptype : ptypes) {
+ final Type type = ptypes[count];
String separator = ",";
- if (i == (pTypes.length - 1)) {
+ if (count == (ptypes.length - 1)) {
separator = "";
}
String wildcardParam = "";
wildcardParam = "? extends ";
}
sb.append(wildcardParam + getExplicitType(type) + separator);
- i = i + 1;
+ count = count + 1;
}
}
return sb.toString();
*
* @param <T> type
*/
-public class AlphabeticallyTypeMemberComparator<T extends TypeMember> implements Comparator<T>{
+public class AlphabeticallyTypeMemberComparator<T extends TypeMember> implements Comparator<T> {
@Override
public int compare(T member1, T member2) {
importsEndAt = 1;
for (int i = 1; i < splittedByNewLine.length - 1; i++) {
if (!splittedByNewLine[i + 1].startsWith(IMPORT)) {
- fixedLines.add(new StringBuilder(splittedByNewLine[i]).append(NEW_LINE).append(NEW_LINE).toString());
+ fixedLines.add(new StringBuilder(
+ splittedByNewLine[i]).append(NEW_LINE).append(NEW_LINE).toString());
importsEndAt = i;
break;
} else {
}
}
- for(int i = classStartEnd; i < splittedByNewLine.length; i++){
+ for (int i = classStartEnd; i < splittedByNewLine.length; i++) {
i = appendJDoc(splittedByNewLine, fixedLines, i);
if (!splittedByNewLine[i].startsWith(COMMENTS)
&& !splittedByNewLine[i].endsWith(String.valueOf(END_LINE))
return fixedLines.toArray(new String[fixedLines.size()]);
}
- private static int appendJDoc(final String[] splittedByNewLine, final List<String> fixedLines, int i) {
- if (splittedByNewLine[i].contains(JDOC_START)) {
- fixedLines.add(new StringBuilder(splittedByNewLine[i]).append(NEW_LINE).toString());
- for (int j = i + 1; j < splittedByNewLine.length - 1; j++) {
- if (splittedByNewLine[j].contains(JDOC_END)) {
+ private static int appendJDoc(final String[] splittedByNewLine, final List<String> fixedLines, int cur) {
+ if (splittedByNewLine[cur].contains(JDOC_START)) {
+ fixedLines.add(new StringBuilder(splittedByNewLine[cur]).append(NEW_LINE).toString());
+ for (int next = cur + 1; next < splittedByNewLine.length - 1; next++) {
+ if (splittedByNewLine[next].contains(JDOC_END)) {
fixedLines.add(new StringBuilder(SPACE)
- .append(SPACE).append(splittedByNewLine[j]).append(NEW_LINE).toString());
- i = j + 1;
+ .append(SPACE).append(splittedByNewLine[next]).append(NEW_LINE).toString());
+ cur = next + 1;
break;
} else {
fixedLines.add(new StringBuilder(SPACE)
- .append(SPACE).append(splittedByNewLine[j]).append(NEW_LINE).toString());
+ .append(SPACE).append(splittedByNewLine[next]).append(NEW_LINE).toString());
}
}
}
- return i;
+ return cur;
}
/**
import com.google.common.base.Strings;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+
import java.util.List;
import java.util.Optional;
import java.util.StringTokenizer;
import java.util.function.Function;
import java.util.regex.Pattern;
+
import org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil;
import org.opendaylight.mdsal.binding.javav2.generator.util.Types;
import org.opendaylight.mdsal.binding.javav2.model.api.AccessModifier;
private static final Pattern MULTIPLE_SPACES_PATTERN = Pattern.compile(" +");
private static DeclaredStatementFormatter YANG_FORMATTER = DeclaredStatementFormatter.builder()
- .addIgnoredStatement(YangStmtMapping.CONTACT)
- .addIgnoredStatement(YangStmtMapping.DESCRIPTION)
- .addIgnoredStatement(YangStmtMapping.REFERENCE)
- .addIgnoredStatement(YangStmtMapping.ORGANIZATION)
- .build();
+ .addIgnoredStatement(YangStmtMapping.CONTACT)
+ .addIgnoredStatement(YangStmtMapping.DESCRIPTION)
+ .addIgnoredStatement(YangStmtMapping.REFERENCE)
+ .addIgnoredStatement(YangStmtMapping.ORGANIZATION)
+ .build();
private TextTemplateUtil() {
throw new UnsupportedOperationException("Util class");
}
/**
- * Makes start of getter name LowerCase
+ * Makes start of getter name LowerCase.
*
- * @param s getter name without prefix
+ * @param str getter name without prefix
* @return getter name starting in LowerCase
*/
- public static String toFirstLower(final String s) {
- return s != null && s.length() != 0 ? Character.isLowerCase(s.charAt(0)) ? s : s.length() == 1 ?
- s.toLowerCase() : s.substring(0, 1).toLowerCase() + s.substring(1) : s;
+ public static String toFirstLower(final String str) {
+ return str != null && str.length() != 0 ? Character.isLowerCase(str.charAt(0)) ? str : str.length() == 1
+ ? str.toLowerCase() : str.substring(0, 1).toLowerCase() + str.substring(1) : str;
}
/**
- * Wraps text as documentation, used in enum description
+ * Wraps text as documentation, used in enum description.
*
* @param text text for wrapping
* @return wrapped text
}
/**
- * Returns formatted Javadoc, based on type
+ * Returns formatted Javadoc, based on type.
+ *
* @param typeName given type name
* @return formatted Javadoc, based on type
*/
}
/**
- * Returns formatted Javadoc with possible additional comment, based on type
- * @param type given type
+ * Returns formatted Javadoc with possible additional comment, based on type.
+ *
+ * @param type given type
* @param additionalComment additional comment to format
* @return formatted Javadoc with possible additional comment, based on type
*/
return javaDoc.toString();
}
+ /**
+ * Returns formatted type description.
+ *
+ * @param type given type
+ * @return formatted type description
+ */
+ public static String formatDataForJavaDoc(final GeneratedType type) {
+ final StringBuilder javaDoc = new StringBuilder();
+ final TypeComment comment = type.getComment();
+ if (comment != null) {
+ javaDoc.append(comment.getJavadoc())
+ .append(NEW_LINE)
+ .append(NEW_LINE)
+ .append(NEW_LINE);
+ }
+
+ appendSnippet(javaDoc, type);
+
+ return javaDoc.toString();
+ }
+
+ private static String formatDataForJavaDoc(final TypeMember type, final String additionalComment) {
+ final StringBuilder javaDoc = new StringBuilder();
+ if (type.getComment() != null && !type.getComment().isEmpty()) {
+ javaDoc.append(formatToParagraph(type.getComment(), 0))
+ .append(NEW_LINE)
+ .append(NEW_LINE)
+ .append(NEW_LINE);
+ }
+ javaDoc.append(additionalComment);
+ return wrapToDocumentation(javaDoc.toString());
+ }
+
private static void appendSnippet(final StringBuilder sb, final GeneratedType type) {
Optional<YangSourceDefinition> optDef = type.getYangSourceDefinition();
if (optDef.isPresent()) {
if (def instanceof Single) {
DocumentedNode node = ((Single) def).getNode();
sb.append("<p>\n")
- .append("This class represents the following YANG schema fragment defined in module <b>")
- .append(def.getModule().argument()).append("</b>\n")
- .append("<pre>\n");
+ .append("This class represents the following YANG schema fragment defined in module <b>")
+ .append(def.getModule().argument()).append("</b>\n")
+ .append("<pre>\n");
appendYangSnippet(sb, def.getModule(), ((EffectiveStatement<?, ?>) node).getDeclared());
sb.append("</pre>");
if (node instanceof SchemaNode) {
sb.append("The schema path to identify an instance is\n")
- .append("<i>")
- .append(formatSchemaPath(def.getModule().argument(), ((SchemaNode) node).getPath().getPathFromRoot()))
- .append("</i>\n");
+ .append("<i>")
+ .append(formatSchemaPath(def.getModule().argument(), ((SchemaNode) node).getPath()
+ .getPathFromRoot()))
+ .append("</i>\n");
if (hasBuilderClass(type)) {
final String builderName = new StringBuilder()
- .append(((GeneratedTypeForBuilder) type).getPackageNameForBuilder())
- .append(".").append(type.getName()).append("Builder").toString();
+ .append(((GeneratedTypeForBuilder) type).getPackageNameForBuilder())
+ .append(".").append(type.getName()).append("Builder").toString();
sb.append("\n<p>To create instances of this class use {@link ").append(builderName)
- .append("}.\n")
- .append("@see ").append(builderName).append('\n');
+ .append("}.\n")
+ .append("@see ").append(builderName).append('\n');
if (node instanceof ListSchemaNode) {
final StringBuilder linkToKeyClass = new StringBuilder();
final String[] namespace = Iterables.toArray(
- BSDOT_SPLITTER.split(type.getFullyQualifiedName()), String.class);
+ BSDOT_SPLITTER.split(type.getFullyQualifiedName()), String.class);
final String className = namespace[namespace.length - 1];
linkToKeyClass.append(BindingGeneratorUtil.packageNameForSubGeneratedType(
- ((GeneratedTypeForBuilder) type).getBasePackageName(), (SchemaNode) node,
- BindingNamespaceType.Key)).append('.').append(className).append("Key");
+ ((GeneratedTypeForBuilder) type).getBasePackageName(), (SchemaNode) node,
+ BindingNamespaceType.Key)).append('.').append(className).append("Key");
List<QName> keyDef = ((ListSchemaNode) node).getKeyDefinition();
if (keyDef != null && !keyDef.isEmpty()) {
}
private static void appendYangSnippet(StringBuilder sb, ModuleEffectiveStatement module,
- DeclaredStatement<?> stmt) {
+ DeclaredStatement<?> stmt) {
for (String str : YANG_FORMATTER.toYangTextSnippet(module, stmt)) {
sb.append(encodeAngleBrackets(encodeJavadocSymbols(str)));
}
}
/**
- * Returns properties names in formatted string
+ * Returns properties names in formatted string.
+ *
* @param properties list of given properties
* @return properties names in formatted string
*/
}
/**
- * Returns formatted type description
- * @param type given type
- * @return formatted type description
- */
- public static String formatDataForJavaDoc(final GeneratedType type) {
- final StringBuilder javaDoc = new StringBuilder();
- final TypeComment comment = type.getComment();
- if (comment != null) {
- javaDoc.append(comment.getJavadoc())
- .append(NEW_LINE)
- .append(NEW_LINE)
- .append(NEW_LINE);
- }
-
- appendSnippet(javaDoc, type);
-
- return javaDoc.toString();
- }
-
- /**
- * Returns parameter name, based on given Type
+ * Returns parameter name, based on given Type.
+ *
* @param returnType given type
- * @param paramName parameter name
+ * @param paramName parameter name
* @return parameter name, based on given Type
*/
public static String paramValue(final Type returnType, final String paramName) {
return comment == null ? "" : wrapToDocumentation(formatToParagraph(comment.trim(), 0));
}
- private static String formatDataForJavaDoc(final TypeMember type, final String additionalComment) {
- final StringBuilder javaDoc = new StringBuilder();
- if (type.getComment() != null && !type.getComment().isEmpty()) {
- javaDoc.append(formatToParagraph(type.getComment(), 0))
- .append(NEW_LINE)
- .append(NEW_LINE)
- .append(NEW_LINE);
- }
- javaDoc.append(additionalComment);
- return wrapToDocumentation(javaDoc.toString());
- }
-
/**
- * Returns related Javadoc
+ * Returns related Javadoc.
+ *
* @param methodSignature method signature
* @return related Javadoc
*/
}
/**
- * Encodes angle brackets in yang statement description
+ * Encodes angle brackets in yang statement description.
+ *
* @param description description of a yang statement which is used to generate javadoc comments
* @return string with encoded angle brackets
*/
}
/**
- * Returns collection of properties as formatted String
+ * Returns collection of properties as formatted String.
+ *
* @param properties list of given properties
* @return generated properties as formatted String
*/
}
/**
- * Returns properties as formatted String
- * @param properties list of given properties
+ * Returns properties as formatted String.
+ *
+ * @param properties list of given properties
* @param booleanName Java Boolean type name
* @return Properties as formatted String
*/
}
/**
- * Extracts available restrictions from given type
+ * Extracts available restrictions from given type.
+ *
* @param currentType given type
* @return restrictions from given type
*/
}
/**
- * sets fieldname according to property for return type
+ * sets fieldname according to property for return type.
* method(type fieldname)
*
* @param property type from getter
/**
* Returns built setter method body from input parameters.
- * @param field generated property
- * @param typeName type name
+ *
+ * @param field generated property
+ * @param typeName type name
* @param returnTypeName return type name
* @return built setter method body
*/
- public static String setterMethod(final GeneratedProperty field, final String typeName, final String returnTypeName) {
+ public static String setterMethod(final GeneratedProperty field, final String typeName, final String
+ returnTypeName) {
final StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("public ")
.append(typeName)
}
/**
- * Returns simple name of underlying class
+ * Returns simple name of underlying class.
+ *
* @return Simple name of underlying class
*/
public static String getSimpleNameForBuilder() {
}
/**
- * Makes start of getter name uppercase
+ * Makes start of getter name uppercase.
*
- * @param s getter name without prefix
+ * @param str getter name without prefix
* @return getter name starting in uppercase
*/
- public static String toFirstUpper(final String s) {
- return s != null && s.length() != 0 ? Character.isUpperCase(s.charAt(0)) ? s : s.length() == 1 ?
- s.toUpperCase() : s.substring(0, 1).toUpperCase() + s.substring(1) : s;
+ public static String toFirstUpper(final String str) {
+ return str != null && str.length() != 0 ? Character.isUpperCase(str.charAt(0)) ? str : str.length() == 1
+ ? str.toUpperCase() : str.substring(0, 1).toUpperCase() + str.substring(1) : str;
}
/**
/**
* Returns list of properties as formatted String.
+ *
* @param properties input list of generated properties
* @return formatted property list as String
*/
}
/**
- * util method for unionTemplateBuilderTemplate
+ * util method for unionTemplateBuilderTemplate.
+ *
* @return string with clarification for javadoc
*/
public static String getClarification() {
final StringBuilder clarification = new StringBuilder();
- clarification.append("The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.\n")
- .append("In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).\n")
+ clarification.append("The purpose of generated class in src/main/java for Union types is to create new "
+ + "instances of unions from a string representation.\n")
+ .append("In some cases it is very difficult to automate it since there can be unions such as (uint32 "
+ + "- uint16), or (string - uint32).\n")
.append("\n")
.append("The reason behind putting it under src/main/java is:\n")
- .append("This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent\n")
+ .append("This class is generated in form of a stub and needs to be finished by the user. This class "
+ + "is generated only once to prevent\n")
.append("loss of user code.\n")
.append("\n");
return clarification.toString();
/**
* Returns source path as String.
- * @param module module
+ *
+ * @param module module
* @param moduleFilePathResolver function module to module file path
* @return formatted String source path
*/
- public static String getSourcePath(final Module module, final Function<Module, Optional<String>> moduleFilePathResolver) {
+ public static String getSourcePath(final Module module, final Function<Module, Optional<String>>
+ moduleFilePathResolver) {
final java.util.Optional<String> moduleFilePath = moduleFilePathResolver.apply(module);
- Preconditions.checkArgument(moduleFilePath.isPresent(),"Module file path for %s is not present", module);
+ Preconditions.checkArgument(moduleFilePath.isPresent(), "Module file path for %s is not present", module);
return moduleFilePath.get();
}
/**
* Util method for unionTemplateBuilderTemplate.
+ *
* @param modifier enum representing Java access modifier
* @return needed access modifier
*/
public static String getAccessModifier(final AccessModifier modifier) {
switch (modifier) {
- case PUBLIC: return "public ";
- case PROTECTED: return "protected ";
- case PRIVATE: return "private ";
- default: return "";
+ case PUBLIC:
+ return "public ";
+ case PROTECTED:
+ return "protected ";
+ case PRIVATE:
+ return "private ";
+ default:
+ return "";
}
}
/**
- * @param text Content of tag description
+ * Return formatted description.
+ * @param text Content of tag description
* @param nextLineIndent Number of spaces from left side default is 12
* @return formatted description
*/
@import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BuilderRenderer.getAllIfcs
@import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BuilderRenderer.hasImplementsFromUses
@import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BuilderRenderer.toListOfNames
-@import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.AbstractRangeGenerator
-@import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.LengthGenerator
+@import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.AbstractRangeGenerator
+@import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.LengthGenerator
@import org.opendaylight.mdsal.binding.javav2.util.BindingMapping
@import org.opendaylight.mdsal.binding.javav2.generator.util.Types
@import org.opendaylight.mdsal.binding.javav2.model.api.ConcreteType
@import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil.getRestrictions
@import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil.paramValue
-@import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.AbstractRangeGenerator
-@import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.LengthGenerator
+@import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.AbstractRangeGenerator
+@import org.opendaylight.mdsal.binding.javav2.java.api.generator.range_generators.LengthGenerator
@import org.opendaylight.mdsal.binding.javav2.model.api.Type
@(currentType: Type, paramName: String, returnType: Type, rangeGenerator: AbstractRangeGenerator[_])
Assert.assertNotNull(f);
}
final List<String> files = new ArrayList<>();
+ final RuntimeException runtimeException = new RuntimeException();
for (final File file : generateToFile) {
BufferedReader br = null;
FileReader fr = null;
fr = new FileReader(file.getAbsolutePath());
br = new BufferedReader(fr);
final StringBuilder sb = new StringBuilder();
- String sCurrentLine;
- while ((sCurrentLine = br.readLine()) != null) {
- sb.append(sCurrentLine).append('\n');
+ String currentLine;
+ while ((currentLine = br.readLine()) != null) {
+ sb.append(currentLine).append('\n');
}
files.add(sb.toString());
} catch (final IOException e) {
- e.printStackTrace();
+ throw new RuntimeException(e);
} finally {
try {
if (br != null) {
fr.close();
}
} catch (final IOException ex) {
- ex.printStackTrace();
+ runtimeException.addSuppressed(ex);
}
}
}