blob: b9a1f0d4a9bd08a95b088195143f220e3783d690 [file] [log] [blame]
package groovy.jmx.builder.vm5
class BaseEmbeddedClass {
int id
String name
def location
boolean available
def doNothing() {
// doing nothing
}
def doTwoThings(def thing1, String thing2) {
// doing thing one and two
}
def doThreeThings(def thing1, boolean thing2, int thing3){
// what to do
}
String doSomethingElse(int whatToDo) {
// what to do
}
}
class EmbeddedNameOnly extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject"
]
}
class EmbeddedAllAttribsOnly extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
attributes:"*"
]
}
class EmbeddedAttribsListOnly extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
attributes:["id","name"]
]
}
class EmbeddedAttribsDescriptorOnly extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
attributes:[
id:"*",
name: [desc: "Name Description", readable: true, writable: true]
]
]
}
class EmbeddedConstructors extends BaseEmbeddedClass {
def EmbeddedConstructors() {
name = "EmbeddConstructor"
}
def EmbeddedConstructors(int idee){
id = idee
}
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
constructors:[
ctor1:[desc:"ctor1"],
ctor2: [desc:"ctor2", params: ["int":[name:"Id", desc:"Identification"]]]
]
]
}
class EmbeddedAllOps extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
operations: "*"
]
}
class EmbeddedOpsList extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
operations: ["doNothing", "doThreeThings"]
]
}
class EmbeddedOpsDescriptor extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
operations: [
doNothing:"*",
doTwoThings:["Object","String"],
doThreeThings:[
description:"Do Three Things",
params:[
"Object":[desc:"thing1"],
"boolean":"*",
"int":"*"
]
]
]
]
}
class EmbeddedAttribEventListener extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
attributes: [
"name":[onChange:{-> println"attrib name changed"}],
"id":[onChange:this.&attribChangeHandler]
]
]
def attribChangeHandler() {
println "attrib changed"
}
}
class EmbeddedOpEventListener extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
ops: [
"doNothing":[onCall:{-> println"op doNothing() called."}],
"doTwoThings":[params:["Object","String"], onCall:this.&attribChangeHandler]
]
]
def opCallHandler() {
println "op called"
}
}
class EmbeddedEventListener extends BaseEmbeddedClass {
static descriptor = [
name : "jmx.builder:type=EmbeddedObject",
listeners: [
heartbeat: [event: "event.heartbeat", from: "some:type=object1", call: {-> "event.heartbeat detected"}],
timer: [event: "event.timer", from: "some:type=object2", call:this.&eventHandler]
]
]
def eventHandler() {
println "op called"
}
}