private String getCompositeName( Composite composite ) { return PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( composite ).types().findFirst().get().getName(); } }
private String getCompositeName( Composite composite ) { return PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( composite ).types().findFirst().get().getName(); } }
private String getCompositeName( Composite composite ) { return PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( composite ).types().findFirst().get().getName(); }
private String getCompositeName( Composite composite ) { return PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( composite ).types().findFirst().get().getName(); }
public SimpleLogConcern( @This Composite composite ) { this.composite = composite; Class<?> type = PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( composite ).types().findFirst().orElse( null ); category = type.getName(); }
protected static String compositeDescriptorToString( LayerDescriptor layer, ModuleDescriptor module, CompositeDescriptor descriptor ) { return DESCRIPTOR_COMPONENT_SEPARATOR_START + layer.name() + DESCRIPTOR_COMPONENT_SEPARATOR_END + DESCRIPTOR_COMPONENT_SEPARATOR_START + module.name() + DESCRIPTOR_COMPONENT_SEPARATOR_END + DESCRIPTOR_COMPONENT_SEPARATOR_START + descriptor.types().map( Object::toString ).collect( Collectors.joining( DESCRIPTOR_TYPE_SEPARATOR ) ) + DESCRIPTOR_COMPONENT_SEPARATOR_END; }
@Override public boolean visitEnter( Object visited ) { boolean thisResult = true; if( visited instanceof LayerDescriptor ) { thisResult = ( (LayerDescriptor) visited ).name().equals( layerName ); } else if( visited instanceof ModuleDescriptor ) { thisResult = ( (ModuleDescriptor) visited ).name().equals( moduleName ); } else if( descriptorClass.isAssignableFrom( visited.getClass() ) ) { CompositeDescriptor desc = (CompositeDescriptor) visited; Set<String> names = desc.types().map( Class::getName ).collect( Collectors.toSet() ); if( classNames.equals( names ) ) { result[ 0 ] = desc; thisResult = false; } } return thisResult; }
private List<CompositeMethodDetailDescriptor> findState( Iterable<CompositeMethodDetailDescriptor> iter ) { List<CompositeMethodDetailDescriptor> publicList = new ArrayList<>(); List<CompositeMethodDetailDescriptor> privateList = new ArrayList<>(); for( CompositeMethodDetailDescriptor descriptor : iter ) { Class<?> compositeClass = descriptor.composite().descriptor().types().findFirst().orElse( null ); Class<?> mixinMethodClass = descriptor.descriptor().method().getDeclaringClass(); if( mixinMethodClass.isAssignableFrom( compositeClass ) ) { publicList.add( descriptor ); } else { privateList.add( descriptor ); } } // combine into one list, with public listed first then private publicList.addAll( privateList ); // filter Property, Association, ManyAssociation and NamedAssociation doFilter( publicList ); return publicList; }
compositeDescriptor.types().forEach( mixinType ->
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; } }
@Test public final void testCompositeDescriptorWithComposite() throws Throwable { // Test with Standard composite AddressComposite address = transientBuilderFactory.newTransient( AddressComposite.class ); CompositeDescriptor addressDescriptor = spi.compositeDescriptorFor( address ); assertNotNull( addressDescriptor ); assertEquals( AddressComposite.class, addressDescriptor.types().findFirst().orElse( null ) ); assertTrue( TransientDescriptor.class.isAssignableFrom( addressDescriptor.getClass() ) ); }
EntityComposite source = (EntityComposite) uow.get( PolygeneAPI.FUNCTION_DESCRIPTOR_FOR.apply( entity ) .types() .findFirst() .orElse( null ), entity.identity().get() );