Projekt

Obecné

Profil

« Předchozí | Další » 

Revize b439853d

Přidáno uživatelem Michal Linha před asi 4 roky(ů)

re #7881 ability to create or edit a user configuration and set or edit its basic attributes, operator value and configuration name are validated, if operator value is wrong user is redirected to main page, auto increment functionality changed to IDENTITY

Zobrazit rozdíly:

src/main/java/vldc/aswi/service/ConfigurationManagerImpl.java
6 6
import org.springframework.context.event.EventListener;
7 7
import org.springframework.core.annotation.Order;
8 8
import org.springframework.stereotype.Service;
9
import vldc.aswi.dao.ConfigurationRepository;
9
import vldc.aswi.dao.*;
10
import vldc.aswi.dao.parameter.ParameterInConfigurationRepository;
11
import vldc.aswi.dao.parameter.ParameterTypeRepository;
10 12
import vldc.aswi.domain.Assembly;
11 13
import vldc.aswi.domain.Configuration;
14
import vldc.aswi.domain.Function;
15
import vldc.aswi.domain.parameter.ParameterInConfiguration;
12 16

  
13 17
import javax.transaction.Transactional;
18
import java.util.ArrayList;
14 19
import java.util.LinkedList;
15 20
import java.util.List;
16 21

  
......
22 27
    @Autowired
23 28
    private ConfigurationRepository configurationRepository;
24 29

  
30
    /** Autowired assembly repository. */
31
    @Autowired
32
    private AssemblyRepository assemblyRepository;
33

  
34
    /** Autowired parameterInConfiguration repository. */
35
    @Autowired
36
    private ParameterInConfigurationRepository parameterInConfigurationRepository;
37

  
38
    /** Autowired operator repository. */
39
    @Autowired
40
    private OperatorRepository operatorRepository;
41

  
42
    /** Autowired location repository. */
43
    @Autowired
44
    private LocationRepository locationRepository;
45

  
46
    /** Autowired parameter type repository. */
47
    @Autowired
48
    private ParameterTypeRepository parameterTypeRepository;
49

  
50
    /** Autowired function repository. */
51
    @Autowired
52
    private FunctionRepository functionRepository;
53

  
54
    /** Autowired user repository. */
55
    @Autowired
56
    private UserRepository userRepository;
57

  
25 58
    /**
26 59
     * Initialization setup for configuration manager. Check if configuration repository contains
27 60
     * records and if not, initialize default values.
......
49 82
        return retVal;
50 83
    }
51 84

  
85
    /**
86
     * Gets configuration according to its ID
87
     * @param id ID of configuration
88
     * @return configuration by ID
89
     */
52 90
    @Override
53 91
    public Configuration getConfigurationById(Long id) {
54 92
        return configurationRepository.getById(id);
55 93
    }
94

  
95
    /**
96
     * Saves configuration and its contents into database
97
     * @param newConfiguration configuration to save
98
     * @param id id of configuration, if not empty configuration is updated
99
     * @return saved configuration
100
     */
101
    @Override
102
    public Configuration saveConfiguration(Configuration newConfiguration, String id) {
103
        if(id.equals("")) {
104
            return addConfiguration(newConfiguration);
105
        }
106
        else {
107
            return editConfiguration(newConfiguration, Long.valueOf(id));
108
        }
109
    }
110

  
111
    /**
112
     * Saves new configuration into database
113
     * @param newConfiguration container with data for a new configuration
114
     * @return saved configuration
115
     */
116
    private Configuration addConfiguration(Configuration newConfiguration) {
117
        Configuration configuration = new Configuration();
118
        Assembly assembly = assemblyRepository.getById(newConfiguration.getAssembly().getId());
119
        configuration.setAssembly(assembly);
120
        configuration.setName(newConfiguration.getName());
121
        configuration.setTableName(newConfiguration.getTableName());
122
        configuration.setUser(userRepository.getById((long) 1));
123
        Configuration savedConfiguration = configurationRepository.save(configuration);
124

  
125
        savedConfiguration.setParametersInConfiguration(new ArrayList<>());
126
        for(int i = 0; i < newConfiguration.getParametersInConfiguration().size(); i++) {
127
            ParameterInConfiguration parameterInConfiguration = new ParameterInConfiguration();
128
            parameterInConfiguration.setParameter(assembly.getParameters().get(i));
129
            parameterInConfiguration.setColumnName(newConfiguration.getParametersInConfiguration().get(i).getColumnName());
130
            parameterInConfiguration.setConfiguration(savedConfiguration);
131
            parameterInConfiguration.setOperatorValue(newConfiguration.getParametersInConfiguration().get(i).getOperatorValue());
132
            parameterInConfiguration.setColumnName(assembly.getParameters().get(i).getName());
133
            if(newConfiguration.getParametersInConfiguration().get(i).getLocation() != null) {
134
                parameterInConfiguration.setLocation(locationRepository.getByName(
135
                        newConfiguration.getParametersInConfiguration().get(i).getLocation().getName()));
136
            }
137
            if(newConfiguration.getParametersInConfiguration().get(i).getOperator() != null) {
138
                parameterInConfiguration.setOperator(operatorRepository.getByName(
139
                        newConfiguration.getParametersInConfiguration().get(i).getOperator().getName()));
140
            }
141
            if(newConfiguration.getParametersInConfiguration().get(i).getFunctions() != null) {
142
                parameterInConfiguration.setFunctions(new ArrayList<>());
143
                for (Function function : newConfiguration.getParametersInConfiguration().get(i).getFunctions()) {
144
                    parameterInConfiguration.getFunctions().add(functionRepository.getByName(function.getName()));
145
                }
146
            }
147
            ParameterInConfiguration savedParameterInConfiguration = parameterInConfigurationRepository.save(
148
                    parameterInConfiguration);
149
            savedConfiguration.getParametersInConfiguration().add(savedParameterInConfiguration);
150
        }
151
        savedConfiguration = configurationRepository.save(savedConfiguration);
152

  
153
        return savedConfiguration;
154
    }
155

  
156
    /**
157
     * Saves edited configuration with given ID
158
     * @param newConfiguration container with data for edited configuration
159
     * @param id ID of edited configuration
160
     * @return saved configuration
161
     */
162
    private Configuration editConfiguration(Configuration newConfiguration, Long id) {
163
        Configuration configuration = configurationRepository.getById(id);
164
        configuration.setName(newConfiguration.getName());
165
        configuration.setTableName(newConfiguration.getTableName());
166

  
167
        for(int i = 0; i < configuration.getParametersInConfiguration().size(); i++) {
168
            ParameterInConfiguration parameterInConfiguration = configuration.getParametersInConfiguration().get(i);
169
            parameterInConfiguration.setOperatorValue(newConfiguration.getParametersInConfiguration().get(i).getOperatorValue());
170
            if(newConfiguration.getParametersInConfiguration().get(i).getColumnName() != null) {
171
                parameterInConfiguration.setColumnName(newConfiguration.getParametersInConfiguration().get(i).getColumnName());
172
            }
173
            if(newConfiguration.getParametersInConfiguration().get(i).getLocation() != null) {
174
                parameterInConfiguration.setLocation(locationRepository.getByName(
175
                        newConfiguration.getParametersInConfiguration().get(i).getLocation().getName()));
176
            }
177
            if(newConfiguration.getParametersInConfiguration().get(i).getOperator() != null) {
178
                parameterInConfiguration.setOperator(operatorRepository.getByName(
179
                        newConfiguration.getParametersInConfiguration().get(i).getOperator().getName()));
180
            }
181
            if(newConfiguration.getParametersInConfiguration().get(i).getFunctions() != null) {
182
                parameterInConfiguration.setFunctions(new ArrayList<>());
183
                for (Function function : newConfiguration.getParametersInConfiguration().get(i).getFunctions()) {
184
                    parameterInConfiguration.getFunctions().add(functionRepository.getByName(function.getName()));
185
                }
186
            }
187
            parameterInConfigurationRepository.save(parameterInConfiguration);
188
        }
189

  
190
        return configurationRepository.save(configuration);
191
    }
56 192
}

Také k dispozici: Unified diff