400356: (R4E Sync-up) Move Gerrit interaction code to initial Remote API

	•Update R4E to reflect Reviews model changes.

Change-Id: Ib522ddd991179479339940ecfaba4a4d2a61bd44
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=400356
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
index 705f5a4..00f6069 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/RModelPackage.java
@@ -1652,12 +1652,21 @@
 	int R4E_ITEM__ADDED_BY = R4EID_COMPONENT_FEATURE_COUNT + 3;
 
 	/**
+	 * The feature id for the '<em><b>Committed By</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int R4E_ITEM__COMMITTED_BY = R4EID_COMPONENT_FEATURE_COUNT + 4;
+
+	/**
 	 * The feature id for the '<em><b>Review</b></em>' reference.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__REVIEW = R4EID_COMPONENT_FEATURE_COUNT + 4;
+	int R4E_ITEM__REVIEW = R4EID_COMPONENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1665,7 +1674,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__NAME = R4EID_COMPONENT_FEATURE_COUNT + 5;
+	int R4E_ITEM__NAME = R4EID_COMPONENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
@@ -1673,7 +1682,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__ID = R4EID_COMPONENT_FEATURE_COUNT + 6;
+	int R4E_ITEM__ID = R4EID_COMPONENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Reference</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int R4E_ITEM__REFERENCE = R4EID_COMPONENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -1681,7 +1699,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__DESCRIPTION = R4EID_COMPONENT_FEATURE_COUNT + 7;
+	int R4E_ITEM__DESCRIPTION = R4EID_COMPONENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Added By Id</b></em>' attribute.
@@ -1689,7 +1707,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__ADDED_BY_ID = R4EID_COMPONENT_FEATURE_COUNT + 8;
+	int R4E_ITEM__ADDED_BY_ID = R4EID_COMPONENT_FEATURE_COUNT + 10;
 
 	/**
 	 * The feature id for the '<em><b>File Context List</b></em>' containment reference list.
@@ -1698,7 +1716,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__FILE_CONTEXT_LIST = R4EID_COMPONENT_FEATURE_COUNT + 9;
+	int R4E_ITEM__FILE_CONTEXT_LIST = R4EID_COMPONENT_FEATURE_COUNT + 11;
 
 	/**
 	 * The feature id for the '<em><b>Repository Ref</b></em>' attribute.
@@ -1706,7 +1724,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__REPOSITORY_REF = R4EID_COMPONENT_FEATURE_COUNT + 10;
+	int R4E_ITEM__REPOSITORY_REF = R4EID_COMPONENT_FEATURE_COUNT + 12;
 
 	/**
 	 * The feature id for the '<em><b>Project UR Is</b></em>' attribute list. <!-- begin-user-doc --> <!-- end-user-doc
@@ -1715,7 +1733,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__PROJECT_UR_IS = R4EID_COMPONENT_FEATURE_COUNT + 11;
+	int R4E_ITEM__PROJECT_UR_IS = R4EID_COMPONENT_FEATURE_COUNT + 13;
 
 	/**
 	 * The feature id for the '<em><b>Author Rep</b></em>' attribute.
@@ -1723,7 +1741,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__AUTHOR_REP = R4EID_COMPONENT_FEATURE_COUNT + 12;
+	int R4E_ITEM__AUTHOR_REP = R4EID_COMPONENT_FEATURE_COUNT + 14;
 
 	/**
 	 * The feature id for the '<em><b>Submitted</b></em>' attribute.
@@ -1731,7 +1749,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__SUBMITTED = R4EID_COMPONENT_FEATURE_COUNT + 13;
+	int R4E_ITEM__SUBMITTED = R4EID_COMPONENT_FEATURE_COUNT + 15;
 
 	/**
 	 * The feature id for the '<em><b>Info Att</b></em>' map.
@@ -1739,7 +1757,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM__INFO_ATT = R4EID_COMPONENT_FEATURE_COUNT + 14;
+	int R4E_ITEM__INFO_ATT = R4EID_COMPONENT_FEATURE_COUNT + 16;
 
 	/**
 	 * The number of structural features of the '<em>R4E Item</em>' class.
@@ -1747,7 +1765,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int R4E_ITEM_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 15;
+	int R4E_ITEM_FEATURE_COUNT = R4EID_COMPONENT_FEATURE_COUNT + 17;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EContentImpl <em>R4E Content</em>}' class.
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
index 530cedb..6f6171b 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/R4EItemImpl.java
@@ -30,7 +30,6 @@
 import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
 import org.eclipse.emf.ecore.util.EcoreEMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.mylyn.reviews.core.model.IComment;
@@ -50,31 +49,33 @@
  * <p>
  * The following features are implemented:
  * <ul>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAllComments <em>All Comments</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getTopics <em>Topics</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getDirectTopics <em>Direct Topics</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAddedBy <em>Added By</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getReview <em>Review</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getId <em>Id</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getDescription <em>Description</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAddedById <em>Added By Id</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getFileContextList <em>File Context List</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getRepositoryRef <em>Repository Ref</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getProjectURIs <em>Project UR Is</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAuthorRep <em>Author Rep</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getSubmitted <em>Submitted</em>}</li>
- *   <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getInfoAtt <em>Info Att</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAllComments <em>All Comments</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getTopics <em>Topics</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getDirectTopics <em>Direct Topics</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAddedBy <em>Added By</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getCommittedBy <em>Committed By</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getReview <em>Review</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getReference <em>Reference</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAddedById <em>Added By Id</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getFileContextList <em>File Context List</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getRepositoryRef <em>Repository Ref</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getProjectURIs <em>Project UR Is</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getAuthorRep <em>Author Rep</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getSubmitted <em>Submitted</em>}</li>
+ * <li>{@link org.eclipse.mylyn.reviews.r4e.core.model.impl.R4EItemImpl#getInfoAtt <em>Info Att</em>}</li>
  * </ul>
  * </p>
- *
+ * 
  * @generated
  */
 public class R4EItemImpl extends R4EIDComponentImpl implements R4EItem {
 	/**
-	 * The cached value of the '{@link #getTopics() <em>Topics</em>}' reference list.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getTopics() <em>Topics</em>}' reference list. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getTopics()
 	 * @generated
 	 * @ordered
@@ -82,9 +83,9 @@
 	protected EList<ITopic> topics;
 
 	/**
-	 * The cached value of the '{@link #getDirectTopics() <em>Direct Topics</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * The cached value of the '{@link #getDirectTopics() <em>Direct Topics</em>}' reference list. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
 	 * @see #getDirectTopics()
 	 * @generated
 	 * @ordered
@@ -92,9 +93,9 @@
 	protected EList<ITopic> directTopics;
 
 	/**
-	 * The cached value of the '{@link #getAddedBy() <em>Added By</em>}' reference.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getAddedBy() <em>Added By</em>}' reference. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getAddedBy()
 	 * @generated
 	 * @ordered
@@ -102,9 +103,19 @@
 	protected IUser addedBy;
 
 	/**
-	 * The cached value of the '{@link #getReview() <em>Review</em>}' reference.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getCommittedBy() <em>Committed By</em>}' reference. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
+	 * @see #getCommittedBy()
+	 * @generated
+	 * @ordered
+	 */
+	protected IUser committedBy;
+
+	/**
+	 * The cached value of the '{@link #getReview() <em>Review</em>}' reference. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
 	 * @see #getReview()
 	 * @generated
 	 * @ordered
@@ -132,8 +143,8 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see #getId()
 	 * @generated
 	 * @ordered
@@ -141,8 +152,8 @@
 	protected static final String ID_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see #getId()
 	 * @generated
 	 * @ordered
@@ -150,9 +161,29 @@
 	protected String id = ID_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The default value of the '{@link #getReference() <em>Reference</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
+	 * @see #getReference()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REFERENCE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getReference() <em>Reference</em>}' attribute. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @see #getReference()
+	 * @generated
+	 * @ordered
+	 */
+	protected String reference = REFERENCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
 	 * @see #getDescription()
 	 * @generated
 	 * @ordered
@@ -160,9 +191,9 @@
 	protected static final String DESCRIPTION_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getDescription()
 	 * @generated
 	 * @ordered
@@ -170,9 +201,9 @@
 	protected String description = DESCRIPTION_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getAddedById() <em>Added By Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The default value of the '{@link #getAddedById() <em>Added By Id</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getAddedById()
 	 * @generated
 	 * @ordered
@@ -180,9 +211,9 @@
 	protected static final String ADDED_BY_ID_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getAddedById() <em>Added By Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getAddedById() <em>Added By Id</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getAddedById()
 	 * @generated
 	 * @ordered
@@ -192,6 +223,7 @@
 	/**
 	 * The cached value of the '{@link #getFileContextList() <em>File Context List</em>}' containment reference list.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see #getFileContextList()
 	 * @generated
 	 * @ordered
@@ -199,9 +231,9 @@
 	protected EList<R4EFileContext> fileContextList;
 
 	/**
-	 * The default value of the '{@link #getRepositoryRef() <em>Repository Ref</em>}' attribute.
-	 * <!-- begin-user-doc -->
+	 * The default value of the '{@link #getRepositoryRef() <em>Repository Ref</em>}' attribute. <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * 
 	 * @see #getRepositoryRef()
 	 * @generated
 	 * @ordered
@@ -209,9 +241,9 @@
 	protected static final String REPOSITORY_REF_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getRepositoryRef() <em>Repository Ref</em>}' attribute.
-	 * <!-- begin-user-doc -->
+	 * The cached value of the '{@link #getRepositoryRef() <em>Repository Ref</em>}' attribute. <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * 
 	 * @see #getRepositoryRef()
 	 * @generated
 	 * @ordered
@@ -219,9 +251,9 @@
 	protected String repositoryRef = REPOSITORY_REF_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getProjectURIs() <em>Project UR Is</em>}' attribute list.
-	 * <!-- begin-user-doc
+	 * The cached value of the '{@link #getProjectURIs() <em>Project UR Is</em>}' attribute list. <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
+	 * 
 	 * @see #getProjectURIs()
 	 * @generated
 	 * @ordered
@@ -229,9 +261,9 @@
 	protected EList<String> projectURIs;
 
 	/**
-	 * The default value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The default value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getAuthorRep()
 	 * @generated
 	 * @ordered
@@ -239,9 +271,9 @@
 	protected static final String AUTHOR_REP_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getAuthorRep() <em>Author Rep</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getAuthorRep()
 	 * @generated
 	 * @ordered
@@ -249,9 +281,9 @@
 	protected String authorRep = AUTHOR_REP_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The default value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getSubmitted()
 	 * @generated
 	 * @ordered
@@ -259,9 +291,9 @@
 	protected static final Date SUBMITTED_EDEFAULT = null;
 
 	/**
-	 * The cached value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
+	 * The cached value of the '{@link #getSubmitted() <em>Submitted</em>}' attribute. <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
+	 * 
 	 * @see #getSubmitted()
 	 * @generated
 	 * @ordered
@@ -280,6 +312,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	protected R4EItemImpl() {
@@ -288,6 +321,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -297,15 +331,18 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public IUser getAddedBy() {
 		if (addedBy != null && addedBy.eIsProxy()) {
-			InternalEObject oldAddedBy = (InternalEObject)addedBy;
-			addedBy = (IUser)eResolveProxy(oldAddedBy);
+			InternalEObject oldAddedBy = (InternalEObject) addedBy;
+			addedBy = (IUser) eResolveProxy(oldAddedBy);
 			if (addedBy != oldAddedBy) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RModelPackage.R4E_ITEM__ADDED_BY, oldAddedBy, addedBy));
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RModelPackage.R4E_ITEM__ADDED_BY,
+							oldAddedBy, addedBy));
+				}
 			}
 		}
 		return addedBy;
@@ -313,6 +350,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public IUser basicGetAddedBy() {
@@ -321,26 +359,73 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setAddedBy(IUser newAddedBy) {
 		IUser oldAddedBy = addedBy;
 		addedBy = newAddedBy;
-		if (eNotificationRequired())
+		if (eNotificationRequired()) {
 			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__ADDED_BY, oldAddedBy, addedBy));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public IUser getCommittedBy() {
+		if (committedBy != null && committedBy.eIsProxy()) {
+			InternalEObject oldCommittedBy = (InternalEObject) committedBy;
+			committedBy = (IUser) eResolveProxy(oldCommittedBy);
+			if (committedBy != oldCommittedBy) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RModelPackage.R4E_ITEM__COMMITTED_BY,
+							oldCommittedBy, committedBy));
+				}
+			}
+		}
+		return committedBy;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public IUser basicGetCommittedBy() {
+		return committedBy;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setCommittedBy(IUser newCommittedBy) {
+		IUser oldCommittedBy = committedBy;
+		committedBy = newCommittedBy;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__COMMITTED_BY, oldCommittedBy,
+					committedBy));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public IReview getReview() {
 		if (review != null && review.eIsProxy()) {
-			InternalEObject oldReview = (InternalEObject)review;
-			review = (IReview)eResolveProxy(oldReview);
+			InternalEObject oldReview = (InternalEObject) review;
+			review = (IReview) eResolveProxy(oldReview);
 			if (review != oldReview) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RModelPackage.R4E_ITEM__REVIEW, oldReview, review));
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, RModelPackage.R4E_ITEM__REVIEW,
+							oldReview, review));
+				}
 			}
 		}
 		return review;
@@ -348,6 +433,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public IReview basicGetReview() {
@@ -356,17 +442,52 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
-	public void setReview(IReview newReview) {
+	public NotificationChain basicSetReview(IReview newReview, NotificationChain msgs) {
 		IReview oldReview = review;
 		review = newReview;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__REVIEW, oldReview, review));
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+					RModelPackage.R4E_ITEM__REVIEW, oldReview, newReview);
+			if (msgs == null) {
+				msgs = notification;
+			} else {
+				msgs.add(notification);
+			}
+		}
+		return msgs;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setReview(IReview newReview) {
+		if (newReview != review) {
+			NotificationChain msgs = null;
+			if (review != null) {
+				msgs = ((InternalEObject) review).eInverseRemove(this, ReviewsPackage.REVIEW__ITEMS, IReview.class,
+						msgs);
+			}
+			if (newReview != null) {
+				msgs = ((InternalEObject) newReview).eInverseAdd(this, ReviewsPackage.REVIEW__ITEMS, IReview.class,
+						msgs);
+			}
+			msgs = basicSetReview(newReview, msgs);
+			if (msgs != null) {
+				msgs.dispatch();
+			}
+		} else if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__REVIEW, newReview, newReview));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getName() {
@@ -375,17 +496,20 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
-		if (eNotificationRequired())
+		if (eNotificationRequired()) {
 			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__NAME, oldName, name));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public List<ITopic> getTopics() {
@@ -397,6 +521,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getId() {
@@ -405,17 +530,43 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setId(String newId) {
 		String oldId = id;
 		id = newId;
-		if (eNotificationRequired())
+		if (eNotificationRequired()) {
 			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__ID, oldId, id));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getReference() {
+		return reference;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setReference(String newReference) {
+		String oldReference = reference;
+		reference = newReference;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__REFERENCE, oldReference,
+					reference));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getDescription() {
@@ -424,17 +575,21 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__DESCRIPTION, oldDescription, description));
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__DESCRIPTION, oldDescription,
+					description));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getAddedById() {
@@ -443,28 +598,34 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setAddedById(String newAddedById) {
 		String oldAddedById = addedById;
 		addedById = newAddedById;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__ADDED_BY_ID, oldAddedById, addedById));
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__ADDED_BY_ID, oldAddedById,
+					addedById));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public List<R4EFileContext> getFileContextList() {
 		if (fileContextList == null) {
-			fileContextList = new EObjectContainmentEList.Resolving<R4EFileContext>(R4EFileContext.class, this, RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST);
+			fileContextList = new EObjectContainmentEList.Resolving<R4EFileContext>(R4EFileContext.class, this,
+					RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST);
 		}
 		return fileContextList;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getRepositoryRef() {
@@ -473,17 +634,21 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setRepositoryRef(String newRepositoryRef) {
 		String oldRepositoryRef = repositoryRef;
 		repositoryRef = newRepositoryRef;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__REPOSITORY_REF, oldRepositoryRef, repositoryRef));
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__REPOSITORY_REF,
+					oldRepositoryRef, repositoryRef));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public List<String> getProjectURIs() {
@@ -495,6 +660,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public String getAuthorRep() {
@@ -503,17 +669,21 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setAuthorRep(String newAuthorRep) {
 		String oldAuthorRep = authorRep;
 		authorRep = newAuthorRep;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__AUTHOR_REP, oldAuthorRep, authorRep));
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__AUTHOR_REP, oldAuthorRep,
+					authorRep));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public Date getSubmitted() {
@@ -522,28 +692,34 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public void setSubmitted(Date newSubmitted) {
 		Date oldSubmitted = submitted;
 		submitted = newSubmitted;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__SUBMITTED, oldSubmitted, submitted));
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, RModelPackage.R4E_ITEM__SUBMITTED, oldSubmitted,
+					submitted));
+		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public Map<String, String> getInfoAtt() {
 		if (infoAtt == null) {
-			infoAtt = new EcoreEMap<String,String>(RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES, MapKeyToInfoAttributesImpl.class, this, RModelPackage.R4E_ITEM__INFO_ATT);
+			infoAtt = new EcoreEMap<String, String>(RModelPackage.Literals.MAP_KEY_TO_INFO_ATTRIBUTES,
+					MapKeyToInfoAttributesImpl.class, this, RModelPackage.R4E_ITEM__INFO_ATT);
 		}
 		return infoAtt.map();
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public ITopic createTopicComment(ILocation initalLocation, String commentText) {
@@ -554,252 +730,313 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getDirectTopics()).basicAdd(otherEnd, msgs);
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			return ((InternalEList<InternalEObject>) (InternalEList<?>) getDirectTopics()).basicAdd(otherEnd, msgs);
+		case RModelPackage.R4E_ITEM__REVIEW:
+			if (review != null) {
+				msgs = ((InternalEObject) review).eInverseRemove(this, ReviewsPackage.REVIEW__ITEMS, IReview.class,
+						msgs);
+			}
+			return basicSetReview((IReview) otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				return ((InternalEList<?>)getDirectTopics()).basicRemove(otherEnd, msgs);
-			case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
-				return ((InternalEList<?>)getFileContextList()).basicRemove(otherEnd, msgs);
-			case RModelPackage.R4E_ITEM__INFO_ATT:
-				return ((InternalEList<?>)((EMap.InternalMapView<String, String>)getInfoAtt()).eMap()).basicRemove(otherEnd, msgs);
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			return ((InternalEList<?>) getDirectTopics()).basicRemove(otherEnd, msgs);
+		case RModelPackage.R4E_ITEM__REVIEW:
+			return basicSetReview(null, msgs);
+		case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
+			return ((InternalEList<?>) getFileContextList()).basicRemove(otherEnd, msgs);
+		case RModelPackage.R4E_ITEM__INFO_ATT:
+			return ((InternalEList<?>) ((EMap.InternalMapView<String, String>) getInfoAtt()).eMap()).basicRemove(
+					otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__ALL_COMMENTS:
-				return getAllComments();
-			case RModelPackage.R4E_ITEM__TOPICS:
-				return getTopics();
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				return getDirectTopics();
-			case RModelPackage.R4E_ITEM__ADDED_BY:
-				if (resolve) return getAddedBy();
-				return basicGetAddedBy();
-			case RModelPackage.R4E_ITEM__REVIEW:
-				if (resolve) return getReview();
-				return basicGetReview();
-			case RModelPackage.R4E_ITEM__NAME:
-				return getName();
-			case RModelPackage.R4E_ITEM__ID:
-				return getId();
-			case RModelPackage.R4E_ITEM__DESCRIPTION:
-				return getDescription();
-			case RModelPackage.R4E_ITEM__ADDED_BY_ID:
-				return getAddedById();
-			case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
-				return getFileContextList();
-			case RModelPackage.R4E_ITEM__REPOSITORY_REF:
-				return getRepositoryRef();
-			case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
-				return getProjectURIs();
-			case RModelPackage.R4E_ITEM__AUTHOR_REP:
-				return getAuthorRep();
-			case RModelPackage.R4E_ITEM__SUBMITTED:
-				return getSubmitted();
-			case RModelPackage.R4E_ITEM__INFO_ATT:
-				if (coreType) return ((EMap.InternalMapView<String, String>)getInfoAtt()).eMap();
-				else return getInfoAtt();
+		case RModelPackage.R4E_ITEM__ALL_COMMENTS:
+			return getAllComments();
+		case RModelPackage.R4E_ITEM__TOPICS:
+			return getTopics();
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			return getDirectTopics();
+		case RModelPackage.R4E_ITEM__ADDED_BY:
+			if (resolve) {
+				return getAddedBy();
+			}
+			return basicGetAddedBy();
+		case RModelPackage.R4E_ITEM__COMMITTED_BY:
+			if (resolve) {
+				return getCommittedBy();
+			}
+			return basicGetCommittedBy();
+		case RModelPackage.R4E_ITEM__REVIEW:
+			if (resolve) {
+				return getReview();
+			}
+			return basicGetReview();
+		case RModelPackage.R4E_ITEM__NAME:
+			return getName();
+		case RModelPackage.R4E_ITEM__ID:
+			return getId();
+		case RModelPackage.R4E_ITEM__REFERENCE:
+			return getReference();
+		case RModelPackage.R4E_ITEM__DESCRIPTION:
+			return getDescription();
+		case RModelPackage.R4E_ITEM__ADDED_BY_ID:
+			return getAddedById();
+		case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
+			return getFileContextList();
+		case RModelPackage.R4E_ITEM__REPOSITORY_REF:
+			return getRepositoryRef();
+		case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
+			return getProjectURIs();
+		case RModelPackage.R4E_ITEM__AUTHOR_REP:
+			return getAuthorRep();
+		case RModelPackage.R4E_ITEM__SUBMITTED:
+			return getSubmitted();
+		case RModelPackage.R4E_ITEM__INFO_ATT:
+			if (coreType) {
+				return ((EMap.InternalMapView<String, String>) getInfoAtt()).eMap();
+			} else {
+				return getInfoAtt();
+			}
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__TOPICS:
-				getTopics().clear();
-				getTopics().addAll((Collection<? extends ITopic>)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				getDirectTopics().clear();
-				getDirectTopics().addAll((Collection<? extends ITopic>)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__ADDED_BY:
-				setAddedBy((IUser)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__REVIEW:
-				setReview((IReview)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__NAME:
-				setName((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__ID:
-				setId((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__DESCRIPTION:
-				setDescription((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__ADDED_BY_ID:
-				setAddedById((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
-				getFileContextList().clear();
-				getFileContextList().addAll((Collection<? extends R4EFileContext>)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__REPOSITORY_REF:
-				setRepositoryRef((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
-				getProjectURIs().clear();
-				getProjectURIs().addAll((Collection<? extends String>)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__AUTHOR_REP:
-				setAuthorRep((String)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__SUBMITTED:
-				setSubmitted((Date)newValue);
-				return;
-			case RModelPackage.R4E_ITEM__INFO_ATT:
-				((EStructuralFeature.Setting)((EMap.InternalMapView<String, String>)getInfoAtt()).eMap()).set(newValue);
-				return;
+		case RModelPackage.R4E_ITEM__TOPICS:
+			getTopics().clear();
+			getTopics().addAll((Collection<? extends ITopic>) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			getDirectTopics().clear();
+			getDirectTopics().addAll((Collection<? extends ITopic>) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__ADDED_BY:
+			setAddedBy((IUser) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__COMMITTED_BY:
+			setCommittedBy((IUser) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__REVIEW:
+			setReview((IReview) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__NAME:
+			setName((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__ID:
+			setId((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__REFERENCE:
+			setReference((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__DESCRIPTION:
+			setDescription((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__ADDED_BY_ID:
+			setAddedById((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
+			getFileContextList().clear();
+			getFileContextList().addAll((Collection<? extends R4EFileContext>) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__REPOSITORY_REF:
+			setRepositoryRef((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
+			getProjectURIs().clear();
+			getProjectURIs().addAll((Collection<? extends String>) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__AUTHOR_REP:
+			setAuthorRep((String) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__SUBMITTED:
+			setSubmitted((Date) newValue);
+			return;
+		case RModelPackage.R4E_ITEM__INFO_ATT:
+			((EStructuralFeature.Setting) ((EMap.InternalMapView<String, String>) getInfoAtt()).eMap()).set(newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__TOPICS:
-				getTopics().clear();
-				return;
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				getDirectTopics().clear();
-				return;
-			case RModelPackage.R4E_ITEM__ADDED_BY:
-				setAddedBy((IUser)null);
-				return;
-			case RModelPackage.R4E_ITEM__REVIEW:
-				setReview((IReview)null);
-				return;
-			case RModelPackage.R4E_ITEM__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__ID:
-				setId(ID_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__DESCRIPTION:
-				setDescription(DESCRIPTION_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__ADDED_BY_ID:
-				setAddedById(ADDED_BY_ID_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
-				getFileContextList().clear();
-				return;
-			case RModelPackage.R4E_ITEM__REPOSITORY_REF:
-				setRepositoryRef(REPOSITORY_REF_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
-				getProjectURIs().clear();
-				return;
-			case RModelPackage.R4E_ITEM__AUTHOR_REP:
-				setAuthorRep(AUTHOR_REP_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__SUBMITTED:
-				setSubmitted(SUBMITTED_EDEFAULT);
-				return;
-			case RModelPackage.R4E_ITEM__INFO_ATT:
-				getInfoAtt().clear();
-				return;
+		case RModelPackage.R4E_ITEM__TOPICS:
+			getTopics().clear();
+			return;
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			getDirectTopics().clear();
+			return;
+		case RModelPackage.R4E_ITEM__ADDED_BY:
+			setAddedBy((IUser) null);
+			return;
+		case RModelPackage.R4E_ITEM__COMMITTED_BY:
+			setCommittedBy((IUser) null);
+			return;
+		case RModelPackage.R4E_ITEM__REVIEW:
+			setReview((IReview) null);
+			return;
+		case RModelPackage.R4E_ITEM__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__REFERENCE:
+			setReference(REFERENCE_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__DESCRIPTION:
+			setDescription(DESCRIPTION_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__ADDED_BY_ID:
+			setAddedById(ADDED_BY_ID_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
+			getFileContextList().clear();
+			return;
+		case RModelPackage.R4E_ITEM__REPOSITORY_REF:
+			setRepositoryRef(REPOSITORY_REF_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
+			getProjectURIs().clear();
+			return;
+		case RModelPackage.R4E_ITEM__AUTHOR_REP:
+			setAuthorRep(AUTHOR_REP_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__SUBMITTED:
+			setSubmitted(SUBMITTED_EDEFAULT);
+			return;
+		case RModelPackage.R4E_ITEM__INFO_ATT:
+			getInfoAtt().clear();
+			return;
 		}
 		super.eUnset(featureID);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case RModelPackage.R4E_ITEM__ALL_COMMENTS:
-				return !getAllComments().isEmpty();
-			case RModelPackage.R4E_ITEM__TOPICS:
-				return topics != null && !topics.isEmpty();
-			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
-				return directTopics != null && !directTopics.isEmpty();
-			case RModelPackage.R4E_ITEM__ADDED_BY:
-				return addedBy != null;
-			case RModelPackage.R4E_ITEM__REVIEW:
-				return review != null;
-			case RModelPackage.R4E_ITEM__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case RModelPackage.R4E_ITEM__ID:
-				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-			case RModelPackage.R4E_ITEM__DESCRIPTION:
-				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
-			case RModelPackage.R4E_ITEM__ADDED_BY_ID:
-				return ADDED_BY_ID_EDEFAULT == null ? addedById != null : !ADDED_BY_ID_EDEFAULT.equals(addedById);
-			case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
-				return fileContextList != null && !fileContextList.isEmpty();
-			case RModelPackage.R4E_ITEM__REPOSITORY_REF:
-				return REPOSITORY_REF_EDEFAULT == null ? repositoryRef != null : !REPOSITORY_REF_EDEFAULT.equals(repositoryRef);
-			case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
-				return projectURIs != null && !projectURIs.isEmpty();
-			case RModelPackage.R4E_ITEM__AUTHOR_REP:
-				return AUTHOR_REP_EDEFAULT == null ? authorRep != null : !AUTHOR_REP_EDEFAULT.equals(authorRep);
-			case RModelPackage.R4E_ITEM__SUBMITTED:
-				return SUBMITTED_EDEFAULT == null ? submitted != null : !SUBMITTED_EDEFAULT.equals(submitted);
-			case RModelPackage.R4E_ITEM__INFO_ATT:
-				return infoAtt != null && !infoAtt.isEmpty();
+		case RModelPackage.R4E_ITEM__ALL_COMMENTS:
+			return !getAllComments().isEmpty();
+		case RModelPackage.R4E_ITEM__TOPICS:
+			return topics != null && !topics.isEmpty();
+		case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+			return directTopics != null && !directTopics.isEmpty();
+		case RModelPackage.R4E_ITEM__ADDED_BY:
+			return addedBy != null;
+		case RModelPackage.R4E_ITEM__COMMITTED_BY:
+			return committedBy != null;
+		case RModelPackage.R4E_ITEM__REVIEW:
+			return review != null;
+		case RModelPackage.R4E_ITEM__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case RModelPackage.R4E_ITEM__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case RModelPackage.R4E_ITEM__REFERENCE:
+			return REFERENCE_EDEFAULT == null ? reference != null : !REFERENCE_EDEFAULT.equals(reference);
+		case RModelPackage.R4E_ITEM__DESCRIPTION:
+			return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+		case RModelPackage.R4E_ITEM__ADDED_BY_ID:
+			return ADDED_BY_ID_EDEFAULT == null ? addedById != null : !ADDED_BY_ID_EDEFAULT.equals(addedById);
+		case RModelPackage.R4E_ITEM__FILE_CONTEXT_LIST:
+			return fileContextList != null && !fileContextList.isEmpty();
+		case RModelPackage.R4E_ITEM__REPOSITORY_REF:
+			return REPOSITORY_REF_EDEFAULT == null
+					? repositoryRef != null
+					: !REPOSITORY_REF_EDEFAULT.equals(repositoryRef);
+		case RModelPackage.R4E_ITEM__PROJECT_UR_IS:
+			return projectURIs != null && !projectURIs.isEmpty();
+		case RModelPackage.R4E_ITEM__AUTHOR_REP:
+			return AUTHOR_REP_EDEFAULT == null ? authorRep != null : !AUTHOR_REP_EDEFAULT.equals(authorRep);
+		case RModelPackage.R4E_ITEM__SUBMITTED:
+			return SUBMITTED_EDEFAULT == null ? submitted != null : !SUBMITTED_EDEFAULT.equals(submitted);
+		case RModelPackage.R4E_ITEM__INFO_ATT:
+			return infoAtt != null && !infoAtt.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ITopicContainer.class) {
 			switch (derivedFeatureID) {
-				case RModelPackage.R4E_ITEM__ALL_COMMENTS: return ReviewsPackage.TOPIC_CONTAINER__ALL_COMMENTS;
-				case RModelPackage.R4E_ITEM__TOPICS: return ReviewsPackage.TOPIC_CONTAINER__TOPICS;
-				case RModelPackage.R4E_ITEM__DIRECT_TOPICS: return ReviewsPackage.TOPIC_CONTAINER__DIRECT_TOPICS;
-				default: return -1;
+			case RModelPackage.R4E_ITEM__ALL_COMMENTS:
+				return ReviewsPackage.TOPIC_CONTAINER__ALL_COMMENTS;
+			case RModelPackage.R4E_ITEM__TOPICS:
+				return ReviewsPackage.TOPIC_CONTAINER__TOPICS;
+			case RModelPackage.R4E_ITEM__DIRECT_TOPICS:
+				return ReviewsPackage.TOPIC_CONTAINER__DIRECT_TOPICS;
+			default:
+				return -1;
 			}
 		}
 		if (baseClass == IReviewItem.class) {
 			switch (derivedFeatureID) {
-				case RModelPackage.R4E_ITEM__ADDED_BY: return ReviewsPackage.REVIEW_ITEM__ADDED_BY;
-				case RModelPackage.R4E_ITEM__REVIEW: return ReviewsPackage.REVIEW_ITEM__REVIEW;
-				case RModelPackage.R4E_ITEM__NAME: return ReviewsPackage.REVIEW_ITEM__NAME;
-				case RModelPackage.R4E_ITEM__ID: return ReviewsPackage.REVIEW_ITEM__ID;
-				default: return -1;
+			case RModelPackage.R4E_ITEM__ADDED_BY:
+				return ReviewsPackage.REVIEW_ITEM__ADDED_BY;
+			case RModelPackage.R4E_ITEM__COMMITTED_BY:
+				return ReviewsPackage.REVIEW_ITEM__COMMITTED_BY;
+			case RModelPackage.R4E_ITEM__REVIEW:
+				return ReviewsPackage.REVIEW_ITEM__REVIEW;
+			case RModelPackage.R4E_ITEM__NAME:
+				return ReviewsPackage.REVIEW_ITEM__NAME;
+			case RModelPackage.R4E_ITEM__ID:
+				return ReviewsPackage.REVIEW_ITEM__ID;
+			case RModelPackage.R4E_ITEM__REFERENCE:
+				return ReviewsPackage.REVIEW_ITEM__REFERENCE;
+			default:
+				return -1;
 			}
 		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
@@ -807,25 +1044,39 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ITopicContainer.class) {
 			switch (baseFeatureID) {
-				case ReviewsPackage.TOPIC_CONTAINER__ALL_COMMENTS: return RModelPackage.R4E_ITEM__ALL_COMMENTS;
-				case ReviewsPackage.TOPIC_CONTAINER__TOPICS: return RModelPackage.R4E_ITEM__TOPICS;
-				case ReviewsPackage.TOPIC_CONTAINER__DIRECT_TOPICS: return RModelPackage.R4E_ITEM__DIRECT_TOPICS;
-				default: return -1;
+			case ReviewsPackage.TOPIC_CONTAINER__ALL_COMMENTS:
+				return RModelPackage.R4E_ITEM__ALL_COMMENTS;
+			case ReviewsPackage.TOPIC_CONTAINER__TOPICS:
+				return RModelPackage.R4E_ITEM__TOPICS;
+			case ReviewsPackage.TOPIC_CONTAINER__DIRECT_TOPICS:
+				return RModelPackage.R4E_ITEM__DIRECT_TOPICS;
+			default:
+				return -1;
 			}
 		}
 		if (baseClass == IReviewItem.class) {
 			switch (baseFeatureID) {
-				case ReviewsPackage.REVIEW_ITEM__ADDED_BY: return RModelPackage.R4E_ITEM__ADDED_BY;
-				case ReviewsPackage.REVIEW_ITEM__REVIEW: return RModelPackage.R4E_ITEM__REVIEW;
-				case ReviewsPackage.REVIEW_ITEM__NAME: return RModelPackage.R4E_ITEM__NAME;
-				case ReviewsPackage.REVIEW_ITEM__ID: return RModelPackage.R4E_ITEM__ID;
-				default: return -1;
+			case ReviewsPackage.REVIEW_ITEM__ADDED_BY:
+				return RModelPackage.R4E_ITEM__ADDED_BY;
+			case ReviewsPackage.REVIEW_ITEM__COMMITTED_BY:
+				return RModelPackage.R4E_ITEM__COMMITTED_BY;
+			case ReviewsPackage.REVIEW_ITEM__REVIEW:
+				return RModelPackage.R4E_ITEM__REVIEW;
+			case ReviewsPackage.REVIEW_ITEM__NAME:
+				return RModelPackage.R4E_ITEM__NAME;
+			case ReviewsPackage.REVIEW_ITEM__ID:
+				return RModelPackage.R4E_ITEM__ID;
+			case ReviewsPackage.REVIEW_ITEM__REFERENCE:
+				return RModelPackage.R4E_ITEM__REFERENCE;
+			default:
+				return -1;
 			}
 		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
@@ -833,17 +1084,22 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public String toString() {
-		if (eIsProxy()) return super.toString();
+		if (eIsProxy()) {
+			return super.toString();
+		}
 
 		StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (name: ");
 		result.append(name);
 		result.append(", id: ");
 		result.append(id);
+		result.append(", reference: ");
+		result.append(reference);
 		result.append(", description: ");
 		result.append(description);
 		result.append(", addedById: ");
@@ -862,6 +1118,7 @@
 
 	/**
 	 * Returns empty list for now.
+	 * 
 	 * @generated NOT
 	 */
 	public List<IComment> getAllComments() {
@@ -870,6 +1127,7 @@
 
 	/**
 	 * Returns topics.
+	 * 
 	 * @generated NOT
 	 */
 	public List<ITopic> getDirectTopics() {
diff --git a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
index 9656576..f1a4430 100644
--- a/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
+++ b/org.eclipse.mylyn.reviews.r4e.core/src/org/eclipse/mylyn/reviews/r4e/core/model/impl/RModelFactoryImpl.java
@@ -86,7 +86,7 @@
 	 */
 	public static RModelFactory init() {
 		try {
-			RModelFactory theRModelFactory = (RModelFactory)EPackage.Registry.INSTANCE.getEFactory("http://org.eclipse.mylyn.reviews.r4e.core.model/"); 
+			RModelFactory theRModelFactory = (RModelFactory)EPackage.Registry.INSTANCE.getEFactory(RModelPackage.eNS_URI);
 			if (theRModelFactory != null) {
 				return theRModelFactory;
 			}