![JAR search and dependency download from the Maven repository](/logo.png)
net.java.truelicense.swing.ObservableLicenseConsumerManager Maven / Gradle / Ivy
/*
* Copyright (C) 2005-2013 Schlichtherle IT Services.
* All rights reserved. Use is subject to license terms.
*/
package net.java.truelicense.swing;
import java.util.*;
import net.java.truelicense.core.*;
import net.java.truelicense.core.io.Source;
import net.java.truelicense.core.util.Objects;
/**
* An observable license consumer manager for use in single threaded (GUI)
* contexts.
* Mind you this class is not thread-safe.
*
* @author Christian Schlichtherle
*/
public final class ObservableLicenseConsumerManager
implements LicenseConsumerManager {
private final LicenseConsumerManager delegate;
private final List
listeners = new ArrayList();
private final LicenseConsumerManagerEvent event;
/**
* Constructs a new observable license consumer manager.
*
* @param delegate the delegate license consumer manager.
*/
public ObservableLicenseConsumerManager(
final LicenseConsumerManager delegate) {
this.delegate = Objects.requireNonNull(delegate);
this.event = new LicenseConsumerManagerEvent(this);
}
/**
* Returns the delegate license consumer manager which was provided to the
* constructor.
*/
public LicenseConsumerManager delegate() { return delegate; }
@Override public String subject() { return delegate().subject(); }
@Override public LicenseParameters parameters() {
return delegate().parameters();
}
@Override public LicenseConsumerContext context() {
return delegate().context();
}
@Override
public License install(Source source) throws LicenseManagementException {
final License license = delegate().install(source);
final List list;
//synchronized (listeners) {
list = new ArrayList(listeners);
//}
for (final LicenseConsumerManagerListener l : list) l.installed(event);
return license;
}
@Override public License view() throws LicenseManagementException {
final License license = delegate().view();
final List list;
//synchronized (listeners) {
list = new ArrayList(listeners);
//}
for (final LicenseConsumerManagerListener l : list) l.viewed(event);
return license;
}
@Override public void verify() throws LicenseManagementException {
delegate().verify();
final List list;
//synchronized (listeners) {
list = new ArrayList(listeners);
//}
for (final LicenseConsumerManagerListener l : list) l.verified(event);
}
@Override public void uninstall() throws LicenseManagementException {
delegate().uninstall();
final List list;
//synchronized (listeners) {
list = new ArrayList(listeners);
//}
for (final LicenseConsumerManagerListener l : list) l.uninstalled(event);
}
/**
* Adds the given license consumer manager listener.
* It is safe to call this method from a listener implementation.
* The implementation uses a list, so adding the same listener multiple
* times will result in multiple notifications for each event.
*
* @param cml the license consumer manager listener to add.
*/
public void addLicenseConsumerManagerListener(
LicenseConsumerManagerListener cml) {
//synchronized (listeners) {
listeners.add(cml);
//}
}
/**
* Removes the given license consumer manager listener.
* It is safe to call this method from a listener implementation.
* Removing an listener which is not registered has no effect.
*
* @param cml the license consumer manager listener to remove.
*/
public void removeLicenseConsumerManagerListener(
LicenseConsumerManagerListener cml) {
//synchronized (listeners) {
listeners.remove(cml);
//}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy