Revision 35862
Added by Michele Artini about 9 years ago
BlackboardAction.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.springframework.beans.factory.annotation.Required; |
4 | 4 |
|
5 |
import com.google.gson.Gson; |
|
6 |
|
|
5 | 7 |
import eu.dnetlib.enabling.annotations.Blackboard; |
6 | 8 |
|
7 | 9 |
public abstract class BlackboardAction<T> { |
... | ... | |
13 | 15 |
final public T process(final Object message) { |
14 | 16 |
if (message == null) { |
15 | 17 |
throw new RuntimeException("Message is null"); |
16 |
} else if (!messageClass.isInstance(message)) { |
|
18 |
} else if (message instanceof String) { |
|
19 |
return doProcess(new Gson().fromJson((String) message, messageClass)); |
|
20 |
} else if (messageClass.isInstance(message)) { |
|
21 |
return doProcess(messageClass.cast(message)); |
|
22 |
} else { |
|
17 | 23 |
throw new RuntimeException("Invalid message class, expected: " + getMessageClass() + ", found: " + message.getClass()); |
18 |
} else { |
|
19 |
return doProcess(messageClass.cast(message)); |
|
20 | 24 |
} |
21 | 25 |
} |
22 | 26 |
|
Also available in: Unified diff
blackboard status update