Android Open Source - opentraining F Set






From Project

Back to project page opentraining.

License

The source code is released under:

GNU General Public License

If you think the Android project opentraining listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * // w  ww  . ja v a  2  s. co  m
 * This is OpenTraining, an Android application for planning your your fitness training.
 * Copyright (C) 2012-2014 Christian Skubich
 * 
 * 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 <http://www.gnu.org/licenses/>.
 * 
 */

package de.skubware.opentraining.basic;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import android.util.Log;

/**
 * There are several parameters that define how an exercise is executed:<br><br>
 * 
 * weight - which weight you should put on your barbell, dumbbell, ...<br>
 * repetitions - how often the exercise should be executed until you take a
 * short break<br> 
 * number of sets - a successional series of repetitions is called a
 * set e.g. 3 sets / 12 repetitions do mean: 12 repetitions; short break; 12
 * repetitions; short break; 12 repetitions;<br><br>
 * 
 * This class represents a single set. If it is part of a
 * {@link FitnessExercise} it describes how the exercise should be done. If it
 * is part of a {@link TrainingEntry} it indicates how the exercise has been
 * done.
 */
public class FSet implements Serializable, Cloneable {

  /** Tag for logging */
  public static final String TAG = "FSet";
  
  /** Default serialVersionUID */
  private static final long serialVersionUID = 1L;
  
  /** List that contains the parameters that define the set  */
  private List<SetParameter> mSetParameterList = new ArrayList<SetParameter>();

  /**
   * A SetParameter specifies what should be/has been done in a set, e.g. how
   * long({@link Duration}), how often({@link Repetition}) or how much(
   * {@link Weight}).
   * 
   * Each SetParameter has a name() and an integer value.
   * 
   */
  public static abstract class SetParameter implements Serializable {
    
    /** Default serialVersionUID */
    private static final long serialVersionUID = 1L;
    
    /** Not negative number */
    protected int value;
    
    /** The name of the SetParameter */
    public final String name;

    /**
     * Default constructor.
     * 
     * @param name
     *            The name of the SetParameter
     * @param value
     *            A not negative number
     * 
     * @throws IllegalArgumentException
     *             if value is below 0
     */
    SetParameter(String name, int value) {
      if(value < 0)
        throw new IllegalArgumentException("value must be >= 0 , was: " + value);
      
      this.name = name;
      this.value = value;
    }
    
    SetParameter(SetParameter parameter){
      this.name = parameter.name;
      this.value = parameter.value;
    }
    

    public final String getName() {
      return name;
    }

    public int getValue() {
      return value;
    }

    @Override
    public String toString() {
      return name + " : " + value;
    }
    

    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
      return this.name.hashCode();
    }

    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
      if (this == obj)
        return true;
      if (obj == null)
        return false;
      if (getClass() != obj.getClass())
        return false;
      SetParameter other = (SetParameter) obj;
      return other.name.equals(this.name) && other.value == this.value;
    }    

    

    // Classes
    public static class Repetition extends SetParameter {

      /**
       * 
       */
      private static final long serialVersionUID = 1L;

      public Repetition(int value) {
        super("repetition", value);
      }

      @Override
      public String toString() {
        return value + " x";
      }
      
      public Repetition(Repetition parameter){
        this(parameter.value);
      }
    }

    public static class Weight extends SetParameter {

      /**
       * 
       */
      private static final long serialVersionUID = 1L;

      /**
       * 
       * @param value The weight in gramm
       */
      public Weight(int value) {
        super("weight", value);
      }

      @Override
      public String toString() {
        float weight = value;
        weight /= 1000;

        return weight + " kg";
      }
      
      public Weight(Weight parameter){
        this(parameter.value);
      }
    }

    public static class Duration extends SetParameter {

      /**
       * 
       */
      private static final long serialVersionUID = 1L;

      /**Object
       * 
       * @param value The time in secons
       */
      public Duration(int value) {
        super("duration", value);
      }

      @Override
      public String toString() {
        return value + " s";
      }
      
      public Duration(Duration parameter){
        this(parameter.value);
      }
    }
    
    public static class FreeField extends SetParameter {
      /**
       * 
       */
      private static final long serialVersionUID = 1L;
      private String mContent;
      
      public FreeField(String content){
        super("freefield", 1);
        this.value = -1;
        
        mContent = content;
      }
      
      @Override
      public String toString() {
        return mContent;
      }
      
      @Override
      public int getValue(){
        Log.e(TAG, "getVale() should not be used for instances of FreeField.");
        return super.getValue();
      }
      

      /* (non-Javadoc)
       * @see java.lang.Object#equals(java.lang.Object)
       */
      @Override
      public boolean equals(Object obj) {
        if (this == obj)
          return true;
        if (!super.equals(obj))
          return false;
        if (getClass() != obj.getClass())
          return false;
        FreeField other = (FreeField) obj;
        return other.name.equals(this.name) && other.mContent.equals(this.mContent);
      }
      
      public FreeField(FreeField parameter){
        this(parameter.mContent);
      }


    }
    
    
  }

  /**
   * Constructor for FSet.
   * 
   * @param cats
   *            How often the exercise should be executed
   * 
   * @throws IllegalArgumentException
   *             if cats is empty
   * @throws NullPointerException
   *             if any argument is null
   */
  public FSet(SetParameter... cats) {
    if(cats.length < 1)
      throw new IllegalArgumentException("cats must not be empty");
    
    for (SetParameter c : cats) {
      if (c == null) {
        throw new NullPointerException();
      }
    }
    java.util.Collections.addAll(this.mSetParameterList, cats);
  }

  @Override
  public String toString() {
    StringBuilder b = new StringBuilder();
    for (SetParameter c : mSetParameterList) {
      b.append(c.toString());
      b.append(" ");
    }
    return b.toString();
  }

  public int[] listValues() {
    int[] arr = new int[mSetParameterList.size()];
    int i = 0;
    for (SetParameter c : mSetParameterList) {
      arr[i] = c.getValue();
      i++;
    }
    
    return arr;
  }

  public String[] listFields() {
    String[] arr = new String[mSetParameterList.size()];
    int i = 0;
    for (SetParameter c : mSetParameterList) {
      arr[i] = c.getName();
      i++;
    }

    return arr;
  }

  public int getNumberOfSetParameters() {
    return mSetParameterList.size();
  }

  /**
   * Getter for the {@link SetParameter}s
   * 
   * @return A list with the {@link SetParameter}s
   */
  public List<SetParameter> getSetParameters() {
    return Collections.unmodifiableList(this.mSetParameterList);
  }
  
  
  
  /* (non-Javadoc)
   * @see java.lang.Object#hashCode()
   */
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((mSetParameterList == null) ? 0 : mSetParameterList.hashCode());
    return result;
  }

  /* (non-Javadoc)
   * @see java.lang.Object#equals(java.lang.Object)
   */
  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    FSet other = (FSet) obj;
    if (mSetParameterList == null) {
      if (other.mSetParameterList != null)
        return false;
    } else if (!mSetParameterList.equals(other.mSetParameterList))
      return false;
    return true;
  }
  
  @Override
  public Object clone(){
    try{
      FSet cloned = (FSet) super.clone();
      cloned.mSetParameterList = new ArrayList<SetParameter>();
      
      for(SetParameter para:mSetParameterList){
        SetParameter newPara = null;
        if(para instanceof SetParameter.Weight){
          newPara = new SetParameter.Weight((SetParameter.Weight) para);
        }
        if(para instanceof SetParameter.Duration){
          newPara = new SetParameter.Duration((SetParameter.Duration) para);
        }
        if(para instanceof SetParameter.Repetition){
          newPara = new SetParameter.Repetition((SetParameter.Repetition) para);
        }
        if(para instanceof SetParameter.FreeField){
          newPara = new SetParameter.FreeField((SetParameter.FreeField) para);
        }
        cloned.mSetParameterList.add(newPara);
      }
      
      return cloned;
    } catch(CloneNotSupportedException e){
      e.printStackTrace();
      throw new AssertionError("Clone not supported: " + e.toString());
    }
  }

}




Java Source Code List

at.technikum.mti.fancycoverflow.FancyCoverFlowAdapter.java
at.technikum.mti.fancycoverflow.FancyCoverFlowItemWrapper.java
at.technikum.mti.fancycoverflow.FancyCoverFlow.java
de.skubware.opentraining.activity.ChangeLogDialog.java
de.skubware.opentraining.activity.DisclaimerDialog.java
de.skubware.opentraining.activity.MainActivity.java
de.skubware.opentraining.activity.NavigationGalleryAdapter.java
de.skubware.opentraining.activity.SelectWorkoutDialogFragment.java
de.skubware.opentraining.activity.WhatsNewDialog.java
de.skubware.opentraining.activity.acra.ACRACrashReportMailer.java
de.skubware.opentraining.activity.acra.ACRAFeedbackMailer.java
de.skubware.opentraining.activity.acra.OpenTrainingApplication.java
de.skubware.opentraining.activity.acra.RequestExerciseUpdate.java
de.skubware.opentraining.activity.create_exercise.CreateExerciseActivity.java
de.skubware.opentraining.activity.create_exercise.CustomSpinner.java
de.skubware.opentraining.activity.create_exercise.DescriptionFragment.java
de.skubware.opentraining.activity.create_exercise.EditImageMetadataDialog.java
de.skubware.opentraining.activity.create_exercise.EquipmentDataFragment.java
de.skubware.opentraining.activity.create_exercise.ExerciseImageListAdapter.java
de.skubware.opentraining.activity.create_exercise.ImageFragment.java
de.skubware.opentraining.activity.create_exercise.MuscleDataFragment.java
de.skubware.opentraining.activity.create_exercise.NameFragment.java
de.skubware.opentraining.activity.create_exercise.SimpleDataFragment.java
de.skubware.opentraining.activity.create_exercise.SpinnerDataFragment.java
de.skubware.opentraining.activity.create_workout.DialogFilterMusclesAndEquipment.java
de.skubware.opentraining.activity.create_workout.DialogWorkoutOverviewFragment.java
de.skubware.opentraining.activity.create_workout.ExerciseDetailOnGestureListener.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailActivity.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailFragment.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListActivity.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListAdapter.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListFragment.java
de.skubware.opentraining.activity.create_workout.SelectMuscleDialog.java
de.skubware.opentraining.activity.create_workout.SendExerciseFeedbackDialogFragment.java
de.skubware.opentraining.activity.create_workout.upload_exercise.ExerciseImage.java
de.skubware.opentraining.activity.create_workout.upload_exercise.UploadExerciseAsyncTask.java
de.skubware.opentraining.activity.create_workout.upload_exercise.UploadExerciseImagesAsyncTask.java
de.skubware.opentraining.activity.create_workout.upload_exercise.WgerRestService.java
de.skubware.opentraining.activity.manage_workouts.RenameWorkoutDialogFragment.java
de.skubware.opentraining.activity.manage_workouts.WorkoutDetailActivity.java
de.skubware.opentraining.activity.manage_workouts.WorkoutDetailFragment.java
de.skubware.opentraining.activity.manage_workouts.WorkoutListActivity.java
de.skubware.opentraining.activity.manage_workouts.WorkoutListFragment.java
de.skubware.opentraining.activity.settings.LicenseDialog.java
de.skubware.opentraining.activity.settings.SettingsActivity.java
de.skubware.opentraining.activity.settings.sync.OpenTrainingSyncResultReceiver.java
de.skubware.opentraining.activity.settings.sync.OpenTrainingSyncService.java
de.skubware.opentraining.activity.settings.sync.RestClient.java
de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.java
de.skubware.opentraining.activity.settings.sync.WgerImageDownloader.java
de.skubware.opentraining.activity.settings.sync.WgerJSONParser.java
de.skubware.opentraining.activity.start_training.DialogFragmentAddEntry.java
de.skubware.opentraining.activity.start_training.DialogFragmentTrainingEntryTable.java
de.skubware.opentraining.activity.start_training.FExDetailActivity.java
de.skubware.opentraining.activity.start_training.FExDetailFragment.java
de.skubware.opentraining.activity.start_training.FExListActivity.java
de.skubware.opentraining.activity.start_training.FExListAdapter.java
de.skubware.opentraining.activity.start_training.FExListFragment.java
de.skubware.opentraining.activity.start_training.RecoveryTimerManager.java
de.skubware.opentraining.activity.start_training.SwipeDismissListViewTouchListener.java
de.skubware.opentraining.activity.start_training.SwipeDismissTouchListener.java
de.skubware.opentraining.activity.start_training.TrainingEntryListAdapter.java
de.skubware.opentraining.basic.ActivationLevel.java
de.skubware.opentraining.basic.ExerciseTag.java
de.skubware.opentraining.basic.ExerciseType.java
de.skubware.opentraining.basic.FSet.java
de.skubware.opentraining.basic.FitnessExercise.java
de.skubware.opentraining.basic.IExercise.java
de.skubware.opentraining.basic.License.java
de.skubware.opentraining.basic.Muscle.java
de.skubware.opentraining.basic.SportsEquipment.java
de.skubware.opentraining.basic.TrainingEntry.java
de.skubware.opentraining.basic.Translatable.java
de.skubware.opentraining.basic.Workout.java
de.skubware.opentraining.db.Cache.java
de.skubware.opentraining.db.DataHelper.java
de.skubware.opentraining.db.DataProvider.java
de.skubware.opentraining.db.IDataProvider.java
de.skubware.opentraining.db.parser.AbstractJSONParser.java
de.skubware.opentraining.db.parser.ExerciseTagJSONParser.java
de.skubware.opentraining.db.parser.ExerciseTypeXMLParser.java
de.skubware.opentraining.db.parser.IParser.java
de.skubware.opentraining.db.parser.MuscleJSONParser.java
de.skubware.opentraining.db.parser.SportsEquipmentJSONParser.java
de.skubware.opentraining.db.parser.WorkoutXMLParser.java
de.skubware.opentraining.db.parser.XMLSaver.java
de.skubware.opentraining.db.rest.ExerciseImageGSONSerializer.java
de.skubware.opentraining.db.rest.ExerciseTypeGSONSerializer.java
de.skubware.opentraining.db.rest.LanguageGSONDeserializer.java
de.skubware.opentraining.db.rest.MuscleGSONDeserializer.java
de.skubware.opentraining.db.rest.ServerModel.java
de.skubware.opentraining.db.rest.SportsEquipmentGSONDeserializer.java
de.skubware.opentraining.exporter.HTMLExporter.java
de.skubware.opentraining.exporter.LaTeXExporter.java
de.skubware.opentraining.exporter.WorkoutExporter.java