Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 06d206c7 by Tony Chemit at 2020-05-15T12:42:46+02:00 Only generate templates when model is init. - - - - - b1466c3c by Tony Chemit at 2020-05-17T20:31:27+02:00 Rethink Usage support from topia-extension - - - - - 986b5c2c by Tony Chemit at 2020-05-17T20:31:45+02:00 fix if parent file is null (should find out how does that happens) - - - - - 11 changed files: - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/connexion/DataSourceSelectorHandler.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ChooseDbModeUIHandler.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ConfigUIHandler.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java - persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java - pom.xml - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java - services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java Changes: ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/save/SaveLocalModel.java ===================================== @@ -132,7 +132,7 @@ public class SaveLocalModel extends AdminActionModel { public boolean isCanSaveLocal() { boolean validate = !doBackup || backupFile != null && - !backupFile.exists() && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); + !backupFile.exists() && backupFile.getParentFile()!=null && backupFile.getParentFile().exists() && ObserveUtil.withSqlGzExtension(backupFile.getName()); if (validate) { String filename = getBackupFileName(); validate = !filename.isEmpty() && !filename.contains("."); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/connexion/DataSourceSelectorHandler.java ===================================== @@ -63,7 +63,7 @@ public class DataSourceSelectorHandler implements UIHandler<DataSourceSelector> String text = null; if (valid) { ObserveDataSourceInformation dataSourceInformation = model.getDataSourceInformation(); - if (dataSourceInformation != null && dataSourceInformation.getVersion() != null) { + if (model.isInit() && dataSourceInformation != null && dataSourceInformation.getVersion() != null) { text = ObserveDataSourceInformationTemplate.generate(dataSourceInformation); } } else { ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ChooseDbModeUIHandler.java ===================================== @@ -52,8 +52,10 @@ class ChooseDbModeUIHandler extends StorageTabUIHandler<ChooseDbModeUI> implemen PropertyChangeListener listener = evt -> { StorageUIModel model = (StorageUIModel) evt.getSource(); - String txt = StorageUIModelTemplate.generateDataSourceSelectModeResume(model); - ui.getResume().setText(txt); + if (model.isInit() && model.isValid()) { + String txt = StorageUIModelTemplate.generateDataSourceSelectModeResume(model); + ui.getResume().setText(txt); + } }; StorageUIModel model = ui.getModel(); model.addPropertyChangeListener(StorageUIModel.DB_MODE_PROPERTY_NAME, listener); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/tabs/ConfigUIHandler.java ===================================== @@ -124,7 +124,10 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI } String updateConnexionStatusText(@SuppressWarnings("unused") ConnexionStatus status) { - return StorageUIModelTemplate.generateConnexionTestResult(ui.getModel()); + if (ui.getModel().isInit()) { + return StorageUIModelTemplate.generateConnexionTestResult(ui.getModel()); + } + return ""; } ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java ===================================== @@ -58,8 +58,9 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static final String INSERT_LAST_UPDATE_PATTERN = "INSERT INTO COMMON.LASTUPDATEDATE (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, TYPE, LASTUPDATEDATE) VALUES ('fr.ird.observe.entities.LastUpdateDate#1236861982132#0.%03d', 0, CURRENT_TIMESTAMP, '%s', CURRENT_TIMESTAMP);"; private static final String CREATE_SCHEMA_SQL = "CREATE SCHEMA %s;"; protected final String authenticationToken; - private transient TopiaMetadataModelSupport topiaMetadataModelSupport; private final TopiaSqlTablesFactory topiaSqlTablesFactory; + private transient TopiaMetadataModelSupport topiaMetadataModelSupport; + private transient ObserveTopiaUsageModel topiaUsageModel; /** * Mise à {@code true} quand au moins une connection a été effectuée. @@ -89,6 +90,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat getSessionRegistry(), getTopiaMetadataModelSupport(), this, + getTopiaUsageModel(), getConfiguration() ) ); @@ -277,7 +279,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return referentialTables; } - public <E extends ReferentialEntity> TopiaSqlTables getReferentialTable(Class<E> entityType) { + public <E extends ReferentialEntity<?,?>> TopiaSqlTables getReferentialTable(Class<E> entityType) { ObserveEntityEnum entityEnum = ObserveEntityEnum.valueOf(entityType); return referentialTables = topiaSqlTablesFactory.newReplicateEntityTables(new TripReplicateTablesPredicate(), entityEnum); } @@ -286,6 +288,10 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat return topiaMetadataModelSupport == null ? topiaMetadataModelSupport = newModelSupport() : topiaMetadataModelSupport; } + public ObserveTopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel == null ? topiaUsageModel = new ObserveTopiaUsageModel() : topiaUsageModel; + } + private void executeSqlStatements0(TopiaSqlScript content) { SqlScriptReader scriptLocation = content.getLocation(); @@ -326,7 +332,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat private static class TripReplicateTablesPredicate implements TopiaSqlTablesFactory.TopiaSqlTablesPredicate { - private final Set<TopiaMetadataEntity> dones = new LinkedHashSet<>(); + private final Set<TopiaMetadataEntity> done = new LinkedHashSet<>(); private final Set<String> sections = ImmutableSet.of( ObserveEntityEnum.ll_observation_Branchline.name(), ObserveEntityEnum.ll_observation_Basket.name(), @@ -337,7 +343,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat @Override public boolean acceptEntity(TopiaMetadataEntity metadataEntity) { - return dones.add(metadataEntity); + return done.add(metadataEntity); } @Override ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java ===================================== @@ -29,7 +29,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.TopiaEntityEnumProvider; import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContextConstructorParameter; import org.nuiton.topia.persistence.internal.support.TopiaUsageSupportImpl; import org.nuiton.topia.persistence.metadata.TopiaMetadataModel; @@ -39,6 +38,7 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.net.URL; import java.sql.Connection; @@ -57,8 +57,8 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste private final boolean showSql; private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private TopiaEntityEnumProvider topiaEntityEnumProvider; - private TopiaUsageSupport topiaUsageSupport; + private final TopiaUsageModel topiaUsageModel; + private transient TopiaUsageSupport topiaUsageSupport; public ObserveTopiaPersistenceContext(AbstractTopiaPersistenceContextConstructorParameter parameter) { super(parameter); @@ -68,17 +68,15 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste public ObserveTopiaPersistenceContext(ObserveTopiaPersistenceContextConstructorParameter parameter) { super(parameter); topiaMetadataModelSupport = parameter.getTopiaMetadataModelSupport(); - topiaEntityEnumProvider = parameter.getTopiaEntityEnumProvider(); + topiaUsageModel = parameter.getTopiaUsageModel(); this.showSql = parameter.getConfiguration().isShowSql(); } public <E extends Entity> Date getLastUpdateDate(Class<E> entityType) { - LastUpdateDateTopiaDao dao = getDao(LastUpdateDate.class, LastUpdateDateTopiaDao.class); LastUpdateDate lastUpdateDate = dao.findUniqueByType(entityType.getName()); log.debug("getLastUpdateDate: " + lastUpdateDate.getLastUpdateDate() + " for entity type: " + entityType.getName()); return lastUpdateDate.getLastUpdateDate(); - } public <E extends Entity> void updateLastUpdateDate(E entity, Date date) { @@ -125,7 +123,6 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste Objects.requireNonNull(entityEnum, "Entity " + entity + " is not managed by ToPIA"); //noinspection unchecked return (Class<E>) entityEnum.getContract(); - } public <E extends Entity> TopiaDao<E> getDao(E entity) { @@ -173,9 +170,7 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } dao.delete(entity); } - updateLastUpdateDate(entityType, now); - } public void executeSqlScript(URL location) { @@ -201,29 +196,27 @@ public class ObserveTopiaPersistenceContext extends AbstractObserveTopiaPersiste } public TopiaUsageSupport getTopiaUsageSupport() { - if (topiaUsageSupport == null) { - topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaMetadataModelSupport, topiaEntityEnumProvider); - } - return topiaUsageSupport; + return topiaUsageSupport == null ? topiaUsageSupport = new TopiaUsageSupportImpl(this, topiaUsageModel) : topiaUsageSupport; } - public <E extends DataEntity> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getMultipleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getMultipleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - public <E extends DataEntity> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { + public <E extends DataEntity<?, ?>> E getSingleAssociationParent(Class<E> associationContainerType, String associationName, String associationId) { ObserveEntityEnum parentEntityEnum = ObserveEntityEnum.valueOf(associationContainerType); TopiaMetadataModel metadataModel = topiaMetadataModelSupport.getMetadataModel(); String parentId = metadataModel.getSingleAssociationParentId(getSqlSupport(), parentEntityEnum, associationName, associationId); return getAssociationParent(associationContainerType, associationName, associationId, parentId); } - private <E extends DataEntity> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { + @SuppressWarnings("unchecked") + private <E extends DataEntity<?, ?>> E getAssociationParent(Class<E> associationContainerType, String associationName, String associationId, String parentId) { if (parentId == null) { - @SuppressWarnings("unchecked") + @SuppressWarnings({"rawtypes"}) Class<? extends DataEntity> associationType = getTopiaIdFactory().getClassName(associationId); throw new DataAssociationParentNotFoundException(DbModelHelper.fromDataEntity(associationType).toDtoType(), associationName, associationId); } ===================================== persistence/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContextConstructorParameter.java ===================================== @@ -29,13 +29,16 @@ import org.nuiton.topia.persistence.internal.HibernateProvider; import org.nuiton.topia.persistence.internal.TopiaHibernateSessionRegistry; import org.nuiton.topia.persistence.internal.support.TopiaFiresSupport; import org.nuiton.topia.persistence.support.TopiaMetadataModelSupport; +import org.nuiton.topia.persistence.support.TopiaUsageSupport; +import org.nuiton.topia.persistence.usage.TopiaUsageModel; import java.util.Objects; class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPersistenceContextConstructorParameter { private final TopiaMetadataModelSupport topiaMetadataModelSupport; - private final TopiaEntityEnumProvider topiaEntityEnumProvider; + private final TopiaEntityEnumProvider<?> topiaEntityEnumProvider; + private final TopiaUsageModel topiaUsageModel; private final ObserveTopiaConfiguration configuration; /** @@ -45,13 +48,15 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe * @param sessionRegistry hibernate session registry * @param topiaMetadataModelSupport metaData model support * @param topiaEntityEnumProvider entity enum provider + * @param topiaUsageModel topia usage support * @param configuration topia configuration */ - public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider topiaEntityEnumProvider, ObserveTopiaConfiguration configuration) { + public ObserveTopiaPersistenceContextConstructorParameter(HibernateProvider hibernateProvider, TopiaFiresSupport applicationFiresSupport, TopiaIdFactory topiaIdFactory, TopiaHibernateSessionRegistry sessionRegistry, TopiaMetadataModelSupport topiaMetadataModelSupport, TopiaEntityEnumProvider<?> topiaEntityEnumProvider, TopiaUsageModel topiaUsageModel, ObserveTopiaConfiguration configuration) { super(hibernateProvider, applicationFiresSupport, topiaIdFactory, sessionRegistry); this.topiaMetadataModelSupport = Objects.requireNonNull(topiaMetadataModelSupport); - this.topiaEntityEnumProvider = topiaEntityEnumProvider; - this.configuration = configuration; + this.topiaEntityEnumProvider = Objects.requireNonNull(topiaEntityEnumProvider); + this.topiaUsageModel = Objects.requireNonNull(topiaUsageModel); + this.configuration = Objects.requireNonNull(configuration); } public TopiaMetadataModelSupport getTopiaMetadataModelSupport() { @@ -62,7 +67,11 @@ class ObserveTopiaPersistenceContextConstructorParameter extends AbstractTopiaPe return configuration; } - public TopiaEntityEnumProvider getTopiaEntityEnumProvider() { + public TopiaEntityEnumProvider<?> getTopiaEntityEnumProvider() { return topiaEntityEnumProvider; } + + public TopiaUsageModel getTopiaUsageModel() { + return topiaUsageModel; + } } ===================================== pom.xml ===================================== @@ -24,7 +24,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2020.26</version> + <version>2020.27</version> </parent> <groupId>fr.ird.observe</groupId> @@ -162,7 +162,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>4.31</lib.version.toolkit> + <lib.version.toolkit>4.32</lib.version.toolkit> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> @@ -176,7 +176,7 @@ <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> <!--<lib.version.java4all.config>1.0.8-SNAPSHOT</lib.version.java4all.config>--> <!--<lib.version.nuiton.topia>3.4.2-SNAPSHOT</lib.version.nuiton.topia>--> -<!-- <lib.version.java4all.topia>1.20-SNAPSHOT</lib.version.java4all.topia>--> + <lib.version.java4all.topia>1.22</lib.version.java4all.topia> <!--<lib.version.java4all.http>1.0.17-SNAPSHOT</lib.version.java4all.http>--> <!-- license header configuration --> ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/DeleteSqlStatementGenerator.java ===================================== @@ -51,7 +51,7 @@ public class DeleteSqlStatementGenerator { public DeleteSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.metadataEntity = Objects.requireNonNull(metadataEntity); this.associations = topiaMetadataModel.getAssociations(metadataEntity); - this.reverseAssociations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.reverseAssociations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public List<String> generateSql(String id) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/ReplaceSqlStatementGenerator.java ===================================== @@ -58,7 +58,7 @@ public class ReplaceSqlStatementGenerator { public ReplaceSqlStatementGenerator(TopiaMetadataModel topiaMetadataModel, TopiaMetadataEntity metadataEntity) { this.compositions = Objects.requireNonNull(topiaMetadataModel).getReverseCompositions(Objects.requireNonNull(metadataEntity)); - this.associations = topiaMetadataModel.getReverseAssociations(metadataEntity); + this.associations = topiaMetadataModel.getReverseManyToManyAssociations(metadataEntity); } public ImmutableList<String> generateSql(String sourceId, String replacementId) { ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/usage/UsageServiceLocal.java ===================================== @@ -44,6 +44,8 @@ import fr.ird.observe.spi.context.DataDtoEntityContext; import fr.ird.observe.spi.context.DtoEntityContext; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.map.ImmutableTypedMap; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.support.TopiaUsageSupport; @@ -58,17 +60,33 @@ import java.util.Map; */ public class UsageServiceLocal extends ObserveServiceLocal implements UsageService { + private static final Logger log = LogManager.getLogger(UsageServiceLocal.class); + @Override public <D extends ReferentialDto> DtoUsageCountResult<D> count(DtoUsageCountRequest<D> request) { ReferentialEntity<D, ?> entity = loadEntity(request.getDtoType(), request.getId()); TopiaUsageSupport topiaUsageSupport = serviceContext.getTopiaPersistenceContext().getTopiaUsageSupport(); - Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); - Map<Class<? extends TopiaEntity>, Long> associations = topiaUsageSupport.countReverseAssociations(entity, DtoModelHelper::isData); - ImmutableTypedMap.Builder<Long> result = ImmutableTypedMap.builder(); - buildCountUsageResult(compositions, result); - buildCountUsageResult(associations, result); + + Map<Class<? extends TopiaEntity>, Long> compositions = topiaUsageSupport.countReverseCompositions(entity, e -> true); + long compositionsSum = compositions.values().stream().reduce(Long::sum).orElse(0L); + if (compositionsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s", compositionsSum, entity.getTopiaId())); + buildCountUsageResult(compositions, result); + } + Map<Class<? extends TopiaEntity>, Long> manyToManyAssociations = topiaUsageSupport.countReverseManyToManyAssociations(entity, DtoModelHelper::isData); + long manyToManyAssociationsSum = manyToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (manyToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many association of entity: %s", manyToManyAssociationsSum, entity.getTopiaId())); + buildCountUsageResult(manyToManyAssociations, result); + } + Map<Class<? extends TopiaEntity>, Long> oneToManyAssociations = topiaUsageSupport.countReverseOneToManyAssociations(entity, DtoModelHelper::isData); + long oneToManyAssociationsSum = oneToManyAssociations.values().stream().reduce(Long::sum).orElse(0L); + if (oneToManyAssociationsSum > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many association of entity: %s", oneToManyAssociationsSum, entity.getTopiaId())); +// buildCountUsageResult(oneToManyAssociations, result); + } return new DtoUsageCountResult<>(request, result.build()); } @@ -81,14 +99,23 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi Class<T> dtoType = DtoModelHelper.getDtoType(targetType); DtoEntityContext<T, R, Entity, ?> entityContext = DbModelHelper.fromDto(dtoType); Class<Entity> entityType = entityContext.toEntityType(); - - List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); - List<Entity> associations = topiaUsageSupport.findReverseAssociation(entity, entityType); - ImmutableSet.Builder<R> result = ImmutableSet.builder(); - buildUsageResult(entityType, compositions, result); - buildUsageResult(entityType, associations, result); + List<Entity> compositions = topiaUsageSupport.findReverseComposition(entity, entityType); + if (compositions.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse composition of entity: %s for type: %s", compositions.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, compositions, result); + } + List<Entity> manyToManyAssociations = topiaUsageSupport.findReverseManyToManyAssociation(entity, entityType); + if (manyToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse many to many composition of entity: %s for type: %s", manyToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); + buildFindUsageResult(entityType, manyToManyAssociations, result); + } + List<Entity> oneToManyAssociations = topiaUsageSupport.findReverseOneToManyAssociation(entity, entityType); + if (oneToManyAssociations.size() > 0) { + log.info(String.format("Found %d entity(ies) in reverse one to many composition of entity: %s for type: %s", oneToManyAssociations.size(), entity.getTopiaId(), entityType.getName())); +// buildFindUsageResult(entityType, oneToManyAssociations, result); + } return result.build(); } @@ -106,7 +133,7 @@ public class UsageServiceLocal extends ObserveServiceLocal implements UsageServi } @SuppressWarnings({"rawtypes", "unchecked"}) - private <R extends DtoReference<?, R>> void buildUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { + private <R extends DtoReference<?, R>> void buildFindUsageResult(Class<? extends TopiaEntity> type, List<? extends TopiaEntity> entities, ImmutableSet.Builder<R> result) { if (ReferentialEntity.class.isAssignableFrom(type)) { addAllReferentialUsage((Class) type, (List) entities, (ImmutableSet.Builder) result); } else { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b3e8d3f6023b88140aa2f82b3... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b3e8d3f6023b88140aa2f82b3... You're receiving this email because of your account on gitlab.com.