/* * Computoser is a music-composition algorithm and a website to present the results * Copyright (C) 2012-2014 Bozhidar Bozhanov * * Computoser is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * Computoser 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Computoser. If not, see <http://www.gnu.org/licenses/>. */ package com.music.model.persistent; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import org.hibernate.annotations.Type; import org.joda.time.DateTime; import com.music.model.Scale; @Entity public class Piece { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id", columnDefinition = "INT(11) UNSIGNED") private Long id; @Type(type="com.music.util.persistence.PersistentDateTime") private DateTime generationTime; @Column(nullable=false) private int likes; @Column private String title; @Column @Enumerated(EnumType.STRING) private Scale scale; @Column @Enumerated(EnumType.STRING) private Scale alternativeScale; @Column(nullable=false) private int keyNote; @Column(nullable=false) private int metreNumerator; @Column(nullable=false) private int metreDenominator; @Column(nullable=false) private int measures; @Column(nullable=false) private int tempo; @Column(nullable=false) private double normalizedMeasureSize; @Column(nullable=false) private double upBeatLength; @Column(nullable=false) private double noteLengthCoefficient; @Column(nullable=false) private boolean newlyCreated; @Column private String parts; @Embedded private IntermediateDecisions intermediateDecisions = new IntermediateDecisions(); @Column(nullable=false) private int mainInstrument; @Column(nullable=false) private double variation; @Column private String encodedUserPreferences; @Column(nullable=false) private int midiDownloads; @Column(nullable=false) private int mp3Downloads; @Column private String algorithmVersion; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Scale getScale() { return scale; } public void setScale(Scale scale) { this.scale = scale; } public Scale getAlternativeScale() { return alternativeScale; } public void setAlternativeScale(Scale alternativeScale) { this.alternativeScale = alternativeScale; } public int getKeyNote() { return keyNote; } public void setKeyNote(int keyNote) { this.keyNote = keyNote; } public int getMetreNumerator() { return metreNumerator; } public void setMetreNumerator(int metreNumerator) { this.metreNumerator = metreNumerator; } public int getMetreDenominator() { return metreDenominator; } public void setMetreDenominator(int metreDenominator) { this.metreDenominator = metreDenominator; } public int getMeasures() { return measures; } public void setMeasures(int measures) { this.measures = measures; } public double getNormalizedMeasureSize() { return normalizedMeasureSize; } public void setNormalizedMeasureSize(double normalizedMeasureSize) { this.normalizedMeasureSize = normalizedMeasureSize; } public double getUpBeatLength() { return upBeatLength; } public void setUpBeatLength(double upBeatLength) { this.upBeatLength = upBeatLength; } public double getNoteLengthCoefficient() { return noteLengthCoefficient; } public void setNoteLengthCoefficient(double noteLengthCoefficient) { this.noteLengthCoefficient = noteLengthCoefficient; } public String getParts() { return parts; } public void setParts(String parts) { this.parts = parts; } public int getLikes() { return likes; } public void setLikes(int likes) { this.likes = likes; } public int getTempo() { return tempo; } public void setTempo(int tempo) { this.tempo = tempo; } public IntermediateDecisions getIntermediateDecisions() { return intermediateDecisions; } public void setIntermediateDecisions(IntermediateDecisions intermediateDecisions) { this.intermediateDecisions = intermediateDecisions; } public String getEncodedUserPreferences() { return encodedUserPreferences; } public void setEncodedUserPreferences(String encodedUserPreferences) { this.encodedUserPreferences = encodedUserPreferences; } public boolean isNewlyCreated() { return newlyCreated; } public void setNewlyCreated(boolean newlyCreated) { this.newlyCreated = newlyCreated; } public DateTime getGenerationTime() { return generationTime; } public void setGenerationTime(DateTime generationTime) { this.generationTime = generationTime; } public int getMainInstrument() { return mainInstrument; } public void setMainInstrument(int mainInstrument) { this.mainInstrument = mainInstrument; } public int getMidiDownloads() { return midiDownloads; } public void setMidiDownloads(int downloads) { this.midiDownloads = downloads; } public double getVariation() { return variation; } public void setVariation(double variation) { this.variation = variation; } public String getAlgorithmVersion() { return algorithmVersion; } public void setAlgorithmVersion(String algorithmVersion) { this.algorithmVersion = algorithmVersion; } public int getMp3Downloads() { return mp3Downloads; } public void setMp3Downloads(int mp3Downloads) { this.mp3Downloads = mp3Downloads; } }