static boolean isPrivate(@Nullable JSDocInfo jsdoc) { return jsdoc != null && jsdoc.getVisibility().equals(Visibility.PRIVATE); }
private void visitFunction(NodeTraversal t, Node function, Node parent) { JSDocInfo jsDoc = NodeUtil.getBestJSDocInfo(function); if (jsDoc == null && !hasAnyInlineJsDoc(function)) { checkMissingJsDoc(t, function); } else { if (t.inGlobalScope() || hasAnyInlineJsDoc(function) || !jsDoc.getParameterNames().isEmpty() || jsDoc.hasReturnType()) { checkParams(t, function, jsDoc); } checkReturn(t, function, jsDoc); } if (parent.isMemberFunctionDef() && "constructor".equals(parent.getString()) && jsDoc != null && !jsDoc.getVisibility().equals(Visibility.INHERITED)) { t.report(function, CONSTRUCTOR_DISALLOWED_JSDOC); } }
enforceCodingConventions ? compiler.getCodingConvention() : null); Visibility effectiveCtorVisibility = annotatedCtorVisibility.equals(Visibility.INHERITED) ? Visibility.PUBLIC : annotatedCtorVisibility;
private void checkStyleForPrivateProperties(NodeTraversal t, Node n) { JSDocInfo jsDoc = NodeUtil.getBestJSDocInfo(n); String name; if (n.isMemberFunctionDef() || n.isGetterDef() || n.isSetterDef()) { name = n.getString(); } else { Preconditions.checkState(n.isAssign()); Node lhs = n.getFirstChild(); if (!lhs.isGetProp()) { return; } name = lhs.getLastChild().getString(); } if (name.equals("constructor")) { return; } if (jsDoc != null && name != null) { if (compiler.getCodingConvention().isPrivate(name) && !jsDoc.getVisibility().equals(Visibility.PRIVATE)) { t.report(n, MUST_BE_PRIVATE, name); } else if (compiler.getCodingConvention().hasPrivacyConvention() && !compiler.getCodingConvention().isPrivate(name) && jsDoc.getVisibility().equals(Visibility.PRIVATE)) { t.report(n, MUST_HAVE_TRAILING_UNDERSCORE, name); } } } private void checkSuppressionsOnNonFunction(NodeTraversal t, Node n, JSDocInfo jsDoc) {
private void checkStyleForPrivateProperties(NodeTraversal t, Node n) { JSDocInfo jsDoc = NodeUtil.getBestJSDocInfo(n); checkForAtSignCodePresence(t, n, jsDoc); String name; if (n.isMemberFunctionDef() || n.isGetterDef() || n.isSetterDef()) { name = n.getString(); } else { checkState(n.isAssign()); Node lhs = n.getFirstChild(); if (!lhs.isGetProp()) { return; } name = lhs.getLastChild().getString(); } if (name.equals("constructor")) { return; } if (jsDoc != null && name != null) { if (compiler.getCodingConvention().isPrivate(name) && !jsDoc.getVisibility().equals(Visibility.PRIVATE)) { t.report(n, MUST_BE_PRIVATE, name); } else if (compiler.getCodingConvention().hasPrivacyConvention() && !compiler.getCodingConvention().isPrivate(name) && jsDoc.getVisibility().equals(Visibility.PRIVATE)) { t.report(n, MUST_HAVE_TRAILING_UNDERSCORE, name); } } }
private void visitFunctionNode(Node n, Node parent) { // TODO(user): Use isPrivate method below to recognize all functions. Node name = null; JSDocInfo info = parent.getJSDocInfo(); if (info != null && info.isConstructor()) { name = parent.getFirstChild(); } else { // look to the child, maybe it's a named function info = n.getJSDocInfo(); if (info != null && info.isConstructor()) { name = n.getFirstChild(); } } if (name != null && name.isQualifiedName()) { String qualifiedName = name.getQualifiedName(); if (!this.convention.isPrivate(qualifiedName)) { Visibility visibility = info.getVisibility(); if (!visibility.equals(JSDocInfo.Visibility.PRIVATE)) { ctors.put(qualifiedName, name); } } } }
private void visitFunctionNode(Node n, Node parent) { // TODO(user): Use isPrivate method below to recognize all functions. Node name = null; JSDocInfo info = parent.getJSDocInfo(); if (info != null && info.isConstructor()) { name = parent.getFirstChild(); } else { // look to the child, maybe it's a named function info = n.getJSDocInfo(); if (info != null && info.isConstructor()) { name = n.getFirstChild(); } } if (name != null && name.isQualifiedName()) { String qualifiedName = name.getQualifiedName(); if (!this.convention.isPrivate(qualifiedName)) { Visibility visibility = info.getVisibility(); if (!visibility.equals(JSDocInfo.Visibility.PRIVATE)) { ctors.put(qualifiedName, name); } } } }
@Override public void visit(NodeTraversal t, Node n, Node parent) { JSDocInfo bestJSDocInfo = NodeUtil.getBestJSDocInfo(n); if (bestJSDocInfo == null) { return; } // Add visibility for private and protected. if (Visibility.PRIVATE.equals(bestJSDocInfo.getVisibility())) { n.putProp(Node.ACCESS_MODIFIER, Visibility.PRIVATE); } else if (Visibility.PROTECTED.equals(bestJSDocInfo.getVisibility())) { n.putProp(Node.ACCESS_MODIFIER, Visibility.PROTECTED); } // Change variable declarations to constants if (bestJSDocInfo.isConstant() && (n.isVar() || n.isLet())) { n.setToken(Token.CONST); } } }
/** Moves the access modifier from the original declaration to the constructor parameter */ void moveAccessModifier(ClassMemberDeclaration declaration, Node param) { if (Visibility.PRIVATE.equals(declaration.jsDoc.getVisibility())) { param.putProp(Node.ACCESS_MODIFIER, Visibility.PRIVATE); } else if (Visibility.PROTECTED.equals(declaration.jsDoc.getVisibility())) { param.putProp(Node.ACCESS_MODIFIER, Visibility.PROTECTED); } else { param.putProp(Node.ACCESS_MODIFIER, Visibility.PUBLIC); } }
private boolean isPrivate(Node classOrFn) { JSDocInfo info = NodeUtil.getBestJSDocInfo(classOrFn); if (info != null && info.getVisibility().equals(JSDocInfo.Visibility.PRIVATE)) { return true; } return compiler.getCodingConvention().isPrivate(NodeUtil.getName(classOrFn)); }
private boolean isPrivate(Node classOrFn) { JSDocInfo info = NodeUtil.getBestJSDocInfo(classOrFn); if (info != null && info.getVisibility().equals(JSDocInfo.Visibility.PRIVATE)) { return true; } return compiler.getCodingConvention().isPrivate(NodeUtil.getName(classOrFn)); }
private boolean isPrivate(Node nameNode) { if (nameNode.isQualifiedName() && compiler.getCodingConvention().isPrivate(nameNode.getQualifiedName())) { return true; } JSDocInfo info = NodeUtil.getBestJSDocInfo(nameNode); return info != null && info.getVisibility().equals(Visibility.PRIVATE); } }
private boolean isPrivate(Node nameNode) { if (nameNode.isQualifiedName() && compiler.getCodingConvention().isPrivate(nameNode.getQualifiedName())) { return true; } JSDocInfo info = NodeUtil.getBestJSDocInfo(nameNode); return info != null && info.getVisibility().equals(Visibility.PRIVATE); } }