derive4j / derive4j

Compare 6671816 ... +0 ... 9228301

Coverage Reach
processor/src/main/java/org/derive4j/processor/DeriveUtilsImpl.java processor/src/main/java/org/derive4j/processor/OtherwiseMatchingStepDerivator.java processor/src/main/java/org/derive4j/processor/StrictConstructorDerivator.java processor/src/main/java/org/derive4j/processor/CataDerivator.java processor/src/main/java/org/derive4j/processor/AdtParser.java processor/src/main/java/org/derive4j/processor/DeriveConfigBuilder.java processor/src/main/java/org/derive4j/processor/TotalMatchingStepDerivator.java processor/src/main/java/org/derive4j/processor/MapperDerivator.java processor/src/main/java/org/derive4j/processor/DerivingProcessor.java processor/src/main/java/org/derive4j/processor/GettersDerivator.java processor/src/main/java/org/derive4j/processor/ModifiersDerivator.java processor/src/main/java/org/derive4j/processor/Utils.java processor/src/main/java/org/derive4j/processor/LazyConstructorDerivator.java processor/src/main/java/org/derive4j/processor/PatternMatchingDerivator.java processor/src/main/java/org/derive4j/processor/ExportDerivator.java processor/src/main/java/org/derive4j/processor/PartialMatchingStepDerivator.java processor/src/main/java/org/derive4j/processor/FactoryDerivator.java processor/src/main/java/org/derive4j/processor/IO.java processor/src/main/java/org/derive4j/processor/BuiltinDerivator.java processor/src/main/java/org/derive4j/processor/P2.java processor/src/main/java/org/derive4j/processor/Unit.java processor/src/main/java/org/derive4j/processor/Either.java processor-api/src/main/java/org/derive4j/processor/api/model/DataConstruction.java processor-api/src/main/java/org/derive4j/processor/api/model/DataArgument.java processor-api/src/main/java/org/derive4j/processor/api/model/MultipleConstructors.java processor-api/src/main/java/org/derive4j/processor/api/model/DataConstructor.java processor-api/src/main/java/org/derive4j/processor/api/model/DataDeconstructor.java processor-api/src/main/java/org/derive4j/processor/api/model/AlgebraicDataType.java processor-api/src/main/java/org/derive4j/processor/api/model/DeriveConfig.java processor-api/src/main/java/org/derive4j/processor/api/model/TypeConstructor.java processor-api/src/main/java/org/derive4j/processor/api/model/TypeRestriction.java processor-api/src/main/java/org/derive4j/processor/api/model/DeriveTargetClass.java processor-api/src/main/java/org/derive4j/processor/api/model/MatchMethod.java processor-api/src/main/java/org/derive4j/processor/api/model/DerivedInstanceConfig.java processor-api/src/main/java/org/derive4j/processor/api/model/DeriveVisibility.java processor-api/src/main/java/org/derive4j/processor/api/model/Expression.java processor-api/src/main/java/org/derive4j/processor/api/TypeSpecModifier.java processor-api/src/main/java/org/derive4j/processor/api/DerivedCodeSpec.java processor-api/src/main/java/org/derive4j/processor/api/DeriveResult.java processor-api/src/main/java/org/derive4j/processor/api/ObjectModel.java processor-api/src/main/java/org/derive4j/processor/api/MessageLocalization.java processor-api/src/main/java/org/derive4j/processor/api/EitherModel.java processor-api/src/main/java/org/derive4j/processor/api/OptionModel.java processor-api/src/main/java/org/derive4j/processor/api/DeriveMessage.java processor-api/src/main/java/org/derive4j/processor/api/SamInterface.java processor-api/src/main/java/org/derive4j/processor/api/DerivatorSelection.java processor-api/src/main/java/org/derive4j/processor/api/BoundExpression.java processor-api/src/main/java/org/derive4j/processor/api/InstanceLocation.java processor-api/src/main/java/org/derive4j/processor/api/Binding.java processor-api/src/main/java/org/derive4j/processor/api/TypeClassInstance.java processor-api/src/main/java/org/derive4j/processor/api/FreeVariable.java processor-api/src/main/java/org/derive4j/processor/api/FieldsTypeClassInstanceBindingMap.java annotation/src/main/java/org/derive4j/Flavour.java annotation/src/main/java/org/derive4j/Make.java annotation/src/main/java/org/derive4j/Visibility.java annotation/src/main/java/org/derive4j/ArgOption.java

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -19,6 +19,7 @@
Loading
19 19
package org.derive4j.processor;
20 20
21 21
import com.google.auto.service.AutoService;
22 +
import com.squareup.javapoet.AnnotationSpec;
22 23
import com.squareup.javapoet.ClassName;
23 24
import com.squareup.javapoet.JavaFile;
24 25
import com.squareup.javapoet.MethodSpec;
@@ -104,7 +105,10 @@
Loading
104 105
105 106
    deriveConfigBuilder = new DeriveConfigBuilder(processingEnv.getElementUtils());
106 107
107 -
    deriveUtils = new DeriveUtilsImpl(processingEnv.getElementUtils(), processingEnv.getTypeUtils(),
108 +
    deriveUtils = new DeriveUtilsImpl(
109 +
        processingEnv.getElementUtils(),
110 +
        processingEnv.getTypeUtils(),
111 +
        processingEnv.getSourceVersion(),
108 112
        deriveConfigBuilder);
109 113
    builtinDerivator = BuiltinDerivator.derivator(deriveUtils);
110 114
    adtParser = new AdtParser(deriveUtils);
@@ -223,6 +227,11 @@
Loading
223 227
        .addFields(getFields(codeSpec))
224 228
        .addMethods(getMethods(codeSpec));
225 229
230 +
    deriveUtils.generatedAnnotation()
231 +
        .ifPresent(annotation -> builder.addAnnotation(AnnotationSpec.builder(ClassName.get(annotation))
232 +
            .addMember("value", "$S", getClass().getCanonicalName())
233 +
            .build()));
234 +
226 235
    deriveConfig.targetClass().extend().ifPresent(cn -> {
227 236
      if (deriveUtils.findTypeElement(cn).get().getKind().isInterface()) {
228 237
        builder.addSuperinterface(cn);

@@ -18,6 +18,7 @@
Loading
18 18
 */
19 19
package org.derive4j.processor;
20 20
21 +
import com.google.auto.common.GeneratedAnnotations;
21 22
import com.squareup.javapoet.AnnotationSpec;
22 23
import com.squareup.javapoet.ClassName;
23 24
import com.squareup.javapoet.CodeBlock;
@@ -42,6 +43,7 @@
Loading
42 43
import java.util.stream.Collectors;
43 44
import java.util.stream.IntStream;
44 45
import java.util.stream.Stream;
46 +
import javax.lang.model.SourceVersion;
45 47
import javax.lang.model.element.ElementKind;
46 48
import javax.lang.model.element.ExecutableElement;
47 49
import javax.lang.model.element.Modifier;
@@ -145,6 +147,7 @@
Loading
145 147
146 148
  private final Elements            Elements;
147 149
  private final Types               Types;
150 +
  private final SourceVersion       SourceVersion;
148 151
  private final DeriveConfigBuilder deriveConfigBuilder;
149 152
  private final ObjectModel         objectModel;
150 153
@@ -153,10 +156,12 @@
Loading
153 156
  private final Function<Flavour, OptionModel>           optionModel;
154 157
  private final Function<Flavour, Optional<EitherModel>> eitherModel;
155 158
156 -
  DeriveUtilsImpl(Elements Elements, Types Types, DeriveConfigBuilder deriveConfigBuilder) {
159 +
  DeriveUtilsImpl(
160 +
      Elements Elements, Types Types, SourceVersion SourceVersion, DeriveConfigBuilder deriveConfigBuilder) {
157 161
158 162
    this.Elements = Elements;
159 163
    this.Types = Types;
164 +
    this.SourceVersion = SourceVersion;
160 165
    this.deriveConfigBuilder = deriveConfigBuilder;
161 166
162 167
    TypeElement object = Elements.getTypeElement(Object.class.getName());
@@ -383,6 +388,10 @@
Loading
383 388
    return asDeclaredType(typeMirror).map(DeclaredType::asElement).flatMap(asTypeElement::visit);
384 389
  }
385 390
391 +
  public Optional<TypeElement> generatedAnnotation() {
392 +
    return GeneratedAnnotations.generatedAnnotation(Elements, SourceVersion);
393 +
  }
394 +
386 395
  @Override
387 396
  public boolean isWildcarded(TypeMirror typeMirror) {
388 397
    List<? extends TypeMirror> targs = asDeclaredType(typeMirror).map(DeclaredType::getTypeArguments)

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Complexity Coverage
annotation/src/main/java/org/derive4j 100.00% 85.10%
processor-api/src/main/java/org/derive4j/processor/api 82.96% 69.56%
processor/src/main/java/org/derive4j/processor +2.00% 83.80% 0.02% 91.64%
Project Totals (56 files) 83.75% 89.99%
Loading