Revize b439853d
Přidáno uživatelem Michal Linha před asi 4 roky(ů)
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
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