/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.modules.qpool.model;
import java.math.BigDecimal;
import java.util.Date;
import org.olat.core.util.StringHelper;
import org.olat.modules.qpool.QuestionItemView;
import org.olat.modules.qpool.QuestionStatus;
/**
*
* Initial date: 23.01.2013<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*/
public class ItemWrapper implements QuestionItemView {
private Long key;
private Date creationDate;
private Date lastModified;
private String identifier;
private String masterIdentifier;
private String title;
private String keywords;
private String coverage;
private String additionalInformations;
private String language;
private String taxonomyLevel;
private String educationalContextLevel;
private String educationalLearningTime;
private String itemType;
private BigDecimal difficulty;
private BigDecimal stdevDifficulty;
private BigDecimal differentiation;
private int numOfAnswerAlternatives;
private int usage;
private String itemVersion;
private String status;
private String format;
private boolean editable;
private boolean marked;
private Double rating;
public ItemWrapper(QuestionItemImpl item, boolean editable, boolean marked, Double rating) {
key = item.getKey();
creationDate = item.getCreationDate();
lastModified = item.getLastModified();
identifier = item.getIdentifier();
masterIdentifier = item.getMasterIdentifier();
title = item.getTitle();
keywords = item.getKeywords();
coverage = item.getCoverage();
additionalInformations = item.getAdditionalInformations();
language = item.getLanguage();
taxonomyLevel = item.getTaxonomyLevelName();
educationalContextLevel = item.getEducationalContextLevel();
educationalLearningTime = item.getEducationalLearningTime();
itemType = item.getItemType();
difficulty = item.getDifficulty();
stdevDifficulty = item.getStdevDifficulty();
differentiation = item.getDifferentiation();
numOfAnswerAlternatives = item.getNumOfAnswerAlternatives();
usage = item.getUsage();
itemVersion = item.getItemVersion();
status = item.getStatus();
format = item.getFormat();
this.editable = editable;
this.marked = marked;
this.rating = rating;
}
@Override
public Long getKey() {
return key;
}
@Override
public boolean isEditable() {
return editable;
}
@Override
public boolean isMarked() {
return marked;
}
@Override
public Double getRating() {
return rating;
}
@Override
public String getResourceableTypeName() {
return "QuestionItem";
}
@Override
public Long getResourceableId() {
return getKey();
}
@Override
public String getIdentifier() {
return identifier;
}
@Override
public String getMasterIdentifier() {
return masterIdentifier;
}
@Override
public String getTitle() {
return title;
}
@Override
public String getKeywords() {
return keywords;
}
@Override
public String getCoverage() {
return coverage;
}
@Override
public String getAdditionalInformations() {
return additionalInformations;
}
@Override
public String getLanguage() {
return language;
}
public String getTaxonomyLevelName() {
return taxonomyLevel;
}
@Override
public String getEducationalContextLevel() {
return educationalContextLevel;
}
@Override
public String getEducationalLearningTime() {
return educationalLearningTime;
}
@Override
public String getItemType() {
return itemType;
}
@Override
public BigDecimal getDifficulty() {
return difficulty;
}
@Override
public BigDecimal getStdevDifficulty() {
return stdevDifficulty;
}
@Override
public BigDecimal getDifferentiation() {
return differentiation;
}
@Override
public int getNumOfAnswerAlternatives() {
return numOfAnswerAlternatives;
}
@Override
public int getUsage() {
return usage;
}
@Override
public Date getCreationDate() {
return creationDate;
}
@Override
public Date getLastModified() {
return lastModified;
}
@Override
public void setLastModified(Date date) {
//not its job
}
@Override
public String getFormat() {
return format;
}
@Override
public QuestionStatus getQuestionStatus() {
if(StringHelper.containsNonWhitespace(status)) {
return QuestionStatus.valueOf(status);
}
return null;
}
@Override
public String getItemVersion() {
return itemVersion;
}
@Override
public int hashCode() {
return getKey().hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof ItemWrapper) {
ItemWrapper row = (ItemWrapper) obj;
return key.equals(row.key);
}
return false;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("itemRow[key=").append(getKey()).append(":")
.append("name=").append(getTitle()).append("]");
return sb.toString();
}
}