mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-01 11:05:56 +01:00
Make build with queryable type annotation processor faster
With this, gradle can determine the originating element for the generated query types and the store factories correctly and therefor can run incremental builds when the queryable type annotation processor is added as a dependency.
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package sonia.scm.annotation;
|
package sonia.scm.annotation;
|
||||||
|
|
||||||
|
import com.squareup.javapoet.AnnotationSpec;
|
||||||
import com.squareup.javapoet.ClassName;
|
import com.squareup.javapoet.ClassName;
|
||||||
import com.squareup.javapoet.JavaFile;
|
import com.squareup.javapoet.JavaFile;
|
||||||
import com.squareup.javapoet.MethodSpec;
|
import com.squareup.javapoet.MethodSpec;
|
||||||
@@ -26,6 +27,7 @@ import jakarta.inject.Inject;
|
|||||||
import sonia.scm.ModelObject;
|
import sonia.scm.ModelObject;
|
||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import javax.annotation.processing.ProcessingEnvironment;
|
import javax.annotation.processing.ProcessingEnvironment;
|
||||||
import javax.lang.model.element.Element;
|
import javax.lang.model.element.Element;
|
||||||
import javax.lang.model.element.Modifier;
|
import javax.lang.model.element.Modifier;
|
||||||
@@ -56,7 +58,9 @@ class FactoryClassCreator {
|
|||||||
TypeSpec
|
TypeSpec
|
||||||
.classBuilder(element.getSimpleName() + "StoreFactory")
|
.classBuilder(element.getSimpleName() + "StoreFactory")
|
||||||
.addModifiers(Modifier.PUBLIC)
|
.addModifiers(Modifier.PUBLIC)
|
||||||
.addJavadoc("Generated queryable store factory for type {@link $T}.\nTo create conditions in queries, use the static fields in the class {@link $TQueryFields}.\n", typeNameOfDataClass, typeNameOfDataClass);
|
.addAnnotation(AnnotationSpec.builder(Generated.class).addMember("value", "$S", "sonia.scm.annotation.QueryableTypeAnnotationProcessor").build())
|
||||||
|
.addJavadoc("Generated queryable store factory for type {@link $T}.\nTo create conditions in queries, use the static fields in the class {@link $TQueryFields}.\n", typeNameOfDataClass, typeNameOfDataClass)
|
||||||
|
.addOriginatingElement(dataClassTypeElement);
|
||||||
|
|
||||||
createStoreFactoryField(builder);
|
createStoreFactoryField(builder);
|
||||||
createConstructor(builder);
|
createConstructor(builder);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package sonia.scm.annotation;
|
|||||||
|
|
||||||
import com.google.auto.common.MoreElements;
|
import com.google.auto.common.MoreElements;
|
||||||
import com.google.auto.common.MoreTypes;
|
import com.google.auto.common.MoreTypes;
|
||||||
|
import com.squareup.javapoet.AnnotationSpec;
|
||||||
import com.squareup.javapoet.ClassName;
|
import com.squareup.javapoet.ClassName;
|
||||||
import com.squareup.javapoet.FieldSpec;
|
import com.squareup.javapoet.FieldSpec;
|
||||||
import com.squareup.javapoet.JavaFile;
|
import com.squareup.javapoet.JavaFile;
|
||||||
@@ -28,6 +29,7 @@ import com.squareup.javapoet.TypeSpec;
|
|||||||
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
|
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
|
||||||
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import javax.annotation.processing.ProcessingEnvironment;
|
import javax.annotation.processing.ProcessingEnvironment;
|
||||||
import javax.lang.model.element.AnnotationMirror;
|
import javax.lang.model.element.AnnotationMirror;
|
||||||
import javax.lang.model.element.AnnotationValue;
|
import javax.lang.model.element.AnnotationValue;
|
||||||
@@ -70,7 +72,9 @@ class QueryFieldClassCreator {
|
|||||||
TypeSpec
|
TypeSpec
|
||||||
.classBuilder(element.getSimpleName() + "QueryFields")
|
.classBuilder(element.getSimpleName() + "QueryFields")
|
||||||
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
|
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
|
||||||
.addJavadoc("Generated query fields for type {@link $T}.\nTo create a queryable store for this, use an injected instance of the {@link $TStoreFactory}.\n", TypeName.get(typeElement.asType()), TypeName.get(typeElement.asType()));
|
.addAnnotation(AnnotationSpec.builder(Generated.class).addMember("value", "$S", "sonia.scm.annotation.QueryableTypeAnnotationProcessor").build())
|
||||||
|
.addJavadoc("Generated query fields for type {@link $T}.\nTo create a queryable store for this, use an injected instance of the {@link $TStoreFactory}.\n", TypeName.get(typeElement.asType()), TypeName.get(typeElement.asType()))
|
||||||
|
.addOriginatingElement(typeElement);
|
||||||
|
|
||||||
createPrivateConstructor(builder);
|
createPrivateConstructor(builder);
|
||||||
processParents(typeElement, builder);
|
processParents(typeElement, builder);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package sonia.scm.annotation;
|
|||||||
|
|
||||||
import com.google.auto.common.MoreElements;
|
import com.google.auto.common.MoreElements;
|
||||||
import org.kohsuke.MetaInfServices;
|
import org.kohsuke.MetaInfServices;
|
||||||
|
import sonia.scm.store.QueryableType;
|
||||||
|
|
||||||
import javax.annotation.processing.AbstractProcessor;
|
import javax.annotation.processing.AbstractProcessor;
|
||||||
import javax.annotation.processing.Processor;
|
import javax.annotation.processing.Processor;
|
||||||
@@ -29,6 +30,7 @@ import javax.lang.model.element.Element;
|
|||||||
import javax.lang.model.element.TypeElement;
|
import javax.lang.model.element.TypeElement;
|
||||||
import javax.tools.Diagnostic;
|
import javax.tools.Diagnostic;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -42,6 +44,15 @@ public class QueryableTypeAnnotationProcessor extends AbstractProcessor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnvironment) {
|
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnvironment) {
|
||||||
|
if (roundEnvironment.processingOver()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Only process elements that actually have the annotation
|
||||||
|
Set<? extends Element> elements = roundEnvironment.getElementsAnnotatedWith(QueryableType.class);
|
||||||
|
if (elements.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (TypeElement annotation : annotations) {
|
for (TypeElement annotation : annotations) {
|
||||||
log("Found annotation: " + annotation.getQualifiedName());
|
log("Found annotation: " + annotation.getQualifiedName());
|
||||||
roundEnvironment.getElementsAnnotatedWith(annotation).forEach(element -> {
|
roundEnvironment.getElementsAnnotatedWith(annotation).forEach(element -> {
|
||||||
@@ -53,6 +64,11 @@ public class QueryableTypeAnnotationProcessor extends AbstractProcessor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<String> getSupportedOptions() {
|
||||||
|
return Collections.emptySet();
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("UnstableApiUsage")
|
@SuppressWarnings("UnstableApiUsage")
|
||||||
private void tryToCreateQueryFieldClass(Element element) {
|
private void tryToCreateQueryFieldClass(Element element) {
|
||||||
TypeElement typeElement = MoreElements.asType(element);
|
TypeElement typeElement = MoreElements.asType(element);
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class AQueryFields {
|
public final class AQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<A> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<A> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -17,10 +17,12 @@
|
|||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableMutableStore;
|
import sonia.scm.store.QueryableMutableStore;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public class AStoreFactory {
|
public class AStoreFactory {
|
||||||
|
|
||||||
private final QueryableStoreFactory storeFactory;
|
private final QueryableStoreFactory storeFactory;
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class BQueryFields {
|
public final class BQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<B> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<B> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class BSubQueryFields {
|
public final class BSubQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<BSub> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<BSub> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class CQueryFields {
|
public final class CQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<C> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<C> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class DQueryFields {
|
public final class DQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<D> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<D> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.Stage;
|
import sonia.scm.Stage;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class EQueryFields {
|
public final class EQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<E> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<E> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class FQueryFields {
|
public final class FQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<F> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<F> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class GQueryFields {
|
public final class GQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<G> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<G> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class HQueryFields {
|
public final class HQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<H> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<H> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class IQueryFields {
|
public final class IQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<I> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<I> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class KQueryFields {
|
public final class KQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<K> REPOSITORY_ID =
|
public static final QueryableStore.IdQueryField<K> REPOSITORY_ID =
|
||||||
new QueryableStore.IdQueryField<>(Repository.class);
|
new QueryableStore.IdQueryField<>(Repository.class);
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class LQueryFields {
|
public final class LQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<L> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<L> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class MQueryFields {
|
public final class MQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<M> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<M> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class NQueryFields {
|
public final class NQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<N> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<N> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -16,8 +16,10 @@
|
|||||||
|
|
||||||
package sonia.scm.testing;
|
package sonia.scm.testing;
|
||||||
|
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public final class OQueryFields {
|
public final class OQueryFields {
|
||||||
public static final QueryableStore.IdQueryField<O> INTERNAL_ID =
|
public static final QueryableStore.IdQueryField<O> INTERNAL_ID =
|
||||||
new QueryableStore.IdQueryField<>();
|
new QueryableStore.IdQueryField<>();
|
||||||
|
|||||||
@@ -18,10 +18,12 @@ package sonia.scm.testing;
|
|||||||
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.store.QueryableMutableStore;
|
import sonia.scm.store.QueryableMutableStore;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public class OneNonModelObjectParentStoreFactory {
|
public class OneNonModelObjectParentStoreFactory {
|
||||||
|
|
||||||
private final QueryableStoreFactory storeFactory;
|
private final QueryableStoreFactory storeFactory;
|
||||||
|
|||||||
@@ -18,11 +18,13 @@ package sonia.scm.testing;
|
|||||||
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.store.QueryableMutableStore;
|
import sonia.scm.store.QueryableMutableStore;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public class OneParentStoreFactory {
|
public class OneParentStoreFactory {
|
||||||
|
|
||||||
private final QueryableStoreFactory storeFactory;
|
private final QueryableStoreFactory storeFactory;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package sonia.scm.testing;
|
|||||||
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.group.Group;
|
import sonia.scm.group.Group;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.store.QueryableMutableStore;
|
import sonia.scm.store.QueryableMutableStore;
|
||||||
@@ -26,6 +26,7 @@ import sonia.scm.store.QueryableStore;
|
|||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
import sonia.scm.user.User;
|
import sonia.scm.user.User;
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public class ThreeParentsStoreFactory {
|
public class ThreeParentsStoreFactory {
|
||||||
|
|
||||||
private final QueryableStoreFactory storeFactory;
|
private final QueryableStoreFactory storeFactory;
|
||||||
|
|||||||
@@ -18,12 +18,15 @@ package sonia.scm.testing;
|
|||||||
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import java.lang.String;
|
import java.lang.String;
|
||||||
|
import javax.annotation.processing.Generated;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.store.QueryableMutableStore;
|
import sonia.scm.store.QueryableMutableStore;
|
||||||
import sonia.scm.store.QueryableStore;
|
import sonia.scm.store.QueryableStore;
|
||||||
import sonia.scm.store.QueryableStoreFactory;
|
import sonia.scm.store.QueryableStoreFactory;
|
||||||
import sonia.scm.user.User;
|
import sonia.scm.user.User;
|
||||||
|
|
||||||
|
|
||||||
|
@Generated("sonia.scm.annotation.QueryableTypeAnnotationProcessor")
|
||||||
public class TwoParentsStoreFactory {
|
public class TwoParentsStoreFactory {
|
||||||
|
|
||||||
private final QueryableStoreFactory storeFactory;
|
private final QueryableStoreFactory storeFactory;
|
||||||
|
|||||||
Reference in New Issue
Block a user