question: public static void snapAnchor ( Collection < ConstraintWidget > widgets , ConstraintWidget widget , ConstraintAnchor anchor , SnapCandidate candidate ) { if ( widget . getParent ( ) != null ) { if ( ! anchor . isVerticalAnchor ( ) ) { checkHorizontalParentMarginSnap ( anchor , ConstraintAnchor . Type . RIGHT , - DEFAULT_MARGIN , candidate ) ; checkHorizontalParentMarginSnap ( anchor , ConstraintAnchor . Type . LEFT , DEFAULT_MARGIN , candidate ) ; } else { checkVerticalParentMarginSnap ( anchor , ConstraintAnchor . Type . BOTTOM , - DEFAULT_MARGIN , candidate ) ; checkVerticalParentMarginSnap ( anchor , ConstraintAnchor . Type . TOP , DEFAULT_MARGIN , candidate ) ; } } for ( ConstraintWidget w : widgets ) { if ( w == widget ) { continue ; } ArrayList < ConstraintAnchor > anchorsTarget = w . getAnchors ( ) ; for ( ConstraintAnchor at : anchorsTarget ) { snapCheck ( anchor , at , candidate , CONNECTION_SLOPE ) ; } } }
target:  Try to find snapping candidates for the given anchor