@Override
public boolean enterClassNode(ClassNode node) {
IdentNode cnIdent = node.getIdent();
Node lastNode = getPreviousFromPath(1);
VarNode varNode = (lastNode instanceof VarNode) ? (VarNode)lastNode : null;
classObject = new JsObjectImpl(parent, className, new OffsetRange(node.getStart(), node.getFinish()), true, parent.getMimeType(), parent.getSourceLabel());
parent.addProperty(className.getName(), classObject);
classObject.setJsKind(JsElement.Kind.CLASS);
if (node.getClassHeritage() != null) {
Expression classHeritage = node.getClassHeritage();
if (classHeritage instanceof IdentNode) {
JsObjectImpl proto = new JsObjectImpl(classObject, ModelUtils.PROTOTYPE, true, OffsetRange.NONE, EnumSet.of(Modifier.PUBLIC), classObject.getMimeType(), classObject.getSourceLabel());
node.getConstructor().accept(this);
for (PropertyNode element : node.getClassElements()) {
element.accept(this);