X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2FAbstractControlledComponent.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2FAbstractControlledComponent.java;h=0000000000000000000000000000000000000000;hb=633a841142f978235ed9f745b6ba16c278963e62;hp=fe338c114bc6f92bbfafaf281b660136885ef6b2;hpb=70ea21939e6071954eeb05f2a42e7a92a02013f2;p=sonitus.git
diff --git a/src/main/java/net/pterodactylus/sonitus/data/AbstractControlledComponent.java b/src/main/java/net/pterodactylus/sonitus/data/AbstractControlledComponent.java
deleted file mode 100644
index fe338c1..0000000
--- a/src/main/java/net/pterodactylus/sonitus/data/AbstractControlledComponent.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Sonitus - AbstractControlledComponent.java - Copyright © 2013 David Roden
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package net.pterodactylus.sonitus.data;
-
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-import com.google.common.collect.Lists;
-
-/**
- * Abstract {@link ControlledComponent} implementation that takes care of
- * managing {@link MetadataListener}s.
- *
- * @author David âBombeâ Roden
- */
-public abstract class AbstractControlledComponent implements ControlledComponent {
-
- /** The name of this filter. */
- private final String name;
-
- /** The list of metadata listeners. */
- private final List metadataListeners = Lists.newCopyOnWriteArrayList();
-
- /** The current metadata. */
- private final AtomicReference metadata = new AtomicReference();
-
- /**
- * Creates a new abstract controlled component.
- *
- * @param name
- * The name of the component
- */
- protected AbstractControlledComponent(String name) {
- this.name = name;
- }
-
- //
- // LISTENER MANAGEMENT
- //
-
- @Override
- public void addMetadataListener(MetadataListener metadataListener) {
- metadataListeners.add(metadataListener);
- }
-
- @Override
- public void removeMetadataListener(MetadataListener metadataListener) {
- metadataListeners.remove(metadataListener);
- }
-
- //
- // CONTROLLEDCOMPONENT METHODS
- //
-
- @Override
- public String name() {
- return name;
- }
-
- @Override
- public Metadata metadata() {
- return metadata.get();
- }
-
- @Override
- public void metadataUpdated(Metadata metadata) {
- if (metadata.equals(this.metadata.get())) {
- return;
- }
- this.metadata.set(metadata);
- fireMetadataUpdated(metadata);
- }
-
- //
- // EVENT METHODS
- //
-
- /**
- * Notifies all registered metadata listeners that the metadata has changed.
- *
- * @param metadata
- * The new metadata
- */
- protected void fireMetadataUpdated(Metadata metadata) {
- for (MetadataListener metadataListener : metadataListeners) {
- metadataListener.metadataUpdated(this, metadata);
- }
- }
-
-}