public function analyze()
{
// __construct is the main constructor of the class
$this->atomIs('Class')->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Function')->_as('constructor')->outIs('NAME')->codeIs('__construct')->back('constructor');
$this->prepareQuery();
// if no __construct(), then default back on the method with the class name
$this->atomIs('Class')->outIs('NAME')->savePropertyAs('code', 'code')->back('first')->outIs('BLOCK')->raw('where( __.out("ELEMENT").hasLabel("Function").out("NAME").has("code", "__construct").count().is(eq(0)) )')->outIs('ELEMENT')->atomIs('Function')->_as('constructor')->outIs('NAME')->samePropertyAs('code', 'code')->back('constructor');
$this->prepareQuery();
}