ObjectLiteral.java

package org.sterling.source.syntax;

import org.sterling.SterlingException;

public class ObjectLiteral extends SourceNode {

    public ObjectLiteral(NodeKind kind) {
        super(kind);
    }

    @Override
    public <R, S> R accept(SourceVisitor<R, S> visitor, S state) throws SterlingException {
        return visitor.visitObjectLiteral(this, state);
    }

    public SourceNode getHeader() {
        if (hasHeader()) {
            return getChildAt(1);
        } else {
            return VOID;
        }
    }

    public SourceNode getBody() {
        if (hasHeader()) {
            return getChildAt(2);
        } else {
            return getChildAt(1);
        }
    }

    public boolean hasHeader() {
        return childrenSize() > 2;
    }
}