blob: a34bb6898d42e9e03a2a421c9a3496b30a02e932 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2012 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Description:
*
* Contributors:
* Alvaro Sanchez-Leon - Initial Implementation
*******************************************************************************/
/**
*
*/
package org.eclipse.mylyn.reviews.r4e.core.model.impl;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomaly;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EAnomalyTextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EComment;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ECommentType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EContextType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EDelta;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileContext;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EFileVersion;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EItem;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EParticipant;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReview;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewDecision;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewGroup;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewPhase;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewState;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EReviewType;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ETaskReference;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ETextContent;
import org.eclipse.mylyn.reviews.r4e.core.model.R4ETextPosition;
import org.eclipse.mylyn.reviews.r4e.core.model.R4EUserRole;
import org.eclipse.mylyn.reviews.r4e.core.model.RModelFactory;
import org.eclipse.mylyn.reviews.r4e.core.model.drules.R4EDesignRuleClass;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.Persistence.RModelFactoryExt;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.ResourceHandlingException;
import org.eclipse.mylyn.reviews.r4e.core.model.serial.impl.SerializeFactory;
/**
* @author Alvaro Sanchez-Leon
*
*/
public class ReviewSampl {
// ------------------------------------------------------------------------
// Constants
// ------------------------------------------------------------------------
private static RModelFactoryExt fResFactory = SerializeFactory.getModelExtension();
// ------------------------------------------------------------------------
// Methods
// ------------------------------------------------------------------------
public static R4EReview createReview(String aName, R4EReviewGroup aGroup) {
R4EReview fReview = null;
if (aGroup == null) {
return null;
}
String userId1 = "Tom10";
String userId2 = "Jerry20";
// Create Review
try {
fReview = fResFactory.createR4EReview(aGroup, aName, userId1);
} catch (ResourceHandlingException e1) {
e1.printStackTrace();
}
Calendar indCal = new GregorianCalendar(1867, Calendar.JULY, 1);
Date startDate = indCal.getTime();
// 2 days after
Date endDate = new Date(startDate.getTime() + 2 * 24 * 60 * 60 * 1000);
fReview.setStartDate(startDate);
fReview.setEndDate(endDate);
EList<String> projects = aGroup.getAvailableProjects();
String project = "TBD";
if (projects != null && projects.size() > 0) {
project = projects.get(0);
}
EList<String> components = aGroup.getAvailableComponents();
String component = "TBD";
if (components != null && components.size() > 0) {
component = components.get(0);
}
R4EReviewDecision decision = RModelFactory.eINSTANCE.createR4EReviewDecision();
decision.setValue(R4EDecision.R4E_REVIEW_DECISION_ACCEPTED);
List<R4EUserRole> roles = new ArrayList<R4EUserRole>();
roles.add(R4EUserRole.R4E_ROLE_LEAD);
int value = 0;
R4EParticipant participant = null;
try {
participant = fResFactory.createR4EParticipant(fReview, userId1, roles);
} catch (ResourceHandlingException e3) {
e3.printStackTrace();
}
participant.getTimeLog().put(startDate, 30);
participant.getTimeLog().put(endDate, 30);
participant.setFocusArea("Performance");
participant.setIsPartOfDecision(true);
participant.getGroupPaths().add("c:/users/test/group1/");
participant.getGroupPaths().add("c:/users/test/group2/");
Collection<Integer> userTimes = participant.getTimeLog().values();
for (Iterator<Integer> iterator = userTimes.iterator(); iterator.hasNext();) {
Integer time = iterator.next();
value += time;
}
R4EParticipant participant2 = null;
try {
participant2 = fResFactory.createR4EParticipant(fReview, userId2, roles);
} catch (ResourceHandlingException e2) {
e2.printStackTrace();
}
participant2.getTimeLog().put(startDate, 30);
participant2.getTimeLog().put(endDate, 30);
participant2.setFocusArea("Feature");
participant2.setIsPartOfDecision(true);
participant2.getGroupPaths().add("c:/group1/");
participant2.getGroupPaths().add("c:/group2/");
userTimes = participant2.getTimeLog().values();
for (Iterator<Integer> iterator = userTimes.iterator(); iterator.hasNext();) {
Integer time = iterator.next();
value += time;
}
// Anomaly
R4EAnomaly anomalyP1 = createAnomalies(participant);
R4EAnomaly anomalyP2 = createAnomalies(participant2);
// comments on anomalies createed by other users
createComments(participant, anomalyP2);
createComments(participant2, anomalyP1);
// ITEMS
createItems(participant);
createItems(participant2);
// Review ATTRIBUTES
fReview.setProject(project);
fReview.getComponents().add(component);
fReview.setEntryCriteria("Sample Entry Cryteria");
fReview.setExtraNotes("Sample extra notes");
fReview.setObjectives("Sample Objectives");
fReview.setReferenceMaterial("sample reference material");
fReview.setEndDate(endDate);
fReview.setType(R4EReviewType.R4E_REVIEW_TYPE_INFORMAL);
// REFERENCES LOCAL
decision.setSpentTime(value);
fReview.setDecision(decision);
// REFERENCES - SUPERTYPE
R4EReviewState revState = RModelFactory.eINSTANCE.createR4EReviewState();
revState.setState(R4EReviewPhase.R4E_REVIEW_PHASE_PREPARATION);
fReview.setState(revState);
R4ETaskReference task = RModelFactory.eINSTANCE.createR4ETaskReference();
task.setRepositoryURL("https://bugs.eclipse.org/bugs/show_bug.cgi?id=324328");
task.setTaskId("324328");
fReview.setReviewTask(task);
return fReview;
}
private static R4EAnomaly createAnomalies(R4EParticipant participant) {
R4EAnomaly anomaly = null;
try {
anomaly = fResFactory.createR4EAnomaly(participant);
anomaly.setDescription(participant.getId() + "- Anomaly text here .....");
anomaly.setTitle("This is sample Title - Anomaly");
Calendar indCal = new GregorianCalendar(1867, Calendar.JULY, 1);
Date createdOn = new Date(indCal.getTime().getTime() + 10 * 24 * 60 * 60 * 1000);
anomaly.setCreatedOn(createdOn);
R4ETextContent content = fResFactory.createR4ETextContent(anomaly);
content.setInfo("Write any information here");
R4EAnomalyTextPosition location = fResFactory.createR4EAnomalyTextPosition(content);
location.setStartLine(50);
location.setEndLine(100);
location.setStartPosition(1230);
location.setLength(40);
R4EFileVersion fileVer = fResFactory.createR4EFileVersion(location);
fileVer.setName("R4ETestFile");
fileVer.setRepositoryPath("/Dir1/Dir2");
fileVer.setPlatformURI("platform:/resource/projName/src/dir1/dir2");
fileVer.setVersionID("8");
} catch (ResourceHandlingException e2) {
e2.printStackTrace();
}
return anomaly;
}
/**
* @param participant
*/
private static void createComments(R4EParticipant participant, R4EAnomaly anomaly) {
// Additional comments from two users on the same anomaly
// Comments
R4ECommentType commType = RModelFactory.eINSTANCE.createR4ECommentType();
commType.setType(R4EDesignRuleClass.R4E_CLASS_ERRONEOUS);
// comment1
R4EComment comment1 = null;
try {
comment1 = fResFactory.createR4EComment(participant, anomaly);
} catch (ResourceHandlingException e1) {
e1.printStackTrace();
}
comment1.setType(commType);
comment1.setDescription("This is test comment number 1");
// comment2
R4EComment comment2 = null;
try {
comment2 = fResFactory.createR4EComment(participant, anomaly);
} catch (ResourceHandlingException e1) {
e1.printStackTrace();
}
comment2.setType(commType);
comment2.setDescription("This is test comment number 2");
}
/**
* @param participant
*/
private static void createItems(R4EParticipant participant) {
String[] itemDescriptions = new String[] { participant.getId() + "-Item to review 11",
participant.getId() + "-Item to review 12", participant.getId() + "-Item to review 21",
participant.getId() + "-Item to review 22" };
R4EItem item;
Calendar indCal = new GregorianCalendar(1867, Calendar.JULY, 1);
Date submittedDate = indCal.getTime();
for (int i = 0; i < itemDescriptions.length; i++) {
try {
item = fResFactory.createR4EItem(participant);
item.setDescription(itemDescriptions[i]);
item.setRepositoryRef("repository ref.." + i);
item.getProjectURIs().add("platform:resource/projX" + i);
item.setAuthorRep("changeAuthor_" + i);
item.setSubmitted(submittedDate);
R4EFileContext context = fResFactory.createR4EFileContext(item);
context.setType(R4EContextType.R4E_ADDED);
R4EFileVersion fvBase = fResFactory.createR4EBaseFileVersion(context);
fvBase.setName("file_" + i);
fvBase.setRepositoryPath("root/folder_" + i);
fvBase.setPlatformURI("platform:/resource/proj/src/dir3/dir4/file.xxx");
fvBase.setVersionID(Integer.toString(itemDescriptions[i].hashCode()));
fvBase.setLocalVersionID("locIdB_1234_" + i);
R4EFileVersion fvTarget = fResFactory.createR4ETargetFileVersion(context);
fvTarget.setName("file_" + i);
fvTarget.setRepositoryPath("root/folder_" + i);
fvTarget.setPlatformURI("platform:/resource/proj/src/dir6/dir7/file.yyy");
fvTarget.setVersionID(Integer.toString(itemDescriptions[i].hashCode() + 1));
fvTarget.setLocalVersionID("locIdT_1234_" + i);
R4EDelta delta = fResFactory.createR4EDelta(context);
R4ETextContent baseContent = fResFactory.createR4EBaseTextContent(delta);
baseContent.setContent("base content");
baseContent.setInfo("information for base content");
R4ETextPosition basePosition = fResFactory.createR4ETextPosition(baseContent);
basePosition.setStartPosition(200);
basePosition.setLength(50);
basePosition.setStartLine(10);
basePosition.setEndLine(20);
R4ETextContent targetContent = fResFactory.createR4ETargetTextContent(delta);
targetContent.setContent("target content");
targetContent.setInfo("information for target content");
R4ETextPosition targetPosition = fResFactory.createR4ETextPosition(targetContent);
targetPosition.setStartPosition(300);
targetPosition.setLength(100);
targetPosition.setStartLine(30);
targetPosition.setEndLine(40);
} catch (ResourceHandlingException e) {
e.printStackTrace();
}
}
}
}