/********************************************************************************** * $URL:https://source.sakaiproject.org/svn/osp/trunk/matrix/api/src/java/org/theospi/portfolio/matrix/model/Scaffolding.java $ * $Id:Scaffolding.java 9134 2006-05-08 20:28:42Z chmaurer@iupui.edu $ *********************************************************************************** * * Copyright (c) 2005, 2006, 2007, 2008 The Sakai Foundation * * Licensed under the Educational Community 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.opensource.org/licenses/ECL-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. * **********************************************************************************/ package org.theospi.portfolio.matrix.model; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; import org.sakaiproject.exception.IdUnusedException; import org.sakaiproject.metaobj.shared.model.Agent; import org.sakaiproject.metaobj.shared.model.Id; import org.sakaiproject.site.api.Site; import org.sakaiproject.site.cover.SiteService; import org.theospi.portfolio.shared.model.ObjectWithWorkflow; import org.theospi.portfolio.style.model.Style; import org.theospi.portfolio.shared.model.WizardMatrixConstants; /** */ public class Scaffolding extends ObjectWithWorkflow implements Serializable { private Id id; private List levels = new ArrayList(); private List criteria = new ArrayList(); private Set scaffoldingCells = new HashSet(); private Agent owner; private String title; private String columnLabel; private String rowLabel; private String readyColor; private String pendingColor; private String completedColor; private String lockedColor; private String returnedColor; private Style style; private String description; private Id worksiteId; private boolean preview = false; private boolean published = false; private Agent publishedBy; private Date publishedDate; private Date modifiedDate; private String exposedPageId; private transient Boolean exposeAsTool = null; transient private boolean validate; private int workflowOption; private int generalFeedbackOption; private int itemFeedbackOption; private Set matrix = new HashSet(); // Dependent on ordering of <c:forTokens> in addScaffolding.jsp public static final int NO_PROGRESSION = 0; public static final int HORIZONTAL_PROGRESSION = 1; public static final int VERTICAL_PROGRESSION = 2; public static final int OPEN_PROGRESSION = 3; public static final int MANUAL_PROGRESSION = 4; private List additionalForms = new ArrayList(); private List<String> attachments = new ArrayList(); private Collection evaluators = new HashSet(); private Collection reviewers = new HashSet(); private boolean allowRequestFeedback = true; private boolean hideEvaluations = false; //this variable is used for version control: if this is null when importing a matrix, //then the matrix is an older version and set all defaults to false private boolean defaultFormsMatrixVersion = false; public Scaffolding() {} public Scaffolding (String columnLabel, String rowLabel) { this.columnLabel = columnLabel; this.rowLabel = rowLabel; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object other) { //TODO need better equals if (other == this) return true; if (other == null || !(other instanceof Scaffolding)) return false; return (this.getId().equals(((Scaffolding) other).getId())); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ public int hashCode() { //TODO need better hashcode Id id = this.getId(); if (id == null) return 0; return id.getValue().hashCode(); } /** * Typical levels might be Beginner, Intermediate, Advanced */ public List getLevels() { return levels; } /** * @return List of Criteria */ public List getCriteria() { return criteria; } /** * @return Returns the owner. */ public Agent getOwner() { return owner; } /** * @param owner The owner to set. */ public void setOwner(Agent owner) { this.owner = owner; } /** * @param criteria The criteria to set. */ public void setCriteria(List criteria) { this.criteria = criteria; } /** * @param levels The levels to set. */ public void setLevels(List levels) { this.levels = levels; } /** * @return Returns the id. */ public Id getId() { return id; } /** * @param id The id to set. */ public void setId(Id id) { this.id = id; } public void add(Criterion criterion) { this.getCriteria().add(criterion); } public void add(Level level) { this.getLevels().add(level); } public void add(ScaffoldingCell scaffoldingCell) { this.getScaffoldingCells().add(scaffoldingCell); } /** * @return Returns the title. */ public String getTitle() { return title; } /** * @param title The title to set. */ public void setTitle(String title) { this.title = title; } /** * @return Returns the expectations. */ public Set getScaffoldingCells() { return scaffoldingCells; } /** * @param expectations The expectations to set. */ public void setScaffoldingCells(Set scaffoldingCells) { this.scaffoldingCells = scaffoldingCells; } /** * @return Returns the description. */ public String getDescription() { return description; } /** * @param description The description to set. */ public void setDescription(String description) { this.description = description; } /** * @return Returns the worksiteId. */ public String getWorksiteName() { String worksiteName = ""; try { Site site = SiteService.getSite(worksiteId.getValue()); worksiteName = site.getTitle(); } catch (IdUnusedException e) { // tbd } return worksiteName; } /** * @return Returns the worksiteId. */ public Id getWorksiteId() { return worksiteId; } /** * @param worksiteId The worksiteId to set. */ public void setWorksiteId(Id worksiteId) { this.worksiteId = worksiteId; } /** * @return Returns the validate. */ public boolean isValidate() { return validate; } /** * @param validate The validate to set. */ public void setValidate(boolean validate) { this.validate = validate; } public boolean isPreview() { return preview; } public void setPreview(boolean preview) { this.preview = preview; } public boolean isPublished() { return published; } public void setPublished(boolean published) { this.published = published; } public Agent getPublishedBy() { return publishedBy; } public void setPublishedBy(Agent publishedBy) { this.publishedBy = publishedBy; } public Date getPublishedDate() { return publishedDate; } public void setPublishedDate(Date publishedDate) { this.publishedDate = publishedDate; } public String getColumnLabel() { return columnLabel; } public void setColumnLabel(String columnLabel) { this.columnLabel = columnLabel; } public String getRowLabel() { return rowLabel; } public void setRowLabel(String rowLabel) { this.rowLabel = rowLabel; } public String getCompletedColor() { return completedColor; } public void setCompletedColor(String completedColor) { this.completedColor = completedColor; } public String getLockedColor() { return lockedColor; } public void setLockedColor(String lockedColor) { this.lockedColor = lockedColor; } public String getPendingColor() { return pendingColor; } public void setPendingColor(String pendingColor) { this.pendingColor = pendingColor; } public String getReadyColor() { return readyColor; } public void setReadyColor(String readyColor) { this.readyColor = readyColor; } /** * @return Returns the workflowOption. */ public int getWorkflowOption() { return workflowOption; } /** * @param workflowOption The workflowOption to set. */ public void setWorkflowOption(int workflowOption) { this.workflowOption = workflowOption; } public int getGeneralFeedbackOption() { return generalFeedbackOption; } public void setGeneralFeedbackOption(int feedbackOption) { this.generalFeedbackOption = feedbackOption; } public boolean isGeneralFeedbackOpen() { return generalFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_OPEN; } public boolean isGeneralFeedbackSingle() { return generalFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_SINGLE; } public boolean isGeneralFeedbackNone() { return generalFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_NONE; } public int getItemFeedbackOption() { return itemFeedbackOption; } public void setItemFeedbackOption(int feedbackOption) { this.itemFeedbackOption = feedbackOption; } public boolean isItemFeedbackOpen() { return itemFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_OPEN; } public boolean isItemFeedbackSingle() { return itemFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_SINGLE; } public boolean isItemFeedbackNone() { return itemFeedbackOption == WizardMatrixConstants.FEEDBACK_OPTION_NONE; } public Set getMatrix() { return matrix; } public void setMatrix(Set matrix) { this.matrix = matrix; } public void add(Matrix matrix) { this.getMatrix().add(matrix); matrix.setScaffolding(this); } public Boolean getExposeAsTool() { return exposeAsTool; } public void setExposeAsTool(Boolean exposeAsTool) { this.exposeAsTool = exposeAsTool; } public String getExposedPageId() { return exposedPageId; } public void setExposedPageId(String exposedPageId) { this.exposedPageId = exposedPageId; } public Style getStyle() { return style; } public void setStyle(Style style) { this.style = style; } public List getAdditionalForms() { return additionalForms; } public void setAdditionalForms(List additionalForms) { this.additionalForms = additionalForms; } public List<String> getAttachments() { return attachments; } public void setAttachments(List<String> attachments) { this.attachments = attachments; } public Collection getEvaluators() { return evaluators; } public void setEvaluators(Collection evaluators) { this.evaluators = evaluators; } public String getReturnedColor() { return returnedColor; } public void setReturnedColor(String returnedColor) { this.returnedColor = returnedColor; } public boolean isAllowRequestFeedback() { return allowRequestFeedback; } public void setAllowRequestFeedback(boolean allowRequestFeedback) { this.allowRequestFeedback = allowRequestFeedback; } public Collection getReviewers() { return reviewers; } public void setReviewers(Collection reviewers) { this.reviewers = reviewers; } public boolean isDefaultFormsMatrixVersion() { return defaultFormsMatrixVersion; } public void setDefaultFormsMatrixVersion(boolean defaultFormsMatrixVersion) { this.defaultFormsMatrixVersion = defaultFormsMatrixVersion; } public Date getModifiedDate() { return modifiedDate; } public void setModifiedDate(Date modifiedDate) { this.modifiedDate = modifiedDate; } public String getReference() { return "/scaffolding/" + getWorksiteId() + "/" + getId().getValue(); } public boolean isHideEvaluations() { return hideEvaluations; } public void setHideEvaluations(boolean hideEvaluations) { this.hideEvaluations = hideEvaluations; } }