MCPcopy Create free account
hub / github.com/GraxCode/zelixkiller / addOverrides

Method addOverrides

src/me/lpk/mapping/MappingFactory.java:342–379  ·  view source on GitHub ↗

Given a MappedMember searches for members in parent classes that match the same name & desc. @param method

(MappedMember method)

Source from the content-addressed store, hash-verified

340 * @param method
341 */
342 private static void addOverrides(MappedMember method) {
343 // This method has already been searched. Skip.
344 if (method.getFirstOverride() != null) {
345 return;
346 }
347 MappedClass mappedClass = method.getOwner();
348 // Skip if already searched for methods
349 List<MappedMember> methodOverridens = new ArrayList<MappedMember>();
350 MappedClass parent = mappedClass.getParent();
351 // Search the parents (search is inclusive from parent all the way up
352 // the class hierarchy) for matching methods.
353 if (parent != null) {
354 MappedMember parentMethod = ParentUtils.findMethodInParentInclusive(parent, method.getOriginalName(), method.getDesc(), true);
355 if (parentMethod != null) {
356 methodOverridens.add(parentMethod);
357 }
358 }
359 // Search the interfaces (search is inclusive from parent all the way up
360 // the class hierarchy) for matching methods.
361 for (MappedClass interfacee : mappedClass.getInterfaces()) {
362 MappedMember interfaceMethod = ParentUtils.findMethodInParentInclusive(interfacee, method.getOriginalName(), method.getDesc(), true);
363 if (interfaceMethod != null) {
364 methodOverridens.add(interfaceMethod);
365 }
366 }
367 // Add each override.
368 for (MappedMember override : methodOverridens) {
369 // Check the overriden member for additional overrides.
370 addOverrides(override);
371 // Don't add duplicates. Set up override structure for the given
372 // method and the override.
373 if (!method.getOverrides().contains(override)) {
374 method.addOverride(override);
375 override.addMemberThatOverridesMe(method);
376 method.setIsLibrary(override.isLibrary());
377 }
378 }
379 }
380}

Callers 1

linkMappingsMethod · 0.95

Calls 13

getParentMethod · 0.95
getInterfacesMethod · 0.95
getFirstOverrideMethod · 0.80
getOwnerMethod · 0.80
getOriginalNameMethod · 0.80
getDescMethod · 0.80
containsMethod · 0.80
getOverridesMethod · 0.80
addOverrideMethod · 0.80
setIsLibraryMethod · 0.80

Tested by

no test coverage detected