- /*
- * @(#)CompoundControl.java 1.10 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package javax.sound.sampled;
-
- /**
- * A <code>CompoundControl</code>, such as a graphic equalizer, provides control
- * over two or more related properties, each of which is itself represented as
- * a <code>Control</code>.
- *
- * @author Kara Kytle
- * @version 1.10, 03/12/19
- * @since 1.3
- */
- public abstract class CompoundControl extends Control {
-
-
- // TYPE DEFINES
-
-
- // INSTANCE VARIABLES
-
-
- /**
- * The set of member controls.
- */
- private Control[] controls;
-
-
-
- // CONSTRUCTORS
-
-
- /**
- * Constructs a new compound control object with the given parameters.
- *
- * @param type the type of control represented this compound control object
- * @param memberControls the set of member controls
- */
- protected CompoundControl(Type type, Control[] memberControls) {
-
- super(type);
- this.controls = memberControls;
- }
-
-
-
- // METHODS
-
-
- /**
- * Returns the set of member controls that comprise the compound control.
- * @return the set of member controls.
- */
- public Control[] getMemberControls() {
-
- Control[] localArray = new Control[controls.length];
-
- for (int i = 0; i < controls.length; i++) {
- localArray[i] = controls[i];
- }
-
- return localArray;
- }
-
-
- // ABSTRACT METHOD IMPLEMENTATIONS: CONTROL
-
-
- /**
- * Provides a string representation of the control
- * @return a string description
- */
- public String toString() {
-
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < controls.length; i++) {
- if (i != 0) {
- buf.append(", ");
- if ((i + 1) == controls.length) {
- buf.append("and ");
- }
- }
- buf.append(controls[i].getType());
- }
-
- return new String(getType() + " Control containing " + buf + " Controls.");
- }
-
-
- // INNER CLASSES
-
-
- /**
- * An instance of the <code>CompoundControl.Type</code> inner class identifies one kind of
- * compound control. Static instances are provided for the
- * common types.
- *
- * @author Kara Kytle
- * @version 1.10, 03/12/19
- * @since 1.3
- */
- public static class Type extends Control.Type {
-
-
- // TYPE DEFINES
-
- // CONSTRUCTOR
-
-
- /**
- * Constructs a new compound control type.
- * @param name the name of the new compound control type
- */
- protected Type(String name) {
- super(name);
- }
- } // class Type
-
- } // class CompoundControl