@Override public void visitPairProperty(PairPropertyTree tree) { if (tree.key().is(Kind.PROPERTY_IDENTIFIER)) { String keyName = ((IdentifierTree) tree.key()).name(); if (tree.value().is(Kind.IDENTIFIER_REFERENCE) && ((IdentifierTree) tree.value()).name().equals(keyName)) { raiseIssue("property", keyName, tree.key()); } if (tree.value().is(Kind.FUNCTION_EXPRESSION)) { raiseIssue("method", keyName, tree.key()); } } super.visitPairProperty(tree); }
/** * @return the pair property with the given name within the given object literal, null if not found */ @Nullable public static PairPropertyTree getModelProperty(ObjectLiteralTree objectLiteral, String propertyName) { for (Tree property : objectLiteral.properties()) { if (property.is(Tree.Kind.PAIR_PROPERTY)) { PairPropertyTree pairProperty = (PairPropertyTree) property; if (Utils.identifierWithName(pairProperty.key(), propertyName)) { return pairProperty; } } } return null; } }
private void checkForSpaceInPropertyNames(ObjectLiteralTree objectLiteral) { for (Tree attribute : objectLiteral.properties()) { if (attribute.is(Kind.PAIR_PROPERTY)) { Tree key = ((PairPropertyTree) attribute).key(); checkString(key); } } }
@Override public void visitPairProperty(PairPropertyTree tree) { scan(tree.key()); scan(tree.value()); }
private void checkForSpaceInPropertyNames(ObjectLiteralTree objectLiteral) { for (Tree attribute : objectLiteral.properties()) { if (attribute.is(Kind.PAIR_PROPERTY)) { ExpressionTree key = ((PairPropertyTree) attribute).key(); checkString(key); } } }
@Override public void visitPairProperty(PairPropertyTree tree) { if (isFunctionExpression(tree.value())) { checkName(tree.key()); } super.visitPairProperty(tree); }
private void visitPairProperty(Set<String> keys, Tree property, PairPropertyTree pairProperty) { ExpressionTree key = pairProperty.key(); if (key.is(Tree.Kind.STRING_LITERAL)){ String value = ((LiteralTree)key).value(); value = value.substring(1, value.length() - 1); addKey(keys, value, property); } if (key instanceof IdentifierTree){ addKey(keys, ((IdentifierTree)key).name(), property); } if (key.is(Tree.Kind.NUMERIC_LITERAL)){ addKey(keys, ((LiteralTree)key).value(), property); } }
@Nullable private static Tree getPropertyNameTree(Tree property) { if (property.is(Kind.METHOD, Kind.GENERATOR_METHOD)) { return ((MethodDeclarationTree) property).name(); } else if (property.is(Kind.GET_METHOD, Kind.SET_METHOD)) { return ((AccessorMethodDeclarationTree) property).name(); } else if (property.is(Kind.FIELD)) { return ((FieldDeclarationTree) property).propertyName(); } else if (property.is(Kind.PAIR_PROPERTY)) { return ((PairPropertyTree) property).key(); } else if (property.is(Kind.IDENTIFIER_REFERENCE)) { return property; } else if (property.is(Kind.FLOW_PROPERTY_DEFINITION)) { return ((FlowPropertyDefinitionTree) property).key(); } return null; }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(Type.Kind.BACKBONE_MODEL) && !tree.argumentClause().arguments().isEmpty()) { Tree parameter = tree.argumentClause().arguments().get(0); if (parameter.is(Kind.OBJECT_LITERAL)) { PairPropertyTree defaultsProp = Backbone.getModelProperty((ObjectLiteralTree) parameter, "defaults"); if (defaultsProp != null && defaultsProp.value().is(Kind.OBJECT_LITERAL) && hasObjectOrArrayAttribute((ObjectLiteralTree) defaultsProp.value())) { addIssue(defaultsProp.key(), MESSAGE); } } } super.visitCallExpression(tree); }