All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jwave.TransformBuilder Maven / Gradle / Ivy

/**
 * Create Transform objects ...
 *
 * @author Christian Scheiblich ([email protected])
 * @date 14.03.2015 14:25:21 
 *
 * TransformBuilder.java
 */
package jwave;

import jwave.Transform;
import jwave.exceptions.JWaveException;
import jwave.exceptions.JWaveFailure;
import jwave.transforms.BasicTransform;
import jwave.transforms.DiscreteFourierTransform;
import jwave.transforms.FastWaveletTransform;
import jwave.transforms.WaveletPacketTransform;
import jwave.transforms.wavelets.Wavelet;
import jwave.transforms.wavelets.WaveletBuilder;

/**
 * Class for creating and identifying Transform object.
 * 
 * @author Christian Scheiblich ([email protected])
 * @date 14.03.2015 14:25:21
 */
public class TransformBuilder {

  /**
   * Create a Transform object by a given string and a given Wavelet object.
   * Look into each Transform for matching string identifier.
   * 
   * @author Christian Scheiblich ([email protected])
   * @date 14.03.2015 14:35:12
   * @param transformName
   *          identifier as stored in Transform object
   * @param wavelet
   * @return a matching object of type Transform
   */
  static public Transform create( String transformName, Wavelet wavelet ) {

    BasicTransform basicTransform = null;

    try {

      switch( transformName ){

        case "Discrete Fourier Transform":
          basicTransform = new DiscreteFourierTransform( );
          break;

        case "Fast Wavelet Transform":
          basicTransform = new FastWaveletTransform( wavelet );
          break;

        case "Wavelet Packet Transform":
          basicTransform = new WaveletPacketTransform( wavelet );
          break;

        default:

          throw new JWaveFailure(
              "TransformBuilder::create - unknown type of transform for given string!" );

      } // switch

    } catch( JWaveException e ) {

      e.showMessage( );
      e.printStackTrace( );

    } // try

    return new Transform( basicTransform );

  } // create

  /**
   * Create a Transform object by a given string and a given string for a
   * Wavelet object. Look into each Transform and Wavelet for matching string
   * identifier.
   * 
   * @author Christian Scheiblich ([email protected])
   * @date 14.03.2015 14:37:30
   * @param transformName
   *          identifier as stored in Transform object
   * @param waveletName
   * @return identifier as stored in Wavelet object
   */
  static public Transform create( String transformName, String waveletName ) {

    return create( transformName, WaveletBuilder.create( waveletName ) );

  } // create

  /**
   * Returns the identifier string of a given Transform object.
   * 
   * @author Christian Scheiblich ([email protected])
   * @date 14.03.2015 14:34:20
   * @param transform
   *          string identifier of the given Transform object
   * @return a string as the identifier of the given Transform object
   */
  static public String identify( Transform transform ) {

    BasicTransform basicTransform = transform.getBasicTransform( );
    return basicTransform.getName( );

  } // identify

} // class




© 2015 - 2024 Weber Informatics LLC | Privacy Policy