class Mixin extends ServerServlet { @Structure private ObjectFactory objectFactory; @Override protected org.restlet.Application createApplication( Context parentContext ) { return objectFactory.newObject( PolygeneRestApplication.class, parentContext.createChildContext() ); } } }
protected class BoardAdmin extends Role<Board> { @Structure Module module; public void updateName( String name ) { self().name().set( name ); } } }
protected class ForumView extends Role<Forum> { @Structure Module module; public Query<Board> boards() { return module.newQueryBuilder( Board.class ).newQuery( self.boards() ); } } }
protected class ModeratorAdmin extends Role<Moderators> { @Structure Module module; public void removeModerator() { self().moderators().remove( moderator.self() ); } } }
class ServiceAvailableConstraint implements InteractionConstraint<ServiceAvailable> { @Structure Module module; @Override public boolean isValid( ServiceAvailable serviceAvailable, ObjectSelection objectSelection ) { ServiceReference ref = module.findService( serviceAvailable.value() ); return ref != null && ref.isAvailable(); } } }
class ServiceAvailableConstraint implements InteractionConstraint<ServiceAvailable> { @Structure Module module; @Override public boolean isValid( ServiceAvailable serviceAvailable, ObjectSelection objectSelection ) { ServiceReference ref = module.findService( serviceAvailable.value() ); return ref != null && ref.isAvailable(); } } }
public CategoryLogConcern( @Structure TransientBuilderFactory cbf ) { }
public class PolygeneFinder extends Finder { @Structure private ObjectFactory factory; public PolygeneFinder() { } @Override public ServerResource create( Class<? extends ServerResource> targetClass, Request request, Response response ) { return factory.newObject( targetClass ); } }
public CarEntityFactoryMixin( @Structure UnitOfWorkFactory unitOfWorkFactory ) { }
/** * Integration with Polygene. Register an object extending Application to use. */ public class PolygeneServerServlet extends ServerServlet { @Structure Module module; @Override @SuppressWarnings( "unchecked" ) protected Application createApplication( Context context ) { return module.newObject( Application.class, context.createChildContext(), getServletConfig(), getServletContext() ); } }
/** * TODO */ public class Context { @Structure protected Module module; protected <T> T role( Class<T> roleType, Object data ) { return module.newObject( roleType, data ); } protected <T> T role( Object object, Class<T> roleType ) { return PolygeneAPI.FUNCTION_COMPOSITE_INSTANCE_OF.apply( (Composite) object ).newProxy( roleType ); } }
public static class QueriesMixin implements Queries { @Structure private Module module; @Override public Person byId( Identity id ) { return module.unitOfWorkFactory().currentUnitOfWork().get( Person.class, id ); } @Override public Iterable<Person> all() { return module.unitOfWorkFactory().currentUnitOfWork() .get( PersonList.class, PersonList.LIST_ID ) .all().toList(); } }
public static class QueriesMixin implements Queries { @Structure private Module module; @Override public Person byId( Identity id ) { return module.unitOfWorkFactory().currentUnitOfWork().get( Person.class, id ); } @Override public Iterable<Person> all() { return module.unitOfWorkFactory().currentUnitOfWork() .get( PersonList.class, PersonList.LIST_ID ) .all().toList(); } }
public class SwingPanel { private static final Rectangle SIZE_32_32 = new Rectangle( 32, 32 ); private Locale locale; // START SNIPPET: info-use @Structure private PolygeneAPI api; // END SNIPPET: info-use // START SNIPPET: info-use private void addProperty( JPanel panel, Property<?> property ) { SwingInfo info = api.propertyDescriptorFor( property ).metaInfo( SwingInfo.class ); Icon icon = info.icon( SIZE_32_32 ); panel.add( new JLabel(info.displayName( this.locale ), icon, JLabel.CENTER) ); } // START SNIPPET: info-use }
class BuilderImpl implements Builder { @Structure private ValueBuilderFactory vbf; public Currency create( int amount, String currencyName ) { return create( new BigDecimal( amount ), currencyName ); } public Currency create( BigDecimal amount, String currencyName ) { ValueBuilder<Currency> builder = vbf.newValueBuilder( Currency.class ); builder.prototype().name().set( currencyName ); builder.prototype().amount().set( amount ); return builder.newInstance(); } } }
class Builder { private final Currency.Builder currencyBuilder; @Structure private ValueBuilderFactory vbf; public Builder( @Structure TransientBuilderFactory tbf ) { currencyBuilder = tbf.newTransient( Currency.Builder.class ); } public Rent create( int amount, String currency ) { ValueBuilder<Rent> builder = vbf.newValueBuilder( Rent.class ); builder.prototype().amount().set( currencyBuilder.create( amount, currency ) ); return builder.newInstance(); } } }
public abstract static class TestMixin1 implements TestComposite1 { @Structure Module module; public Module getModule() { return module; } }
public abstract static class TestMixin2 implements TestComposite2 { @Structure Module module; public Module getModule() { return module; } }
public static class ObjectA { @Structure TransientBuilderFactory cbf; String test() { CompositeB instance = cbf.newTransient( CompositeB.class ); return instance.test(); } }