Skip to content
Snippets Groups Projects
Commit 8871824c authored by Raphael GIRARDOT's avatar Raphael GIRARDOT
Browse files

- some code refactoring

- respect java standards
- No more use of DbData.splitDbData: directly return the expected data array at extraction (TANGOARCH-715)
parent 8a546dcf
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
......
......@@ -133,6 +133,8 @@ import fr.soleil.archiving.snap.api.persistence.SnapshotPersistenceManagerFactor
import fr.soleil.archiving.snap.api.persistence.spring.dao.SnapshotDAO;
import fr.soleil.archiving.snap.api.tools.SnapAttributeExtract;
import fr.soleil.archiving.snap.api.tools.SnapshotingException;
import fr.soleil.database.DBExtractionConst;
import fr.soleil.lib.project.ObjectUtils;
/**
* Class Description: This device is in charge of extracting snapshots from the
......@@ -151,7 +153,7 @@ import fr.soleil.archiving.snap.api.tools.SnapshotingException;
// --------- End of States Description ----------
@Device
public class SnapExtractor {
public class SnapExtractor implements DBExtractionConst {
@Autowired
SnapshotDAO snapshotDao;
......@@ -171,14 +173,12 @@ public class SnapExtractor {
@DeviceManagement
private DeviceManager devManager;
public void setDevManager(final DeviceManager devManager) {
this.devManager = devManager;
}
@Attribute(name = "version", displayLevel = DispLevel._EXPERT)
@AttributeProperties(description = "The version of the device", label = "version", unit = "")
@AttributeProperties(description = "The version of the device", label = "version", unit = ObjectUtils.EMPTY_STRING)
private final String version = ResourceBundle.getBundle("application").getString("project.version");
public String getVersion() {
......@@ -191,7 +191,7 @@ public class SnapExtractor {
* User identifier (name) used to connect the database SNAP. <br>
* <b>Default value : </b> snap
*/
@DeviceProperty(name = "dbUser", description = "", defaultValue = "")
@DeviceProperty(name = "dbUser", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbUser;
public void setDbUser(final String dbUser) {
......@@ -202,7 +202,7 @@ public class SnapExtractor {
* Password used to connect the database SNAP. <br>
* <b>Default value : </b> snap
*/
@DeviceProperty(name = "dbPassword", description = "", defaultValue = "")
@DeviceProperty(name = "dbPassword", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbPassword;
public void setDbPassword(final String dbPassword) {
......@@ -211,36 +211,36 @@ public class SnapExtractor {
protected int formerState = DevState._UNKNOWN;
@DeviceProperty(name = "dbHost", description = "", defaultValue = "")
@DeviceProperty(name = "dbHost", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbHost;
public void setDbHost(final String dbHost) {
this.dbHost = dbHost;
}
@DeviceProperty(name = "dbName", description = "", defaultValue = "")
@DeviceProperty(name = "dbName", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbName;
public void setDbName(final String dbName) {
this.dbName = dbName;
}
@DeviceProperty(name = "dbSchema", description = "", defaultValue = "")
@DeviceProperty(name = "dbSchema", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbSchema;
public void setDbSchema(final String dbSchema) {
this.dbSchema = dbSchema;
}
@DeviceProperty(name = "isRac", description = "", defaultValue = "")
@DeviceProperty(name = "isRac", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String isRac;
public void setIsRac(final String isRac) {
this.isRac = isRac;
}
@DeviceProperty(name = "beansFileName", description = "", defaultValue = "")
private String beansFileName = "";
@DeviceProperty(name = "beansFileName", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String beansFileName = ObjectUtils.EMPTY_STRING;
public void setBeansFileName(String beansFileName) {
this.beansFileName = beansFileName;
......@@ -622,7 +622,7 @@ public class SnapExtractor {
final IConverter converter = ConverterFactory.getImpl(ConverterFactory.DEFAULT);
// try to extract all values
try {
final DbData dbData = converter.convert(currentExtract);
final DbData[] dbData = converter.convert(currentExtract);
if (dbData == null) {
logger.error(
"Null DbData for attribute {} (if the attribute is R/W or is a spectrum, at least one of its value's component is null)",
......@@ -633,8 +633,7 @@ public class SnapExtractor {
this.createDynamicAttribute(dbData, names);
}
} catch (final DevFailed e) {
logger.error("", e);
logger.error(DevFailedUtils.toString(e));
logger.error(DevFailedUtils.toString(e), e);
names = getErrorNames(currentExtract);
}
}
......@@ -663,7 +662,7 @@ public class SnapExtractor {
final boolean firstIsRead = currentExtract.getWritable() != AttrWriteType._WRITE;
final String randomName1 = dynamicAttributeNamer.getName(currentExtract, id, firstIsRead);
String randomName2 = "";
String randomName2 = ObjectUtils.EMPTY_STRING;
if (hasBothReadAndWriteValues) {
randomName2 = dynamicAttributeNamer.getName(currentExtract, id, !firstIsRead);
}
......@@ -674,18 +673,20 @@ public class SnapExtractor {
return names;
}
private void createDynamicAttribute(final DbData dbData, final String[] names) throws DevFailed {
private void createDynamicAttribute(final DbData[] dbDatas, final String[] names) throws DevFailed {
final String readName = names[0];
final String writeName = names[1];
if (dbData.getDataType() == TangoConst.Tango_DEV_STATE) {
int writable = -1;
for (DbData dbData : dbDatas) {
if ((dbData != null) && (dbData.getDataType() == TangoConst.Tango_DEV_STATE)) {
dbData.setDataType(TangoConst.Tango_DEV_LONG);
writable = dbData.getWritable();
}
}
final DbData[] dbDatas = dbData.splitDbData();
final DbData readDbData = dbDatas[0];
final DbData writeDbData = dbDatas[1];
final DbData readDbData = dbDatas[READ_INDEX];
final DbData writeDbData = dbDatas[WRITE_INDEX];
logger.debug("read part = {}, write part = {}", readDbData, writeDbData);
// Create the attributes
final int writable = dbData.getWritable();
if (writable == AttrWriteType._READ || writable == AttrWriteType._READ_WRITE) {
logger.debug("create attribute {}", readName);
dynMngt.addAttribute(new SnapDynamicAttribute(readName, readDbData));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment