Package org.jtrim.event

Examples of org.jtrim.event.ListenerRef


    protected final GradleProjectPlatformQuery trySetQuery(GradleProjectPlatformQuery query) {
        ExceptionHelper.checkNotNullArgument(query, "query");

        if (queryRef.compareAndSet(null, query)) {
            ListenerRef toRemove = null;
            InitLaterListenerRef toAdd = null;

            changesLock.lock();
            try {
                if (changes.hasListeners()) {
                    toRemove = subListenerRef;
                    toAdd = new InitLaterListenerRef();
                    subListenerRef = toAdd;
                }
            } finally {
                changesLock.unlock();
            }

            if (toRemove != null) {
                toRemove.unregister();
            }
            if (toAdd != null) {
                toAdd.init(query.addPlatformChangeListener(new Runnable() {
                    @Override
                    public void run() {
View Full Code Here


        return value != null ? value : getDefaultPlatform();
    }

    @Override
    public final void addChangeListener(ChangeListener listener) {
        ListenerRef toRemove = null;
        InitLaterListenerRef toAdd = null;
        GradleProjectPlatformQuery query = queryRef.get();

        changesLock.lock();
        try {
            if (!changes.hasListeners() && query != null) {
                toRemove = subListenerRef;
                toAdd = new InitLaterListenerRef();
                subListenerRef = toAdd;
            }
            changes.addChangeListener(listener);
        } finally {
            changesLock.unlock();
        }

        if (toRemove != null) {
            toRemove.unregister();
        }
        if (toAdd != null) {
            assert query != null;
            toAdd.init(query.addPlatformChangeListener(new Runnable() {
                @Override
View Full Code Here

        }
    }

    @Override
    public final void removeChangeListener(ChangeListener listener) {
        ListenerRef toRemove = null;

        changesLock.lock();
        try {
            changes.removeChangeListener(listener);
            if (!changes.hasListeners()) {
                toRemove = subListenerRef;
                subListenerRef = null;
            }
        } finally {
            changesLock.unlock();
        }

        if (toRemove != null) {
            toRemove.unregister();
        }
    }
View Full Code Here

                valueRef.set(input.getValue());
                performValidation();
            }
        };

        ListenerRef ref1 = input.addChangeListener(new Runnable() {
            @Override
            public void run() {
                updateReader.execute(updateValueTask);
            }
        });
        ListenerRef ref2 = this.validator.addValidator(new Validator<Void>() {
            @Override
            public Problem validateInput(Void inputType) {
                return validator.validateInput(valueRef.get());
            }
        });

        performValidation();

        final ListenerRef result = ListenerRegistries.combineListenerRefs(ref1, ref2);
        return new ListenerRef() {
            @Override
            public boolean isRegistered() {
                return result.isRegistered();
            }

            @Override
            public void unregister() {
                result.unregister();
                performValidation();
            }
        };
    }
View Full Code Here

                elementRef = validators.addLastGetReference(validator);
            } finally {
                validatorsLock.unlock();
            }

            return new ListenerRef() {
                @Override
                public boolean isRegistered() {
                    validatorsLock.lock();
                    try {
                        return !elementRef.isRemoved();
View Full Code Here

        // Attempting to do so will cause Gradle to throw a class cast exception
        // somewhere.
        final DefaultCancellationTokenSource cancelSource = new DefaultCancellationTokenSource();
        buildLauncher.withCancellationToken(cancelSource.token());

        ListenerRef cancelListenerRef = cancelToken.addCancellationListener(new Runnable() {
            @Override
            public void run() {
                scheduleCancel(cancelSource);
            }
        });
        try {
            buildLauncher.run();
        } catch (Throwable ex) {
            if (!cancelToken.isCanceled()) {
                throw ex;
            }
            else {
                // The exception is most likely due to cancellation.
                // Report cancellation message?
                LOGGER.log(Level.INFO, "Build has been canceled.", ex);
            }
        } finally {
            cancelListenerRef.unregister();
        }
    }
View Full Code Here

TOP

Related Classes of org.jtrim.event.ListenerRef

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.