//////////////////////////////////////////////////////////////////////////////// // Copyright 2013 Michael Schmalle - Teoti Graphix, LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License // // Author: Michael Schmalle, Principal Architect // mschmalle at teotigraphix dot com //////////////////////////////////////////////////////////////////////////////// package com.teotigraphix.caustk.tone; import com.teotigraphix.caustk.core.ICausticEngine; import com.teotigraphix.caustk.core.IRestore; import com.teotigraphix.caustk.utils.ExceptionUtils; public abstract class ToneComponent implements IRestore { //---------------------------------- // tone //---------------------------------- private transient Tone tone; public Tone getTone() { return tone; } public void setTone(Tone value) { tone = value; } protected final int getToneIndex() { return tone.getIndex(); } protected final ICausticEngine getEngine() { return tone.getEngine(); } //-------------------------------------------------------------------------- // Constructor //-------------------------------------------------------------------------- public ToneComponent() { } //-------------------------------------------------------------------------- // ISerialize API :: Methods //-------------------------------------------------------------------------- public String serialize() { return tone.getController().getSerializeService().toString(this); } /** * Returns a new {@link IllegalArgumentException} for an error in OSC range. * * @param control The OSC control involved. * @param range The accepted range. * @param value The value that is throwing the range exception. * @return A new {@link IllegalArgumentException}. */ protected final RuntimeException newRangeException(String control, String range, Object value) { return ExceptionUtils.newRangeException(control, range, value); } }