/******************************************************************************************************************* * * ******************************************************************************************************************/ private void logChanges (final @Nonnull DatumAndRole datumAndRole, final @Nonnull Set<Class<?>> before, final @Nonnull Set<Class<?>> after) { after.removeAll(before); if (!after.isEmpty()) { log.debug(">>>>>>> added implementations: {} -> {}", datumAndRole, after); if (log.isTraceEnabled()) // yes, trace { logRoles(); } } }
/******************************************************************************************************************* * * Scans all the given role implementation classes and build a map of roles by owner class. * * @param roleImplementationTypes the types of role implementations to scan * ******************************************************************************************************************/ protected void scan (final @Nonnull Collection<Class<?>> roleImplementationTypes) { log.debug("scan({})", shortNames(roleImplementationTypes)); for (final Class<?> roleImplementationType : roleImplementationTypes) { for (final Class<?> datumType : findDatumTypesForRole(roleImplementationType)) { for (final Class<?> roleType : findAllImplementedInterfacesOf(roleImplementationType)) { if (!roleType.getName().equals("org.springframework.beans.factory.aspectj.ConfigurableObject")) { roleMapByDatumAndRole.add(new DatumAndRole(datumType, roleType), roleImplementationType); } } } } logRoles(); }