private String findCandidateTypes( ModuleDescriptor module ) { return Stream.concat( Stream.of( module.layer() ), module.layer().usedLayers().layers() ) .flatMap( LayerDescriptor::modules ) .map( ModuleDescriptor::typeLookup ) .flatMap( this::descriptors ) .filter( type -> compositeType.equals( type.primaryType().getName() ) ) .map( descriptor -> { Class<?> primarytype = descriptor.primaryType(); String typeName = primarytype.getName(); return "\t\t[ " + typeName + "] in [" + descriptor.module().name() + "] with visibility " + descriptor.visibility(); } ) .distinct() .collect( joining( NL, "\tInvisible " + metaType + " types are:" + NL, "" ) ); }
private String findCandidateTypes( ModuleDescriptor module ) { return Stream.concat( Stream.of( module.layer() ), module.layer().usedLayers().layers() ) .flatMap( LayerDescriptor::modules ) .map( ModuleDescriptor::typeLookup ) .flatMap( this::descriptors ) .filter( type -> compositeType.equals( type.primaryType().getName() ) ) .map( descriptor -> { Class<?> primarytype = descriptor.primaryType(); String typeName = primarytype.getName(); return "\t\t[ " + typeName + "] in [" + descriptor.module().name() + "] with visibility " + descriptor.visibility(); } ) .distinct() .collect( joining( NL, "\tInvisible " + metaType + " types are:" + NL, "" ) ); }
public JsonObjectBuilder toJson() { JsonObjectBuilder builder = Json.createObjectBuilder(); builder.add( "type", descriptor().primaryType().getName() ); builder.add( "visibility", descriptor().visibility().name() ); { JsonArrayBuilder typesBuilder = Json.createArrayBuilder(); descriptor().types().forEach( type -> typesBuilder.add( type.getName() ) ); builder.add( "types", typesBuilder ); } { JsonArrayBuilder mixinsBuilder = Json.createArrayBuilder(); mixins().forEach( mixin -> mixinsBuilder.add( mixin.toJson() ) ); builder.add( "mixins", mixinsBuilder ); } return builder; } }