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"?> <?xml version="1.0" encoding="UTF-8"?>
<project <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
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"> xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
......
...@@ -133,6 +133,8 @@ import fr.soleil.archiving.snap.api.persistence.SnapshotPersistenceManagerFactor ...@@ -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.persistence.spring.dao.SnapshotDAO;
import fr.soleil.archiving.snap.api.tools.SnapAttributeExtract; import fr.soleil.archiving.snap.api.tools.SnapAttributeExtract;
import fr.soleil.archiving.snap.api.tools.SnapshotingException; 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 * Class Description: This device is in charge of extracting snapshots from the
...@@ -151,7 +153,7 @@ import fr.soleil.archiving.snap.api.tools.SnapshotingException; ...@@ -151,7 +153,7 @@ import fr.soleil.archiving.snap.api.tools.SnapshotingException;
// --------- End of States Description ---------- // --------- End of States Description ----------
@Device @Device
public class SnapExtractor { public class SnapExtractor implements DBExtractionConst {
@Autowired @Autowired
SnapshotDAO snapshotDao; SnapshotDAO snapshotDao;
...@@ -171,14 +173,12 @@ public class SnapExtractor { ...@@ -171,14 +173,12 @@ public class SnapExtractor {
@DeviceManagement @DeviceManagement
private DeviceManager devManager; private DeviceManager devManager;
public void setDevManager(final DeviceManager devManager) { public void setDevManager(final DeviceManager devManager) {
this.devManager = devManager; this.devManager = devManager;
} }
@Attribute(name = "version", displayLevel = DispLevel._EXPERT) @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"); private final String version = ResourceBundle.getBundle("application").getString("project.version");
public String getVersion() { public String getVersion() {
...@@ -191,7 +191,7 @@ public class SnapExtractor { ...@@ -191,7 +191,7 @@ public class SnapExtractor {
* User identifier (name) used to connect the database SNAP. <br> * User identifier (name) used to connect the database SNAP. <br>
* <b>Default value : </b> snap * <b>Default value : </b> snap
*/ */
@DeviceProperty(name = "dbUser", description = "", defaultValue = "") @DeviceProperty(name = "dbUser", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbUser; private String dbUser;
public void setDbUser(final String dbUser) { public void setDbUser(final String dbUser) {
...@@ -202,7 +202,7 @@ public class SnapExtractor { ...@@ -202,7 +202,7 @@ public class SnapExtractor {
* Password used to connect the database SNAP. <br> * Password used to connect the database SNAP. <br>
* <b>Default value : </b> snap * <b>Default value : </b> snap
*/ */
@DeviceProperty(name = "dbPassword", description = "", defaultValue = "") @DeviceProperty(name = "dbPassword", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbPassword; private String dbPassword;
public void setDbPassword(final String dbPassword) { public void setDbPassword(final String dbPassword) {
...@@ -211,36 +211,36 @@ public class SnapExtractor { ...@@ -211,36 +211,36 @@ public class SnapExtractor {
protected int formerState = DevState._UNKNOWN; protected int formerState = DevState._UNKNOWN;
@DeviceProperty(name = "dbHost", description = "", defaultValue = "") @DeviceProperty(name = "dbHost", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbHost; private String dbHost;
public void setDbHost(final String dbHost) { public void setDbHost(final String dbHost) {
this.dbHost = dbHost; this.dbHost = dbHost;
} }
@DeviceProperty(name = "dbName", description = "", defaultValue = "") @DeviceProperty(name = "dbName", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbName; private String dbName;
public void setDbName(final String dbName) { public void setDbName(final String dbName) {
this.dbName = dbName; this.dbName = dbName;
} }
@DeviceProperty(name = "dbSchema", description = "", defaultValue = "") @DeviceProperty(name = "dbSchema", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String dbSchema; private String dbSchema;
public void setDbSchema(final String dbSchema) { public void setDbSchema(final String dbSchema) {
this.dbSchema = dbSchema; this.dbSchema = dbSchema;
} }
@DeviceProperty(name = "isRac", description = "", defaultValue = "") @DeviceProperty(name = "isRac", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String isRac; private String isRac;
public void setIsRac(final String isRac) { public void setIsRac(final String isRac) {
this.isRac = isRac; this.isRac = isRac;
} }
@DeviceProperty(name = "beansFileName", description = "", defaultValue = "") @DeviceProperty(name = "beansFileName", description = ObjectUtils.EMPTY_STRING, defaultValue = ObjectUtils.EMPTY_STRING)
private String beansFileName = ""; private String beansFileName = ObjectUtils.EMPTY_STRING;
public void setBeansFileName(String beansFileName) { public void setBeansFileName(String beansFileName) {
this.beansFileName = beansFileName; this.beansFileName = beansFileName;
...@@ -622,7 +622,7 @@ public class SnapExtractor { ...@@ -622,7 +622,7 @@ public class SnapExtractor {
final IConverter converter = ConverterFactory.getImpl(ConverterFactory.DEFAULT); final IConverter converter = ConverterFactory.getImpl(ConverterFactory.DEFAULT);
// try to extract all values // try to extract all values
try { try {
final DbData dbData = converter.convert(currentExtract); final DbData[] dbData = converter.convert(currentExtract);
if (dbData == null) { if (dbData == null) {
logger.error( 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)", "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 { ...@@ -633,8 +633,7 @@ public class SnapExtractor {
this.createDynamicAttribute(dbData, names); this.createDynamicAttribute(dbData, names);
} }
} catch (final DevFailed e) { } catch (final DevFailed e) {
logger.error("", e); logger.error(DevFailedUtils.toString(e), e);
logger.error(DevFailedUtils.toString(e));
names = getErrorNames(currentExtract); names = getErrorNames(currentExtract);
} }
} }
...@@ -663,7 +662,7 @@ public class SnapExtractor { ...@@ -663,7 +662,7 @@ public class SnapExtractor {
final boolean firstIsRead = currentExtract.getWritable() != AttrWriteType._WRITE; final boolean firstIsRead = currentExtract.getWritable() != AttrWriteType._WRITE;
final String randomName1 = dynamicAttributeNamer.getName(currentExtract, id, firstIsRead); final String randomName1 = dynamicAttributeNamer.getName(currentExtract, id, firstIsRead);
String randomName2 = ""; String randomName2 = ObjectUtils.EMPTY_STRING;
if (hasBothReadAndWriteValues) { if (hasBothReadAndWriteValues) {
randomName2 = dynamicAttributeNamer.getName(currentExtract, id, !firstIsRead); randomName2 = dynamicAttributeNamer.getName(currentExtract, id, !firstIsRead);
} }
...@@ -674,18 +673,20 @@ public class SnapExtractor { ...@@ -674,18 +673,20 @@ public class SnapExtractor {
return names; 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 readName = names[0];
final String writeName = names[1]; 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); dbData.setDataType(TangoConst.Tango_DEV_LONG);
writable = dbData.getWritable();
}
} }
final DbData[] dbDatas = dbData.splitDbData(); final DbData readDbData = dbDatas[READ_INDEX];
final DbData readDbData = dbDatas[0]; final DbData writeDbData = dbDatas[WRITE_INDEX];
final DbData writeDbData = dbDatas[1];
logger.debug("read part = {}, write part = {}", readDbData, writeDbData); logger.debug("read part = {}, write part = {}", readDbData, writeDbData);
// Create the attributes // Create the attributes
final int writable = dbData.getWritable();
if (writable == AttrWriteType._READ || writable == AttrWriteType._READ_WRITE) { if (writable == AttrWriteType._READ || writable == AttrWriteType._READ_WRITE) {
logger.debug("create attribute {}", readName); logger.debug("create attribute {}", readName);
dynMngt.addAttribute(new SnapDynamicAttribute(readName, readDbData)); 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