public MemberReferenceExpression member(final String memberName) { return new MemberReferenceExpression(this.getOffset(), this, memberName); }
public MemberReferenceExpression( int offset, final Expression target, final String memberName, final AstType... typeArguments) { super( offset); addChild(target, Roles.TARGET_EXPRESSION); setMemberName(memberName); if (typeArguments != null) { for (final AstType argument : typeArguments) { addChild(argument, Roles.TYPE_ARGUMENT); } } }
public final JavaTokenNode getDotToken() { return getChildByRole(Roles.DOT); }
@Override public boolean matches(final INode other, final Match match) { if (other instanceof MemberReferenceExpression) { final MemberReferenceExpression otherExpression = (MemberReferenceExpression) other; return !otherExpression.isNull() && getTarget().matches(otherExpression.getTarget(), match) && matchString(getMemberName(), otherExpression.getMemberName()) && getTypeArguments().matches(otherExpression.getTypeArguments(), match); } return false; } }
@Override public boolean matches(final INode other, final Match match) { if (other instanceof MemberReferenceExpression) { final MemberReferenceExpression reference = (MemberReferenceExpression) other; if (_target.matches(reference.getTarget(), match) && _pattern.matcher(reference.getMemberName()).matches()) { match.add(_groupName, reference); return true; } } return false; } }
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void _) { super.visitMemberReferenceExpression(node, _); if (node.getParent() instanceof AssignmentExpression && node.getRole() == AssignmentExpression.LEFT_ROLE) { return null; } final MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member instanceof FieldReference) { final Expression replacement = _replacements.get(member.getFullName()); if (replacement != null) { node.replaceWith(replacement.clone()); } } return null; } }
super.visitMemberReferenceExpression(node, data); MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() != null && node.getRole() == Roles.TARGET_EXPRESSION) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE); final ResolveResult valueResult = _resolver.apply(node.getTarget()); addCastForAssignment(astBuilder.convertType(declaringType, NO_IMPORT_OPTIONS), node.getTarget());
@Override public ResolveResult visitMemberReferenceExpression(final MemberReferenceExpression node, final Void p) { final ResolveResult targetResult = node.getTarget().acceptVisitor(this, p); MemberReference memberReference = node.getUserData(Keys.MEMBER_REFERENCE); if (StringUtilities.equals(node.getMemberName(), "length")) { if (targetResult != null && targetResult.getType() != null && if (node.getParent() instanceof InvocationExpression) { memberReference = node.getParent().getUserData(Keys.MEMBER_REFERENCE);
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void ignored) { startNode(node); final Expression target = node.getTarget(); if (!target.isNull()) { target.acceptVisitor(this, null); writeToken(Roles.DOT); } writeTypeArguments(node.getTypeArguments()); writeIdentifier(node.getMemberName()); endNode(node); return null; }
((MemberReferenceExpression) left).getTarget() instanceof ThisReferenceExpression) { final MemberReference memberReference = reference.getUserData(Keys.MEMBER_REFERENCE); reference.remove(); node.replaceWith(reference);
super.visitMemberReferenceExpression(node, data); if (node.getTarget() instanceof ThisReferenceExpression) { final ThisReferenceExpression thisReference = (ThisReferenceExpression) node.getTarget(); final Expression target = thisReference.getTarget(); MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() instanceof InvocationExpression) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE);
if (!(node.getTarget() instanceof ThisReferenceExpression)) { return false; else if (!node.getChildByRole(Roles.TARGET_EXPRESSION).isNull()) { return false; if (node.getTarget() instanceof ThisReferenceExpression) { thisReference = (ThisReferenceExpression) node.getTarget(); thisReference.setTarget(new TypeReferenceExpression(node.getOffset(), outerType));
Expression.MYSTERY_OFFSET, new Choice( new MemberReferenceExpression( Expression.MYSTERY_OFFSET, new NamedNode( ).toExpression(), "clone" ).invoke(), new CastExpression( astBuilder.convertType(definition.makeArrayType()), new MemberReferenceExpression( Expression.MYSTERY_OFFSET, new NamedNode( ).toExpression(), "clone" ).invoke() return reference.getUserData(Keys.MEMBER_REFERENCE);
mapName = ((MemberReferenceExpression) array).getMemberName(); final Expression memberTarget = memberReference.getTarget(); if (!(memberTarget instanceof MemberReferenceExpression) || !"ordinal".equals(memberReference.getMemberName())) { return super.visitAssignmentExpression(node, data); final Expression outerMemberTarget = outerMemberReference.getTarget(); final IdentifierExpression enumValue = new IdentifierExpression( Expression.MYSTERY_OFFSET, outerMemberReference.getMemberName()); enumValue.putUserData(Keys.MEMBER_REFERENCE, outerMemberReference.getUserData(Keys.MEMBER_REFERENCE));
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { super.visitMemberReferenceExpression(node, data); if (isCurrentMemberVisible()) { MemberReference member = node.getUserData(Keys.MEMBER_REFERENCE); if (member == null && node.getParent() != null) { member = node.getParent().getUserData(Keys.MEMBER_REFERENCE); } if (member != null) { final IMemberDefinition resolvedMember; if (member instanceof FieldReference) { resolvedMember = ((FieldReference) member).resolve(); } else { resolvedMember = ((MethodReference) member).resolve(); } if (resolvedMember != null && resolvedMember.isSynthetic() && !Flags.testAny(resolvedMember.getFlags(), Flags.BRIDGE)) { context.getForcedVisibleMembers().add(resolvedMember); } } } return null; }
@Override public Void visitMethodDeclaration(final MethodDeclaration node, final Void _) { final MethodDefinition methodDefinition = node.getUserData(Keys.METHOD_DEFINITION); if (isSwitchMapMethod(methodDefinition)) { final Match m = SWITCH_TABLE_METHOD_BODY.match(node.getBody()); if (m.success()) { final MemberReferenceExpression fieldAccess = first(m.<MemberReferenceExpression>get("fieldAccess")); final FieldReference field = (FieldReference) fieldAccess.getUserData(Keys.MEMBER_REFERENCE); final List<MemberReferenceExpression> enumValues = toList(m.<MemberReferenceExpression>get("enumValue")); final List<PrimitiveExpression> tableValues = toList(m.<PrimitiveExpression>get("tableValue")); assert field != null && tableValues.size() == enumValues.size(); final String key = makeKey(field); SwitchMapInfo info = _switchMaps.get(key); if (info == null) { _switchMaps.put(key, info = new SwitchMapInfo(field)); } info.switchMapMethodDeclaration = node; for (int i = 0; i < enumValues.size(); i++) { final MemberReferenceExpression memberReference = enumValues.get(i); final IdentifierExpression identifier = new IdentifierExpression( Expression.MYSTERY_OFFSET, memberReference.getMemberName()); identifier.putUserData(Keys.MEMBER_REFERENCE, memberReference.getUserData(Keys.MEMBER_REFERENCE)); info.mappings.put((Integer) tableValues.get(i).getValue(), identifier); } } } return super.visitMethodDeclaration(node, _); }
final MemberReferenceExpression memberReference = new MemberReferenceExpression( node.getOffset(), new TypeReferenceExpression(node.getOffset(), astType), fieldName ); memberReference.putUserData(Keys.MEMBER_REFERENCE, field); memberReference.putUserData(Keys.CONSTANT_VALUE, value);
@Override public Void visitMemberReferenceExpression(final MemberReferenceExpression node, final Void data) { tryIntroduceOuterClassReference(node, node.getTarget() instanceof ThisReferenceExpression); return super.visitMemberReferenceExpression(node, data); }
super.visitMemberReferenceExpression(node, data); if (_identifierPattern.matches(node.getTarget())) { final MemberReference memberReference = node.getParent().getUserData(Keys.MEMBER_REFERENCE); node.getTarget().getOffset(), node.getTarget().getStartLocation() ); node.getTarget().getOffset(), type node.getTarget().replaceWith(s);
public final AstNodeCollection<AstType> getTypeArguments() { return getChildrenByRole(Roles.TYPE_ARGUMENT); }