Commit 488b2d86 authored by Thibaut Démare's avatar Thibaut Démare

Add the 'remove edge attribute' command

parent 3c4eb8e1
...@@ -63,6 +63,12 @@ global { ...@@ -63,6 +63,12 @@ global {
// Remove node // Remove node
gs_remove_node gs_sender_id:"test1" gs_node_id:"node3"; gs_remove_node gs_sender_id:"test1" gs_node_id:"node3";
// Remove edge attribute
gs_remove_edge_attribute gs_sender_id:"test1" gs_edge_id:"edge1" gs_attribute_name:"string";
// Step
gs_step gs_sender_id:"test1" gs_step_number:3;
// Clear // Clear
//gs_clear gs_sender_id:"test1"; //gs_clear gs_sender_id:"test1";
......
...@@ -76,10 +76,10 @@ public class GSSender { ...@@ -76,10 +76,10 @@ public class GSSender {
attribute); attribute);
} }
public void sendEdgeAttributeRemoved(long fromId, long toId, public void sendEdgeAttributeRemoved(String edgeId,
String attribute) { String attribute) {
nsSender.edgeAttributeRemoved(sourceId, newEvent(), nsSender.edgeAttributeRemoved(sourceId, newEvent(),
fromId + "_" + toId, attribute); edgeId, attribute);
} }
public void sendGraphCleared() { public void sendGraphCleared() {
......
package org.graphstream.gama.extension.sender;
import msi.gama.precompiler.ISymbolKind;
import msi.gama.precompiler.GamlAnnotations.facet;
import msi.gama.precompiler.GamlAnnotations.facets;
import msi.gama.precompiler.GamlAnnotations.inside;
import msi.gama.precompiler.GamlAnnotations.symbol;
import msi.gama.runtime.IScope;
import msi.gama.runtime.exceptions.GamaRuntimeException;
import msi.gaml.descriptions.IDescription;
import msi.gaml.expressions.IExpression;
import msi.gaml.statements.AbstractStatement;
import msi.gaml.statements.IStatement;
import msi.gaml.types.IType;
import org.graphstream.gama.extension.GSManager;
import org.graphstream.gama.extension.IKeywordGSAdditional;
@symbol(name = IKeywordGSAdditional.REMOVE_EDGE_ATTRIBUTE, kind = ISymbolKind.SINGLE_STATEMENT, with_sequence = false)
@inside(kinds = { ISymbolKind.BEHAVIOR, ISymbolKind.SINGLE_STATEMENT })
@facets(value = { @facet(name = IKeywordGSAdditional.SENDERID, type = IType.STRING, optional = false),
@facet(name = IKeywordGSAdditional.EDGE_ID, type = IType.STRING, optional = false),
@facet(name = IKeywordGSAdditional.ATTRIBUTE_NAME, type = IType.STRING, optional = false)})
public class RemoveEdgeAttributeStatement extends AbstractStatement implements IStatement{
final IExpression senderid;
final IExpression edgeid;
final IExpression attname;
public RemoveEdgeAttributeStatement(IDescription desc) {
super(desc);
senderid = getFacet(IKeywordGSAdditional.SENDERID);
edgeid = getFacet(IKeywordGSAdditional.EDGE_ID);
attname = getFacet(IKeywordGSAdditional.ATTRIBUTE_NAME);
}
@Override
protected Object privateExecuteIn(IScope scope) throws GamaRuntimeException {
String s = (String)(senderid.value(scope));
String eid = (String)(edgeid.value(scope));
String an = (String)(attname.value(scope));
GSSender sender = GSManager.getSender(s);
sender.sendEdgeAttributeRemoved(eid, an);
return null;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment