+ private final List<MetadataListener> metadataListeners = Lists.newCopyOnWriteArrayList();
+
+ /** The current metadata. */
+ private final AtomicReference<Metadata> metadata = new AtomicReference<Metadata>();
+
+ /**
+ * Creates a new abstract controlled component.
+ *
+ * @param name
+ * The name of the component
+ */
+ protected AbstractControlledComponent(String name) {
+ this.name = name;
+ }