Skip to content
Snippets Groups Projects
Commit f7e852de authored by PICHON's avatar PICHON
Browse files

Correction of a cyclique redondancy.

parent 48d85029
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -12,7 +12,7 @@
<groupId>fr.soleil.deviceservers</groupId>
<artifactId>TangoParser</artifactId>
<version>3.3.4</version>
<version>3.3.5</version>
<name>TangoParser</name>
<description>TangoParser Device</description>
......
......@@ -2,6 +2,8 @@ package fr.soleil.tango.parser;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.Lock;
......@@ -73,7 +75,7 @@ public abstract class AJepParser {
*/
protected BiMap<String, String> variables = HashBiMap.create();
protected final List<AJepParser> variablesJep;
protected final List<AJepParser> variablesJepToRead = new ArrayList<AJepParser>();
protected final Map<String, AJepParser> variablesJepToRead = new HashMap<>();
protected final Lock locker = new ReentrantLock();
protected final TangoSource dataSource;
protected final String sourceName;
......@@ -200,7 +202,7 @@ public abstract class AJepParser {
// refresh tango attributes
dataSource.refresh();
// refresh other variables
for (final AJepParser variable : variablesJepToRead) {
for (final AJepParser variable : variablesJepToRead.values()) {
variable.refresh(lock);
}
} finally {
......@@ -211,10 +213,10 @@ public abstract class AJepParser {
}
/**
* Evaluate the expression with lastest values refreshed by
* Evaluate the expression with latest values refreshed by
* {@link #refresh(boolean)}
*
* @param lock true to use synchronisation. For using Parser in multi-threaded
* @param lock true to use synchronization. For using Parser in multi-threaded
* environment.
* @return the result of evaluation
* @throws DevFailed
......@@ -240,10 +242,10 @@ public abstract class AJepParser {
}
// get results for variables
for (final AJepParser variable : variablesJepToRead) {
for (final AJepParser variable : variablesJepToRead.values()) {
final Object r = variable.getValue(lock);
logger.debug("get input variable {} = {}", variable, r);
jep.addVariable(variable.getName(), r);
jep.addVariable(variable.getName(), fromStandardToJepType(r));
}
Object lastWriteResult = parse(name, expressions);
lastWriteResult = fromJepToStandardType(lastWriteResult);
......@@ -288,7 +290,7 @@ public abstract class AJepParser {
for (final AJepParser jepReader : variablesJep) {
if (jepReader.getName().equals(symbolName)) {
logger.debug("add existing variable {}", jepReader.getName());
variablesJepToRead.add(jepReader);
variablesJepToRead.put(jepReader.getName(), jepReader);
founded = true;
}
}
......@@ -322,8 +324,8 @@ public abstract class AJepParser {
}
}
public List<AJepParser> getDependantJepParserList() {
return variablesJepToRead;
public Collection<AJepParser> getDependantJepParserList() {
return variablesJepToRead.values();
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment