It would help to know that context, but without that I would suspect legacy refers to code that isn't being written as part of the current project. The term is often used for some old code you have to interface to, but if you have a project to update an application, the old code might be referred to as the legacy code. In describing a design, it can be important to point out which parts of the design represent legacy code, which typically is being used as-is, and which parts represent new work, which typically has to adapt to fit the legacy parts.
In the beginning Sun released Java 1.0. Then they stood back and looked at what they had made, and saw that all was not good. And on the second release (1.1) they made it better. And on the next release (1.1.x) it was better still. And on the 1.2 release Sun created collections etc. and many of the early classes became obsolete. However there remained much code that still used the old ways. In it's wisdom Sun did not want to break that code, and therefore left the legacy classes in place and these were marked "deprecated". In addition many methods of "improved" classes were marked "deprecated" to show the people the new way. And Sun said "thou shalt start replacing this stuff, cuz we aren't going to wait forever to get rid of it". And the people (did what???).
"JavaRanch, where the deer and the Certified play" - David O'Meara