Code review comment: can we use kind instead a string?

Code under review:
public BLangNode transform(AnnotationDeclarationNode annotationDeclarationNode) {
        BLangAnnotation annotationDecl = (BLangAnnotation) TreeBuilder.createAnnotationNode();
        DiagnosticPos pos = getPosition(annotationDeclarationNode);
        annotationDecl.pos = pos;
        annotationDecl.name = createIdentifier(pos, annotationDeclarationNode.annotationTag().text());

        if (annotationDeclarationNode.visibilityQualifier() != null) {
            annotationDecl.addFlag(Flag.PUBLIC);
        }

        if (annotationDeclarationNode.constKeyword() != null) {
            annotationDecl.addFlag(Flag.CONSTANT);
        }

        annotationDecl.annAttachments = applyAll(annotationDeclarationNode.metadata().annotations());

        annotationDeclarationNode.metadata().documentationString().ifPresent(docString-> {
            annotationDecl.markdownDocumentationAttachment = createMarkdownDocumentationAttachment(docString);
        });

        Node typedesc = annotationDeclarationNode.typeDescriptor();
        if (typedesc != null) {
            annotationDecl.typeNode = createTypeNode(typedesc);
        }

        SeparatedNodeList<Node> paramList = annotationDeclarationNode.attachPoints();

        for (Node child : paramList) {
            AnnotationAttachPointNode attachPoint = (AnnotationAttachPointNode) child;
            boolean source = attachPoint.sourceKeyword() != null;
            AttachPoint bLAttachPoint;
            String firstIndent = attachPoint.firstIdent().text().toLowerCase();
            if (firstIndent == "object") {
                switch (attachPoint.secondIdent().text().toLowerCase()) {
                    case "function" :
                        bLAttachPoint = AttachPoint.getAttachmentPoint("objectfunction", source);
                        break;
                    case "field" :
                        bLAttachPoint = AttachPoint.getAttachmentPoint("objectfield", source);
                        break;
                    default:
                        bLAttachPoint = AttachPoint.getAttachmentPoint("objecttype", source);
                }
            } else if (firstIndent == "resource") {
                bLAttachPoint = AttachPoint.getAttachmentPoint("resourcefunction", source);
            } else if (firstIndent == "record") {
                bLAttachPoint = AttachPoint.getAttachmentPoint("recordfield", source);
            } else {
                bLAttachPoint = AttachPoint.getAttachmentPoint(firstIndent, source);
            }
            annotationDecl.addAttachPoint(bLAttachPoint);
        }

        return annotationDecl;
    }

Line commented on: switch (attachPoint.secondIdent().text().toLowerCase()) {

Revised code:
public BLangNode transform(AnnotationDeclarationNode annotationDeclarationNode) {
        BLangAnnotation annotationDecl = (BLangAnnotation) TreeBuilder.createAnnotationNode();
        DiagnosticPos pos = getPosition(annotationDeclarationNode);
        annotationDecl.pos = pos;
        annotationDecl.name = createIdentifier(annotationDeclarationNode.annotationTag());

        if (annotationDeclarationNode.visibilityQualifier() != null) {
            annotationDecl.addFlag(Flag.PUBLIC);
        }

        if (annotationDeclarationNode.constKeyword() != null) {
            annotationDecl.addFlag(Flag.CONSTANT);
        }

        annotationDecl.annAttachments = applyAll(annotationDeclarationNode.metadata().annotations());

        annotationDeclarationNode.metadata().documentationString().ifPresent(docString-> {
            annotationDecl.markdownDocumentationAttachment = createMarkdownDocumentationAttachment(docString);
        });

        Node typedesc = annotationDeclarationNode.typeDescriptor();
        if (typedesc != null) {
            annotationDecl.typeNode = createTypeNode(typedesc);
        }

        SeparatedNodeList<Node> paramList = annotationDeclarationNode.attachPoints();

        for (Node child : paramList) {
            AnnotationAttachPointNode attachPoint = (AnnotationAttachPointNode) child;
            boolean source = attachPoint.sourceKeyword() != null;
            AttachPoint bLAttachPoint;
            Token firstIndent =  attachPoint.firstIdent();

            switch (firstIndent.kind()) {
                case OBJECT_KEYWORD:
                    Token secondIndent = attachPoint.secondIdent();
                    switch (secondIndent.kind()) {
                        case FUNCTION_KEYWORD:
                            bLAttachPoint =
                                    AttachPoint.getAttachmentPoint(AttachPoint.Point.OBJECT_METHOD.getValue(), source);
                            break;
                        case FIELD_KEYWORD:
                            bLAttachPoint =
                                    AttachPoint.getAttachmentPoint(AttachPoint.Point.OBJECT_FIELD.getValue(), source);
                            break;
                        default:
                            bLAttachPoint =
                                    AttachPoint.getAttachmentPoint(AttachPoint.Point.OBJECT.getValue(), source);
                    }
                    break;
                case RESOURCE_KEYWORD:
                    bLAttachPoint = AttachPoint.getAttachmentPoint(AttachPoint.Point.RESOURCE.getValue(), source);
                    break;
                case RECORD_KEYWORD:
                    bLAttachPoint = AttachPoint.getAttachmentPoint(AttachPoint.Point.RECORD_FIELD.getValue(), source);
                    break;
                default:
                    bLAttachPoint = AttachPoint.getAttachmentPoint(firstIndent.text(), source);
            }
            annotationDecl.addAttachPoint(bLAttachPoint);
        }

        return annotationDecl;
    }