Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/main/java/com/github/_1c_syntax/bsl/mdclasses/CF.java
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public interface CF extends MDClass, ConfigurationTree, CFAccess {
/**
* Возвращает соответствие типов модулей их путям к файлам для дочернего объекта
*/
default Map<ModuleType, URI> mdoModuleTypes(MdoReference mdoReference) {
default Map<ModuleType, List<URI>> mdoModuleTypes(MdoReference mdoReference) {
var child = findChild(mdoReference);
if (child.isPresent() && child.get() instanceof ModuleOwner moduleOwner) {
return moduleOwner.getModuleTypes();
Expand All @@ -122,7 +122,7 @@ default Map<ModuleType, URI> mdoModuleTypes(MdoReference mdoReference) {
/**
* Возвращает соответствие типов модулей их путям к файлам для дочернего объекта
*/
default Map<ModuleType, URI> mdoModuleTypes(String mdoRef) {
default Map<ModuleType, List<URI>> mdoModuleTypes(String mdoRef) {
return mdoModuleTypes(MdoReference.create(mdoRef));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
* Корневой класс конфигурации 1с
*/
@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Configuration implements CF {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
* Класс расширения конфигурации 1с
*/
@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ConfigurationExtension implements CF {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
* Внешняя обработка
*/
@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ExternalDataProcessor implements ExternalSource {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
* Внешний отчет
*/
@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ExternalReport implements ExternalSource {
Expand Down
51 changes: 48 additions & 3 deletions src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
*/
package com.github._1c_syntax.bsl.mdclasses;

import com.github._1c_syntax.bsl.reader.MDMerger;
import com.github._1c_syntax.bsl.reader.MDOReader;
import com.github._1c_syntax.bsl.types.MDOType;
import lombok.experimental.UtilityClass;
Expand Down Expand Up @@ -128,9 +129,53 @@ public List<MDClass> createConfigurations(Path sourcePath) {
*/
@Deprecated(since = "0.16.0")
public List<MDClass> createConfigurations(Path sourcePath, boolean skipSupport) {
return findFiles(sourcePath, SEARCH_CONFIGURATION).parallelStream()
.map(path -> createConfiguration(path, MDCReadSettings.builder().skipSupport(skipSupport).build()))
.toList();
return createConfigurations(sourcePath, MDCReadSettings.builder().skipSupport(skipSupport).build());
}

/**
* Читает каталог проекта и
* - возвращает объект MDClass, если содержится только один объект MDC
* - возвращает объединенную конфигурацию с расширениями
* - возвращает объединение расширений с пустой конфигурацией
*
* @param sourcePath Путь к каталогу исходников
* @return Результат чтения решения
*/
public MDClass createSolution(Path sourcePath) {
var mdcs = createConfigurations(sourcePath, MDCReadSettings.DEFAULT);

if (mdcs.isEmpty()) {
return Configuration.EMPTY;
} else if (mdcs.size() == 1) {
return mdcs.get(0);
} else {
var mdc = mdcs.stream().filter(Configuration.class::isInstance).map(Configuration.class::cast).findFirst();
var cf = mdc.orElse(Configuration.EMPTY);
var extensions = mdcs.stream()
.filter(ConfigurationExtension.class::isInstance)
.map(ConfigurationExtension.class::cast)
.toList();

if (cf.isEmpty()) {
if (extensions.isEmpty()) {
// вернем первое значение, т.к. там нет ни конфы, ни расширений
return mdcs.get(0);
} else if (extensions.size() == 1) {
// есть одно расширение, вернем его
return extensions.get(0);
}
} else if (extensions.isEmpty()) {
// расширений нет, вернем конфигурацию
return cf;
}

// объединим расширения с конфигурацией в одно целое
var result = cf;
for (var extension : extensions) {
result = MDMerger.merge(result, extension);
}
return result;
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class AccountingRegister implements Register, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class AccumulationRegister implements Register, AccessRightsOwner {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Bot.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Bot implements MDObject, ModuleOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class BusinessProcess implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class CalculationRegister implements Register, AccessRightsOwner {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Catalog.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Catalog implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ChartOfAccounts implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ChartOfCalculationTypes implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ChartOfCharacteristicTypes implements ReferenceObject, AccessRightsOwner, ValueTypeOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class CommonCommand implements MDObject, Command {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class CommonForm implements MDObject, Form, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class CommonModule implements MDObject, Module, ModuleOwner {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Constant.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Constant implements MDObject, ModuleOwner, AccessRightsOwner, ValueTypeOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class DataProcessor implements MDObject, ModuleOwner, CommandOwner, AttributeOwner, TabularSectionOwner,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Document.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Document implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class DocumentJournal implements MDObject, ModuleOwner, CommandOwner, AttributeOwner, FormOwner, TemplateOwner,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Enum.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Enum implements MDObject, ModuleOwner, CommandOwner, FormOwner, TemplateOwner, AttributeOwner {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/github/_1c_syntax/bsl/mdo/ExchangePlan.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ExchangePlan implements ReferenceObject, AccessRightsOwner {
Expand Down Expand Up @@ -227,7 +227,7 @@ private static List<RoleRight> computePossibleRights() {
}

@Value
@Builder
@Builder(toBuilder = true)
public static class RecordContent {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class ExternalDataSource implements MDObject, ChildrenOwner, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class FilterCriterion implements MDObject, ModuleOwner, CommandOwner, FormOwner, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class HTTPService implements MDObject, ModuleOwner, ChildrenOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class InformationRegister implements Register, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class IntegrationService implements MDObject, ModuleOwner, ChildrenOwner {
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/com/github/_1c_syntax/bsl/mdo/ModuleOwner.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,12 @@ default ModuleType getModuleTypeByURI(URI uri) {
/**
* Возвращает соответствие типов модулей их путям к файлам
*/
default Map<ModuleType, URI> getModuleTypes() {
return getModules().stream().collect(Collectors.toMap(Module::getModuleType, Module::getUri));
default Map<ModuleType, List<URI>> getModuleTypes() {
return getModules().stream().collect(
Collectors.groupingBy(
Module::getModuleType,
Collectors.mapping(Module::getUri, Collectors.toList())
)
);
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Report.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Report implements MDObject, ModuleOwner, CommandOwner, AttributeOwner, TabularSectionOwner,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Sequence.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Sequence implements MDObject, AttributeOwner, ModuleOwner, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class SettingsStorage implements MDObject, ModuleOwner, FormOwner, TemplateOwner {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/github/_1c_syntax/bsl/mdo/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class Task implements ReferenceObject, AccessRightsOwner {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import java.util.List;

@Value
@Builder
@Builder(toBuilder = true)
@ToString(of = {"name", "uuid"})
@EqualsAndHashCode(of = {"name", "uuid"})
public class WebService implements MDObject, ChildrenOwner, ModuleOwner {
Expand Down
Loading
Loading