.setProperties(map)

370 views
Skip to first unread message

Pierre De Wilde

unread,
Sep 8, 2011, 6:07:09 AM9/8/11
to gremli...@googlegroups.com
Hi,

I am trying to set properties using a map:

Vertex.metaClass.setProperties = { HashMap map ->
  for (entry in map ) {
    _().sideEffect{it.setProperty(entry.getKey(), entry.getValue())}
  }
}

gremlin> g.v(1).setProperties([age:30])                                      
==>null
gremlin> g.v(1).age
==>29

Any idea why property is not set properly?

Thanks,
Pierre

Marko Rodriguez

unread,
Sep 8, 2011, 6:10:49 AM9/8/11
to gremli...@googlegroups.com
Hi Pierre,

Probably because you don't have >> -1 and you are using 'it' instead of 'delegate' (meta methods).

Also, its not necessary to make this a pipeline expression. Simply do:

Vertex.metaClass.setProperties = { Map map ->
  map.each{k,v -> delegate.setProperty(k,v)}
}

See ya,
Marko.

Pierre De Wilde

unread,
Sep 8, 2011, 6:18:02 AM9/8/11
to gremli...@googlegroups.com
Hi Marko,

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> Vertex.metaClass.setProperties = { Map map ->
gremlin>   map.each{k,v -> delegate.setProperty(k,v)}
gremlin> }
==>groovysh_evaluate$_run_closure1@16881cb3
gremlin> g.v(1).setProperties([age:30])
==>age=30
gremlin> g.v(1).age
==>29

?

Pierre

Marko Rodriguez

unread,
Sep 8, 2011, 6:34:40 AM9/8/11
to gremli...@googlegroups.com
Pierre,

Dunno. Play around a bit...

Marko.

Marko Rodriguez

unread,
Sep 8, 2011, 6:42:38 AM9/8/11
to gremli...@googlegroups.com
Hey,

In the short term,

Vertex.metaClass.setProps = { Map map ->
  for(entry in map) {
    delegate.setProperty(entry.key, entry.value);
  }
}

gremlin> g.v(1).setProps([age:31])
==>null
gremlin> g.v(1).age
==>31

* NOTE I believe that setProperties() is reserved for Groovy reflection stuff.

HTH,
Marko.

Pierre De Wilde

unread,
Sep 8, 2011, 8:34:03 AM9/8/11
to gremli...@googlegroups.com
Thanks, Marko. You're the master.

Pierre

Javid Ahammed

unread,
Dec 12, 2015, 7:56:36 AM12/12/15
to Gremlin-users
Hello Pierre/Marko,

gremlin> Vertex.metaClass.setProps = { Map map ->for(entry in map) {delegate.property(entry.key, entry.value);}}
==>groovysh_evaluate$_run_closure1@650aa077
gremlin
>  g.V(81924240).setProps([age:31])


No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.setProps() is applicable for argument types: (java.util.LinkedHashMap) values: [[age:31]]
Possible solutions: setGraph(org.apache.tinkerpop.gremlin.structure.Graph), getGraph(), getSteps(), setParent(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent)
Display stack trace? [yN]


Any idea what was the wrong thing I am doing?

Regards
Javid
Enter code here...

Stephen Mallette

unread,
Dec 14, 2015, 5:47:29 AM12/14/15
to Gremlin-users
wow - old post....not sure why it's not behaving for you. works for me:

gremlin> Vertex.metaClass.setProps = { Map map ->
gremlin>   for(entry in map) {
gremlin>     delegate.setProperty(entry.key, entry.value);
gremlin>   }
gremlin> }
==>groovysh_evaluate$_run_closure1@401f7633
gremlin> g = new TinkerGraph()
==>tinkergraph[vertices:0 edges:0]
gremlin> g.addVertex()
==>v[0]
gremlin> g.v(0).setProps([age:31])
==>null
gremlin> g.v(0).map
==>{age=31}


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/bbeb8204-fb7d-4e1e-853d-e40d135456cf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Javid Ahammed

unread,
Dec 15, 2015, 3:29:33 AM12/15/15
to Gremlin-users
Hello Stephen,

Thanks for the reply,

Is it because I am using the latest version of Titan (titan-1.0.0-hadoop1) ?

delegate.setProperty(entry.key, entry.value)

is changed to

 
delegate.property(entry.key, entry.value)

Here is the stackTrace

 g2.V(122884200).setProps([age:31])
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.setProps() is applicable for argument types: (java.util.LinkedHashMap) values: [[age:31]]
Possible solutions: setGraph(org.apache.tinkerpop.gremlin.structure.Graph), getGraph(), getSteps(), setParent(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent)
Display stack trace? [yN] y
groovy.lang.MissingMethodException: No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.setProps() is applicable for argument types: (java.util.LinkedHashMap) values: [[age:31]]
Possible solutions: setGraph(org.apache.tinkerpop.gremlin.structure.Graph), getGraph(), getSteps(), setParent(org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56)
        at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122)
        at groovysh_evaluate.run(groovysh_evaluate:3)
        at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:215)
        at org.codehaus.groovy.tools.shell.Interpreter.evaluate(Interpreter.groovy:69)
        at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:185)
        at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:119)
        at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:94)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy)
        at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:123)
        at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:58)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:82)
        at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:215)
        at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:144)
        at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:215)
        at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:303)

Jason Plurad

unread,
Dec 15, 2015, 10:30:52 AM12/15/15
to Gremlin-users
Javi, how about iterating on the map instead?

gremlin> graph = TinkerGraph.open()

==>tinkergraph[vertices:0 edges:0]

gremlin
> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin
> v = g.addV().next()
==>v[0]
gremlin
> m = ['name':'javid','num':123456]
==>name=javid
==>num=123456
gremlin
> m.each{ key, value -> v.property(key, value) }
==>name=javid
==>num=123456
gremlin
> v.properties()
==>vp[num->123456]
==>vp[name->javid]

Stephen Mallette

unread,
Dec 16, 2015, 1:13:50 PM12/16/15
to Gremlin-users
still works ok for me with 1.0:

gremlin> Vertex.metaClass.setProps = { Map map ->
gremlin>   for(entry in map) {
gremlin>     delegate.property(entry.key, entry.value)
gremlin>   }
gremlin> }
==>groovysh_evaluate$_run_closure1@6d91790b
gremlin> graph = TitanFactory.open('conf/titan-berkeleyje.properties')
==>standardtitangraph[berkeleyje:/home/smallette/jvm/titan-1.0.0-SNAPSHOT-hadoop1/conf/../db/berkeley]
gremlin> v = graph.addVertex()
==>v[4264]
gremlin> v.setProps([age:31])
==>null
gremlin> graph.tx().commit()
==>null
gremlin> graph.vertices(4264).next().properties()
==>vp[age->31]





Javid Ahammed

unread,
Dec 19, 2015, 12:30:59 AM12/19/15
to Gremlin-users
Hello Jason,

Thanks a lot ,it worked with map iteration.

Cheers !!!

Regards
Javid
Reply all
Reply to author
Forward
0 new messages