private static PropertyFunctionInstance magicProperty(Context context,
Triple pfTriple,
BasicPattern triples)
{
List<Triple> listTriples = new ArrayList<>() ;
GNode sGNode = new GNode(triples, pfTriple.getSubject()) ;
GNode oGNode = new GNode(triples, pfTriple.getObject()) ;
List<Node> sList = null ;
List<Node> oList = null ;
if ( GraphList.isListNode(sGNode) )
{
sList = GraphList.members(sGNode) ;
GraphList.allTriples(sGNode, listTriples) ;
}
if ( GraphList.isListNode(oGNode) )
{
oList = GraphList.members(oGNode) ;
GraphList.allTriples(oGNode, listTriples) ;
}
PropFuncArg subjArgs = new PropFuncArg(sList, pfTriple.getSubject()) ;
PropFuncArg objArgs = new PropFuncArg(oList, pfTriple.getObject()) ;
PropertyFunctionInstance pfi = new PropertyFunctionInstance(subjArgs, pfTriple.getPredicate(), objArgs) ;
triples.getList().removeAll(listTriples) ;
return pfi ;
}