/** * Utility method, if a {@link Builder} is not present (i.e. null) then * this will throw IllegalArgumentException as per contract for * {@link Builder#build()} * * @param builder Builder, may be null * @param expectedClass The expected class of the builder * @throws IllegalArgumentException if builder is null * @deprecated use {@link BuilderFactory#assertBuilder(uk.org.retep.util.builder.Builder, java.lang.String) } */ @Deprecated protected static final void assertBuilder( @Nullable final Builder<?> builder, @Nonnull final String expectedClass ) { BuilderFactory.assertBuilder( builder, expectedClass ); }
@Override public XMPPLogic<Object, Object> build() { BuilderFactory.assertBuilder( jidBuilder, "jidBuilder" ); BuilderFactory.assertBuilder( trueLogicBuilder, "trueLogicBuilder" ); BuilderFactory.assertBuilder( falseLogicBuilder, "falseLogicBuilder" ); JIDMatchXMPPLogic<Object, Object> logic = new JIDMatchXMPPLogic<Object, Object>(); logic.setJid( jidBuilder.build() ); logic.setTrueLogic( trueLogicBuilder.build() ); logic.setFalseLogic( falseLogicBuilder.build() ); return logic; } }
@Override protected ProtocolXMPPComponent createXMPPComponent() { BuilderFactory.assertBuilder( protocolStackBuilder, "protocolStackBuilder" ); final ProtocolStack<Stanza> stack = protocolStackBuilder.build(); return new ProtocolXMPPComponent( BuilderFactory.build( getJIDBuilder() ), stack ); }
@Override public final D build() { BuilderFactory.assertBuilder( next, "The protocol stack is empty" ); final D stack = createStack(); // configure here just in case they need access to the stack instance configureBuilders( stack ); final AbstractProtocolEntry<?, S> head = next.build(); stack.setDownstream( head ); head.setUpstream( stack ); return stack; }
/** * {@inheritDoc} * @throws NullPointerException if either of the domain or node logic builders * have not been set. */ @Override protected JIDDelegatingLogicComponent<D> createXMPPComponent() { BuilderFactory.assertBuilder( domainLogicBuilder, "domainLogicBuilder" ); BuilderFactory.assertBuilder( nodeLogicBuilder, "nodeLogicBuilder" ); return new JIDDelegatingLogicComponent<D>( BuilderFactory.build( getJIDBuilder() ), BuilderFactory.build( getDataBuilder() ), domainLogicBuilder.build(), nodeLogicBuilder.build(), BuilderFactory.build( resourceLogicBuilder ) ); } }
/** * Create an {@link XMPPComponent} with the functionality defined by this * builder. * * @return XMPPComponent to attach to the {@link uk.org.retep.xmpp.XMPPServer} */ @Override protected MucComponent createXMPPComponent() { BuilderFactory.assertBuilder( mucServiceBuilder, MucServiceBuilder.class.getSimpleName() ); final MucService service = mucServiceBuilder.build(); return new MucComponent( service.getJid(), service, service.getServerLogic(), mucServiceBuilder.getRoomLookupLogicBuilder().build() ); } }
@Override protected XMPPLogicComponent<D> createXMPPComponent() { BuilderFactory.assertBuilder( logicBuilder, "logicBuilder" ); return new XMPPLogicComponent<D>( BuilderFactory.build( getJIDBuilder() ), logicBuilder.build(), BuilderFactory.build( getDataBuilder() ) ); } }
/** * {@inheritDoc} */ @Override public XMPPServer<D> build() { BuilderFactory.assertBuilder( routerBuilder, "routerBuilder" ); resetLastBuild(); final uk.org.retep.xmpp.message.BuilderFactory builderFactory = getBuilderFactory(); if( builderFactory == null ) { throw new IllegalArgumentException( "No BuilderFactory defined" ); } try { // FIXME this needs fixing for defaultableRouter return setLastBuild( new DefaultXMPPServer<D>( (XMPPDefaultableRouter) routerBuilder.build(), BuilderFactory.build( getContextBuilder() ), builderFactory, BuilderFactory.buildIfNeeded( getIdGenerator() ) ) ); } catch( MessageException ex ) { throw new IllegalArgumentException( ex ); } } }
BuilderFactory.assertBuilder( serviceJidBuilder, "serviceJidBuilder" );