Exemple #1
0
CountPtr<Value> NodeBuiltinNext::execute(void)
{
  vector< CountPtr<Value> > par = getParametersValues();
  assert(par.size() == 1);

  return par[0]->next();
}
CountPtr<Value> NodeBuiltinIsSet::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 1);

	return (par[0]->toValueSet() != NULL) ? VALUEBOOL_TRUE : VALUEBOOL_FALSE;

}
CountPtr<Value> NodeBuiltinBreakpoint::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 1);

	if(par[0]->toBool())
		CONTEXT.breakpoint();

	return VALUENULL;

}
CountPtr<Value> NodeBuiltinIntersection::execute(void)
{
  vector< CountPtr<Value> > par = getParametersValues();
  assert(par.size() == 2);

  ValueSet* vset1 = NULL;
  ValueSet* vset2 = NULL;

  if((vset1 = par[0]->toValueSet()) != NULL && (vset2 = par[1]->toValueSet()) != NULL)
    return vset1->getIntersection(*vset2);
  else {
    assert(0 && "Bad parameters type: intersection(set, set) : set|null");
    return VALUENULL;
  }

}
CountPtr<Value> 
NodeBuiltinDeleteVertex::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 2);

	ValueGraph* g = NULL;

	if((g = par[0]->toValueGraph()) != NULL && par[1]->toValueVertex() != NULL)
		g->deleteVertex(par[1]);
	else
		assert(0 && "Bad parameters type: deleteVertex(graph, vertex) : null");

	return VALUENULL;

}
CountPtr<Value> NodeBuiltinSaveToFile::execute(void)
{
  vector< CountPtr<Value> > par = getParametersValues();
  assert(par.size() == 2);

  ValueGraph* g = NULL;
  ValueString* path = NULL;

  if((g = par[0]->toValueGraph()) != NULL && (path = par[1]->toValueString()) != NULL)
    return g->saveToFile(path->getVal()) ? VALUEBOOL_TRUE : VALUEBOOL_FALSE;
  else {
    assert(0 &&"Bad parameters type: loadFromFile(graph, string) : bool");
    return VALUEBOOL_FALSE;
  }

}
CountPtr<Value> NodeBuiltinGetBeginVertex::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 1);

	ValueEdge* e = NULL;

	if((e = par[0]->toValueEdge()) != NULL)
		return e->getBeginVertex();
	else
	{
		WARN_P(_("Bad parameters type: getBeginVertex(edge) : vertex|null"));
		return VALUENULL;
	}

}
CountPtr<Value> 
NodeBuiltinGetVertices::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 1);

	ValueGraph* g = NULL;

	if((g = par[0]->toValueGraph()) != NULL)
		return g->getVertices();
	else
	{
		assert(0 && "Bad parameters type: getVertices(graph) : set|null");
		return VALUENULL;
	}

}
CountPtr<Value> 
NodeBuiltinGenerateEdge::execute(void)
{
	vector< CountPtr<Value> > par = getParametersValues();
	assert(par.size() == 3);

	ValueGraph* g = NULL;

	if((g = par[0]->toValueGraph()) != NULL && 
            par[1]->toValueVertex() != NULL && par[2]->toValueVertex() != NULL) {
		return g->generateEdge(par[1], par[2]);
        } else {
		assert(0 && "Bad parameters type: generateEdge(graph, vertex, vertex) : edge|null");
		return VALUENULL;
	}

}