diff --git a/source/java/org/alfresco/rest/api/Favourites.java b/source/java/org/alfresco/rest/api/Favourites.java
index af358f5bdd..24694236e4 100644
--- a/source/java/org/alfresco/rest/api/Favourites.java
+++ b/source/java/org/alfresco/rest/api/Favourites.java
@@ -1,28 +1,28 @@
-/*
- * #%L
- * Alfresco Remote API
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- * #L%
- */
+/*
+ * #%L
+ * Alfresco Remote API
+ * %%
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
package org.alfresco.rest.api;
import org.alfresco.rest.api.model.Favourite;
@@ -37,6 +37,8 @@ import org.alfresco.rest.framework.resource.parameters.Parameters;
*/
public interface Favourites
{
+ String PARAM_INCLUDE_PATH = Nodes.PARAM_INCLUDE_PATH;
+
/**
* Add a favourite for user personId
*
@@ -45,6 +47,15 @@ public interface Favourites
*/
Favourite addFavourite(String personId, Favourite favourite);
+ /**
+ * Add a favourite for user personId taking parameters into account
+ *
+ * @param personId the personId for which the favourite is to be added
+ * @param favourite the favourite to add
+ * @param parameters the parameters
+ */
+ Favourite addFavourite(String personId, Favourite favourite, Parameters parameters);
+
/**
* Add a favourite for user personId
*
@@ -70,4 +81,14 @@ public interface Favourites
* @return the favourite
*/
Favourite getFavourite(String personId, String favouriteId);
+
+ /**
+ * Get a specific favourite for user personId taking parameters into account
+ *
+ * @param personId the personId for which the favourite is to be removed
+ * @param favouriteId the favourite id
+ * @param parameters the parameters
+ * @return the favourite
+ */
+ Favourite getFavourite(String personId, String favouriteId, Parameters parameters);
}
diff --git a/source/java/org/alfresco/rest/api/impl/FavouritesImpl.java b/source/java/org/alfresco/rest/api/impl/FavouritesImpl.java
index 31681d45d0..331bfc93ec 100644
--- a/source/java/org/alfresco/rest/api/impl/FavouritesImpl.java
+++ b/source/java/org/alfresco/rest/api/impl/FavouritesImpl.java
@@ -1,24 +1,24 @@
/*
- * #%L
- * Alfresco Remote API
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
+ * #%L
+ * Alfresco Remote API
+ * %%
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* Alfresco 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 Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see .
* #L%
@@ -46,6 +46,8 @@ import org.alfresco.rest.api.model.DocumentTarget;
import org.alfresco.rest.api.model.Favourite;
import org.alfresco.rest.api.model.Folder;
import org.alfresco.rest.api.model.FolderTarget;
+import org.alfresco.rest.api.model.Node;
+import org.alfresco.rest.api.model.PathInfo;
import org.alfresco.rest.api.model.Site;
import org.alfresco.rest.api.model.SiteTarget;
import org.alfresco.rest.api.model.Target;
@@ -54,6 +56,7 @@ import org.alfresco.rest.framework.core.exceptions.RelationshipResourceNotFoundE
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.framework.resource.parameters.Paging;
import org.alfresco.rest.framework.resource.parameters.Parameters;
+import org.alfresco.rest.framework.resource.parameters.Params;
import org.alfresco.rest.framework.resource.parameters.where.QueryHelper;
import org.alfresco.rest.framework.resource.parameters.where.QueryHelper.WalkerCallbackAdapter;
import org.alfresco.service.cmr.favourites.FavouritesService;
@@ -107,7 +110,7 @@ public class FavouritesImpl implements Favourites
this.siteService = siteService;
}
- private Target getTarget(PersonFavourite personFavourite)
+ private Target getTarget(PersonFavourite personFavourite, Parameters parameters)
{
Target target = null;
NodeRef nodeRef = personFavourite.getNodeRef();
@@ -115,11 +118,13 @@ public class FavouritesImpl implements Favourites
if(type.equals(Type.FILE))
{
Document document = nodes.getDocument(nodeRef);
- target = new DocumentTarget(document);
+ setPathInfo(document, parameters.getInclude());
+ target = new DocumentTarget(document);
}
else if(type.equals(Type.FOLDER))
{
Folder folder = nodes.getFolder(nodeRef);
+ setPathInfo(folder, parameters.getInclude());
target = new FolderTarget(folder);
}
else if(type.equals(Type.SITE))
@@ -136,18 +141,18 @@ public class FavouritesImpl implements Favourites
return target;
}
-
- private Favourite getFavourite(PersonFavourite personFavourite)
+
+ private Favourite getFavourite(PersonFavourite personFavourite, Parameters parameters)
{
Favourite fav = new Favourite();
fav.setTargetGuid(personFavourite.getNodeRef().getId());
fav.setCreatedAt(personFavourite.getCreatedAt());
- Target target = getTarget(personFavourite);
+ Target target = getTarget(personFavourite, parameters);
fav.setTarget(target);
return fav;
}
- private CollectionWithPagingInfo wrap(Paging paging, PagingResults personFavourites)
+ private CollectionWithPagingInfo wrap(Paging paging, PagingResults personFavourites, Parameters parameters)
{
final List page = personFavourites.getPage();
final List list = new AbstractList()
@@ -156,7 +161,7 @@ public class FavouritesImpl implements Favourites
public Favourite get(int index)
{
PersonFavourite personFavourite = page.get(index);
- Favourite fav = getFavourite(personFavourite);
+ Favourite fav = getFavourite(personFavourite, parameters);
return fav;
}
@@ -178,58 +183,65 @@ public class FavouritesImpl implements Favourites
@Override
public Favourite addFavourite(String personId, Favourite favourite)
{
- Favourite ret = null;
+ Parameters parameters = getDefaultParameters(personId, null);
+ return addFavourite(personId, favourite, parameters);
+ }
- personId = people.validatePerson(personId, true);
- Target target = favourite.getTarget();
- if(target == null)
- {
- throw new InvalidArgumentException("target is missing");
- }
- else if(target instanceof SiteTarget)
- {
- SiteTarget siteTarget = (SiteTarget)target;
- String guid = siteTarget.getSite().getGuid();
- SiteInfo siteInfo = sites.validateSite(new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, guid));
- NodeRef siteNodeRef = siteInfo.getNodeRef();
- String siteId = siteInfo.getShortName();
+ @Override
+ public Favourite addFavourite(String personId, Favourite favourite, Parameters parameters)
+ {
+ Favourite ret = null;
- try
- {
- PersonFavourite personFavourite = favouritesService.addFavourite(personId, siteNodeRef);
- ret = getFavourite(personFavourite);
- }
- catch(SiteDoesNotExistException e)
- {
- throw new RelationshipResourceNotFoundException(personId, siteId);
- }
- }
- else if(target instanceof DocumentTarget)
- {
- DocumentTarget documentTarget = (DocumentTarget)target;
- NodeRef nodeRef = documentTarget.getFile().getGuid();
- if(!nodes.nodeMatches(nodeRef, Collections.singleton(ContentModel.TYPE_CONTENT), null))
- {
- throw new RelationshipResourceNotFoundException(personId, nodeRef.getId());
- }
-
- PersonFavourite personFavourite = favouritesService.addFavourite(personId, nodeRef);
- ret = getFavourite(personFavourite);
- }
- else if(target instanceof FolderTarget)
- {
- FolderTarget folderTarget = (FolderTarget)target;
- NodeRef nodeRef = folderTarget.getFolder().getGuid();
- if(!nodes.nodeMatches(nodeRef, Collections.singleton(ContentModel.TYPE_FOLDER), Collections.singleton(SiteModel.TYPE_SITE)))
- {
- throw new RelationshipResourceNotFoundException(personId, nodeRef.getId());
- }
+ personId = people.validatePerson(personId, true);
+ Target target = favourite.getTarget();
+ if(target == null)
+ {
+ throw new InvalidArgumentException("target is missing");
+ }
+ else if(target instanceof SiteTarget)
+ {
+ SiteTarget siteTarget = (SiteTarget)target;
+ String guid = siteTarget.getSite().getGuid();
+ SiteInfo siteInfo = sites.validateSite(new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, guid));
+ NodeRef siteNodeRef = siteInfo.getNodeRef();
+ String siteId = siteInfo.getShortName();
- PersonFavourite personFavourite = favouritesService.addFavourite(personId, nodeRef);
- ret = getFavourite(personFavourite);
- }
+ try
+ {
+ PersonFavourite personFavourite = favouritesService.addFavourite(personId, siteNodeRef);
+ ret = getFavourite(personFavourite, parameters);
+ }
+ catch(SiteDoesNotExistException e)
+ {
+ throw new RelationshipResourceNotFoundException(personId, siteId);
+ }
+ }
+ else if(target instanceof DocumentTarget)
+ {
+ DocumentTarget documentTarget = (DocumentTarget)target;
+ NodeRef nodeRef = documentTarget.getFile().getGuid();
+ if(!nodes.nodeMatches(nodeRef, Collections.singleton(ContentModel.TYPE_CONTENT), null))
+ {
+ throw new RelationshipResourceNotFoundException(personId, nodeRef.getId());
+ }
- return ret;
+ PersonFavourite personFavourite = favouritesService.addFavourite(personId, nodeRef);
+ ret = getFavourite(personFavourite, parameters);
+ }
+ else if(target instanceof FolderTarget)
+ {
+ FolderTarget folderTarget = (FolderTarget)target;
+ NodeRef nodeRef = folderTarget.getFolder().getGuid();
+ if(!nodes.nodeMatches(nodeRef, Collections.singleton(ContentModel.TYPE_FOLDER), Collections.singleton(SiteModel.TYPE_SITE)))
+ {
+ throw new RelationshipResourceNotFoundException(personId, nodeRef.getId());
+ }
+
+ PersonFavourite personFavourite = favouritesService.addFavourite(personId, nodeRef);
+ ret = getFavourite(personFavourite, parameters);
+ }
+
+ return ret;
}
@Override
@@ -263,25 +275,33 @@ public class FavouritesImpl implements Favourites
throw new RelationshipResourceNotFoundException(personId, id);
}
}
-
+
+ @Override
public Favourite getFavourite(String personId, String favouriteId)
{
- NodeRef nodeRef = nodes.validateNode(favouriteId);
- personId = people.validatePerson(personId, true);
-
- PersonFavourite personFavourite = favouritesService.getFavourite(personId, nodeRef);
- if(personFavourite != null)
- {
- Favourite favourite = getFavourite(personFavourite);
- return favourite;
- }
- else
- {
- throw new RelationshipResourceNotFoundException(personId, favouriteId);
- }
+ Parameters parameters = getDefaultParameters(personId, favouriteId);
+ return getFavourite(personId, favouriteId, parameters);
}
- @Override
+ @Override
+ public Favourite getFavourite(String personId, String favouriteId, Parameters parameters)
+ {
+ NodeRef nodeRef = nodes.validateNode(favouriteId);
+ personId = people.validatePerson(personId, true);
+
+ PersonFavourite personFavourite = favouritesService.getFavourite(personId, nodeRef);
+ if(personFavourite != null)
+ {
+ Favourite favourite = getFavourite(personFavourite, parameters);
+ return favourite;
+ }
+ else
+ {
+ throw new RelationshipResourceNotFoundException(personId, favouriteId);
+ }
+ }
+
+ @Override
public CollectionWithPagingInfo getFavourites(String personId, final Parameters parameters)
{
personId = people.validatePerson(personId, true);
@@ -327,6 +347,27 @@ public class FavouritesImpl implements Favourites
final PagingResults favourites = favouritesService.getPagedFavourites(personId, filterTypes, FavouritesService.DEFAULT_SORT_PROPS,
Util.getPagingRequest(paging));
- return wrap(paging, favourites);
+ return wrap(paging, favourites, parameters);
+ }
+
+ private void setPathInfo(Node node, List includeParam)
+ {
+ if (includeParam.contains(PARAM_INCLUDE_PATH))
+ {
+ PathInfo pathInfo = nodes.lookupPathInfo(node.getNodeRef(), null);
+ node.setPath(pathInfo);
+ }
+ }
+
+ /**
+ * Returns a {@code {@link Parameters} object where almost all of its values are null.
+ * the non-null value is the {@literal include} and whatever value is passed for {@code personId} and {@code favouriteId}
+ */
+ private Parameters getDefaultParameters(String personId, String favouriteId)
+ {
+ Params.RecognizedParams recognizedParams = new Params.RecognizedParams(null, null, null, null, Collections.emptyList(), null, null, null,
+ false);
+ Parameters parameters = Params.valueOf(recognizedParams, personId, favouriteId, null);
+ return parameters;
}
}
diff --git a/source/java/org/alfresco/rest/api/people/PersonFavouritesRelation.java b/source/java/org/alfresco/rest/api/people/PersonFavouritesRelation.java
index 8fd2195548..ac47aafa5b 100644
--- a/source/java/org/alfresco/rest/api/people/PersonFavouritesRelation.java
+++ b/source/java/org/alfresco/rest/api/people/PersonFavouritesRelation.java
@@ -1,28 +1,28 @@
-/*
- * #%L
- * Alfresco Remote API
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- * #L%
- */
+/*
+ * #%L
+ * Alfresco Remote API
+ * %%
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
package org.alfresco.rest.api.people;
import java.util.ArrayList;
@@ -84,7 +84,7 @@ RelationshipResourceAction.Create, RelationshipResourceAction.Delete
List ret = new ArrayList(entity.size());
for(Favourite favourite : entity)
{
- ret.add(favourites.addFavourite(personId, favourite));
+ ret.add(favourites.addFavourite(personId, favourite, parameters));
}
return ret;
}
@@ -100,6 +100,6 @@ RelationshipResourceAction.Create, RelationshipResourceAction.Delete
public Favourite readById(String personId, String favouriteId, Parameters parameters)
throws RelationshipResourceNotFoundException
{
- return favourites.getFavourite(personId, favouriteId);
+ return favourites.getFavourite(personId, favouriteId, parameters);
}
}
diff --git a/source/test-java/org/alfresco/rest/api/tests/TestFavourites.java b/source/test-java/org/alfresco/rest/api/tests/TestFavourites.java
index bf04a44cbb..664415cdaa 100644
--- a/source/test-java/org/alfresco/rest/api/tests/TestFavourites.java
+++ b/source/test-java/org/alfresco/rest/api/tests/TestFavourites.java
@@ -1,33 +1,34 @@
-/*
- * #%L
- * Alfresco Remote API
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- * #L%
- */
+/*
+ * #%L
+ * Alfresco Remote API
+ * %%
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
package org.alfresco.rest.api.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -42,6 +43,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.tenant.TenantUtil;
@@ -59,13 +61,15 @@ import org.alfresco.rest.api.tests.client.PublicApiException;
import org.alfresco.rest.api.tests.client.RequestContext;
import org.alfresco.rest.api.tests.client.data.Comment;
import org.alfresco.rest.api.tests.client.data.Favourite;
-import org.alfresco.rest.api.tests.client.data.FavouriteDocument;
-import org.alfresco.rest.api.tests.client.data.FavouriteFolder;
+import org.alfresco.rest.api.tests.client.data.FavouriteDocument;
+import org.alfresco.rest.api.tests.client.data.FavouriteFolder;
+import org.alfresco.rest.api.tests.client.data.FavouriteNode;
import org.alfresco.rest.api.tests.client.data.FavouritesTarget;
import org.alfresco.rest.api.tests.client.data.FileFavouriteTarget;
import org.alfresco.rest.api.tests.client.data.FolderFavouriteTarget;
import org.alfresco.rest.api.tests.client.data.InvalidFavouriteTarget;
import org.alfresco.rest.api.tests.client.data.JSONAble;
+import org.alfresco.rest.api.tests.client.data.PathInfo;
import org.alfresco.rest.api.tests.client.data.Site;
import org.alfresco.rest.api.tests.client.data.SiteFavouriteTarget;
import org.alfresco.rest.api.tests.client.data.SiteImpl;
@@ -91,7 +95,7 @@ import com.google.common.collect.Lists;
* @author steveglover
* @since publicapi1.0
*/
-public class TestFavourites extends EnterpriseTestApi
+public class TestFavourites extends AbstractBaseApiTest
{
private static enum TARGET_TYPE
{
@@ -291,7 +295,7 @@ public class TestFavourites extends EnterpriseTestApi
this.siteMembershipRequestsProxy = publicApiClient.siteMembershipRequests();
}
- private void sort(List favourites, final List> sortProps)
+ private void sort(List favourites, final List> sortProps)
{
Comparator comparator = new Comparator()
{
@@ -501,7 +505,7 @@ public class TestFavourites extends EnterpriseTestApi
private Favourite makeFolderFavourite(String targetGuid) throws ParseException
{
- FavouriteFolder folder = new FavouriteFolder(targetGuid);
+ FavouriteFolder folder = new FavouriteFolder(targetGuid);
FolderFavouriteTarget target = new FolderFavouriteTarget(folder);
Date creationData = new Date();
Favourite favourite = new Favourite(creationData, null, target);
@@ -510,7 +514,7 @@ public class TestFavourites extends EnterpriseTestApi
private Favourite makeFileFavourite(String targetGuid) throws ParseException
{
- FavouriteDocument document = new FavouriteDocument(targetGuid);
+ FavouriteDocument document = new FavouriteDocument(targetGuid);
FileFavouriteTarget target = new FileFavouriteTarget(document);
Date creationData = new Date();
Favourite favourite = new Favourite(creationData, null, target);
@@ -613,7 +617,7 @@ public class TestFavourites extends EnterpriseTestApi
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
String siteGuid = person1PublicSites.get(0).getGuid();
- FavouriteDocument document = new FavouriteDocument(siteGuid);
+ FavouriteDocument document = new FavouriteDocument(siteGuid);
Favourite favourite = makeFileFavourite(document.getGuid());
Favourite ret = favouritesProxy.createFavourite(person10Id, favourite);
favourite.expected(ret);
@@ -630,7 +634,7 @@ public class TestFavourites extends EnterpriseTestApi
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
String siteGuid = person1PublicSites.get(0).getGuid();
- FavouriteFolder folder = new FavouriteFolder(siteGuid);
+ FavouriteFolder folder = new FavouriteFolder(siteGuid);
Favourite favourite = makeFolderFavourite(folder.getGuid());
Favourite ret = favouritesProxy.createFavourite(person10Id, favourite);
favourite.expected(ret);
@@ -647,7 +651,7 @@ public class TestFavourites extends EnterpriseTestApi
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
- FavouriteFolder folder = new FavouriteFolder(person1PublicDocs.get(0).getId());
+ FavouriteFolder folder = new FavouriteFolder(person1PublicDocs.get(0).getId());
Favourite favourite = makeFolderFavourite(folder.getGuid());
Favourite ret = favouritesProxy.createFavourite(person10Id, favourite);
favourite.expected(ret);
@@ -664,7 +668,7 @@ public class TestFavourites extends EnterpriseTestApi
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
- FavouriteDocument document = new FavouriteDocument(person1PublicFolders.get(0).getId());
+ FavouriteDocument document = new FavouriteDocument(person1PublicFolders.get(0).getId());
Favourite favourite = makeFileFavourite(document.getGuid());
Favourite ret = favouritesProxy.createFavourite(person10Id, favourite);
favourite.expected(ret);
@@ -684,8 +688,8 @@ public class TestFavourites extends EnterpriseTestApi
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
-
- FavouriteDocument document = new FavouriteDocument(person1PublicDocs.get(0).getId());
+
+ FavouriteDocument document = new FavouriteDocument(person1PublicDocs.get(0).getId());
Favourite favourite = makeFileFavourite(document.getGuid());
favouritesProxy.createFavourite(person11Id, favourite);
@@ -780,8 +784,8 @@ public class TestFavourites extends EnterpriseTestApi
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
-
- FavouriteDocument document = new FavouriteDocument(GUID.generate());
+
+ FavouriteDocument document = new FavouriteDocument(GUID.generate());
Favourite favourite = makeFileFavourite(document.getGuid());
favouritesProxy.createFavourite(person10Id, favourite);
@@ -800,8 +804,8 @@ public class TestFavourites extends EnterpriseTestApi
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
-
- FavouriteFolder folder = new FavouriteFolder(GUID.generate());
+
+ FavouriteFolder folder = new FavouriteFolder(GUID.generate());
Favourite favourite = makeFolderFavourite(folder.getGuid());
favouritesProxy.createFavourite(person10Id, favourite);
@@ -835,7 +839,7 @@ public class TestFavourites extends EnterpriseTestApi
}
catch(PublicApiException e)
{
- assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
+ assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
try
@@ -852,10 +856,10 @@ public class TestFavourites extends EnterpriseTestApi
}
catch(PublicApiException e)
{
- assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
+ assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
- FavouriteDocument document = new FavouriteDocument(person1PublicDocs.get(0).getId());
+ FavouriteDocument document = new FavouriteDocument(person1PublicDocs.get(0).getId());
try
{
@@ -889,8 +893,8 @@ public class TestFavourites extends EnterpriseTestApi
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
- FavouriteFolder folder = new FavouriteFolder(person1PublicFolders.get(0).getId());
-
+ FavouriteFolder folder = new FavouriteFolder(person1PublicFolders.get(0).getId());
+
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person10Id));
@@ -958,11 +962,11 @@ public class TestFavourites extends EnterpriseTestApi
log("cloud-2467");
Favourite siteFavourite1 = makeSiteFavourite(person1PublicSites.get(0));
-
- FavouriteDocument document = repoService.getDocument(network1.getId(), person1PublicDocs.get(0));
+
+ FavouriteDocument document = repoService.getDocument(network1.getId(), person1PublicDocs.get(0));
Favourite fileFavourite1 = makeFileFavourite(document.getGuid());
-
- FavouriteFolder folder = repoService.getFolder(network1.getId(), person1PublicFolders.get(0));
+
+ FavouriteFolder folder = repoService.getFolder(network1.getId(), person1PublicFolders.get(0));
Favourite folderFavourite1 = makeFolderFavourite(folder.getGuid());
Favourite siteFavourite2 = makeSiteFavourite(person1PublicSites.get(1));
@@ -1091,7 +1095,7 @@ public class TestFavourites extends EnterpriseTestApi
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21Id));
- FavouriteDocument document1 = new FavouriteDocument(person1PrivateDocs.get(0).getId());
+ FavouriteDocument document1 = new FavouriteDocument(person1PrivateDocs.get(0).getId());
Favourite favourite = makeFileFavourite(document1.getGuid());
try
{
@@ -1123,7 +1127,7 @@ public class TestFavourites extends EnterpriseTestApi
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21Id));
- FavouriteFolder folder1 = new FavouriteFolder(person1PrivateFolders.get(0).getId());
+ FavouriteFolder folder1 = new FavouriteFolder(person1PrivateFolders.get(0).getId());
Favourite favourite = makeFolderFavourite(folder1.getGuid());
try
{
@@ -1712,4 +1716,187 @@ public class TestFavourites extends EnterpriseTestApi
}
}
}
+
+ /**
+ * Tests get favourites with 'include' parameter.
+ * GET:
+ * {@literal :/alfresco/api//public/alfresco/versions/1/people//favorites?include=path}
+ */
+ @Test
+ public void testGetFavouritesWithPath() throws Exception
+ {
+ // As person12 user
+ setRequestContext(network1.getId(), person12Id, "password");
+
+ final NodeRef folderNodeRef = person1PublicFolders.get(0); // person1's folder (Test Folder1)
+ final NodeRef nodeRef = person1PublicDocs.get(1); // a file (Test Doc2) in the folder (Test Folder1)
+ final TestSite publicSite = person1PublicSites.get(0); // person1's public site
+
+ // Favourite the doc (Test Doc2)
+ Favourite fileFavourite = makeFileFavourite(nodeRef.getId());
+ favouritesProxy.createFavourite(person12Id, fileFavourite);
+
+ //Favourite the folder (Test Folder1)
+ Favourite folderFavourite = makeFolderFavourite(folderNodeRef.getId());
+ favouritesProxy.createFavourite(person12Id, folderFavourite);
+
+ // Favourite the public site
+ final Favourite siteFavourite = makeSiteFavourite(publicSite);
+ favouritesProxy.createFavourite(person12Id, siteFavourite);
+
+ Paging paging = getPaging(0, 100);
+ Map otherParams = Collections.singletonMap("include", "path");
+
+ ListResponse resp = favouritesProxy.getFavourites(person12Id, createParams(paging, otherParams));
+ List actualFavouritesList = resp.getList();
+ assertEquals("Incorrect number of entries returned", 3, actualFavouritesList.size());
+
+ actualFavouritesList.forEach(fav ->
+ {
+ FavouriteNode node;
+ switch (fav.getType())
+ {
+ case FILE:
+ {
+ node = ((FileFavouriteTarget) fav.getTarget()).getDocument();
+ assertNotNull("node is null.", node);
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary/Test Folder1", true);
+ break;
+ }
+ case FOLDER:
+ {
+ node = ((FolderFavouriteTarget) fav.getTarget()).getFolder();
+ assertNotNull("node is null.", node);
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary", true);
+ break;
+ }
+ case SITE:
+ {
+ JSONObject siteJsonObject = fav.getTarget().toJSON();
+ assertNotNull("There should be a site JSON object.", siteJsonObject);
+ assertNull("Path info should not be returned for sites.", siteJsonObject.get("path"));
+ break;
+ }
+ }
+ });
+
+ // Get favourites without 'include' option
+ resp = favouritesProxy.getFavourites(person12Id, createParams(paging, null));
+ actualFavouritesList = resp.getList();
+ assertEquals("Incorrect number of entries returned", 3, actualFavouritesList.size());
+
+ actualFavouritesList.forEach(fav ->
+ {
+ FavouriteNode node;
+ switch (fav.getType())
+ {
+ case FILE:
+ {
+ node = ((FileFavouriteTarget) fav.getTarget()).getDocument();
+ assertNotNull("node is null.", node);
+ assertNull("Path info should not be returned by default", node.getPath());
+ break;
+ }
+ case FOLDER:
+ {
+ node = ((FolderFavouriteTarget) fav.getTarget()).getFolder();
+ assertNotNull("node is null.", node);
+ assertNull("Path info should not be returned by default", node.getPath());
+ break;
+ }
+ case SITE:
+ {
+ JSONObject siteJsonObject = fav.getTarget().toJSON();
+ assertNotNull("There should be a site JSON object.", siteJsonObject);
+ assertNull("Path info should not be returned for sites.", siteJsonObject.get("path"));
+ break;
+ }
+ }
+ });
+ }
+
+ /**
+ * Tests create and get favourite with 'include' parameter.
+ *
+ * POST:
+ * {@literal :/alfresco/api//public/alfresco/versions/1/people//favorites?include=path}
+ *
+ * GET:
+ * {@literal :/alfresco/api//public/alfresco/versions/1/people//favorites/?include=path}
+ */
+ @Test
+ public void testCreateAndGetFavouriteWithPath() throws Exception
+ {
+ Map includePath = Collections.singletonMap("include", "path");
+
+ // As person12 user
+ setRequestContext(network1.getId(), person12Id, "password");
+
+ final NodeRef folderNodeRef = person1PublicFolders.get(0); // person1's folder (Test Folder1)
+ final NodeRef nodeRef1= person1PublicDocs.get(0); // a file in the site's document library (Test Doc1)
+ final NodeRef nodeRef2 = person1PublicDocs.get(1); // a file (Test Doc2) in the folder (Test Folder1)
+ final TestSite publicSite = person1PublicSites.get(0); // person1's public site
+
+ // Favourite the doc (Test Doc1)
+ Favourite file1Favourite = makeFileFavourite(nodeRef1.getId());
+ file1Favourite = favouritesProxy.createFavourite(person12Id, file1Favourite, includePath);
+ FavouriteNode node = ((FileFavouriteTarget) file1Favourite.getTarget()).getDocument();
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary", true);
+
+
+ // Favourite the doc (Test Doc2)
+ Favourite file2Favourite = makeFileFavourite(nodeRef2.getId());
+ file2Favourite = favouritesProxy.createFavourite(person12Id, file2Favourite);
+ node = ((FileFavouriteTarget) file2Favourite.getTarget()).getDocument();
+ assertNull("Path info should not be returned by default", node.getPath());
+
+ //Favourite the folder (Test Folder1)
+ Favourite folderFavourite = makeFolderFavourite(folderNodeRef.getId());
+ folderFavourite = favouritesProxy.createFavourite(person12Id, folderFavourite, includePath);
+ node = ((FolderFavouriteTarget) folderFavourite.getTarget()).getFolder();
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary", true);
+
+ // Favourite the public site
+ Favourite siteFavourite = makeSiteFavourite(publicSite);
+ siteFavourite = favouritesProxy.createFavourite(person12Id, siteFavourite);
+ JSONObject siteJsonObject = siteFavourite.getTarget().toJSON();
+ assertNotNull("There should be a site JSON object.", siteJsonObject);
+ assertNull("Path info should not be returned for sites.", siteJsonObject.get("path"));
+
+ // Get single favourite (Test Doc2) with include path
+ Favourite favouriteResp = favouritesProxy.getFavourite(person12Id, file2Favourite.getTargetGuid(), includePath);
+ node = ((FileFavouriteTarget) favouriteResp.getTarget()).getDocument();
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary/Test Folder1", true);
+
+ favouriteResp = favouritesProxy.getFavourite(person12Id, folderFavourite.getTargetGuid(), includePath);
+ node = ((FolderFavouriteTarget) favouriteResp.getTarget()).getFolder();
+ assertPathInfo(node.getPath(), "/Company Home/Sites/" + publicSite.getSiteId() + "/documentLibrary", true);
+
+ favouriteResp = favouritesProxy.getFavourite(person12Id, siteFavourite.getTargetGuid(), includePath);
+ siteJsonObject = favouriteResp.getTarget().toJSON();
+ assertNotNull("There should be a site JSON object.", siteJsonObject);
+ assertNull("Path info should not be returned for sites.", siteJsonObject.get("path"));
+ }
+
+ private void assertPathInfo(PathInfo expectedPathInfo, String expectedPathName, boolean expectedIsComplete)
+ {
+ assertNotNull("Path info was requested.", expectedPathInfo);
+ assertEquals("IsComplete should have been true.", expectedIsComplete, expectedPathInfo.getIsComplete());
+ assertEquals("Incorrect path name.", expectedPathName, expectedPathInfo.getName());
+
+ // substring(1) -> so we can ignore the first '/'
+ List expectedPathElements = Arrays.asList(expectedPathName.substring(1).split("/"));
+ assertEquals("Incorrect number of path elements.", expectedPathElements.size(), expectedPathInfo.getElements().size());
+
+ AtomicInteger i = new AtomicInteger(0);
+ expectedPathElements.forEach(path -> assertEquals("Incorrect path element.", path,
+ expectedPathInfo.getElements().get(i.getAndIncrement()).getName()));
+ }
+
+ @Override
+ public String getScope()
+ {
+ return "public";
+ }
+
}
\ No newline at end of file
diff --git a/source/test-java/org/alfresco/rest/api/tests/client/PublicApiClient.java b/source/test-java/org/alfresco/rest/api/tests/client/PublicApiClient.java
index 319882c61e..8ad9af89d8 100644
--- a/source/test-java/org/alfresco/rest/api/tests/client/PublicApiClient.java
+++ b/source/test-java/org/alfresco/rest/api/tests/client/PublicApiClient.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -1086,6 +1086,12 @@ public class PublicApiClient
return Favourite.parseFavourite((JSONObject)response.getJsonResponse().get("entry"));
}
+ public Favourite getFavourite(String personId, String favouriteId, Map params) throws PublicApiException, ParseException
+ {
+ HttpResponse response = getSingle("people", personId, "favorites", favouriteId, params, "Failed to get favourite " + favouriteId, 200);
+ return Favourite.parseFavourite((JSONObject) response.getJsonResponse().get("entry"));
+ }
+
public Favourite createFavourite(String personId, Favourite favourite) throws PublicApiException, ParseException
{
HttpResponse response = create("people", personId, "favorites", null, favourite.toJSON().toString(), "Failed to create favourite");
@@ -1093,6 +1099,13 @@ public class PublicApiClient
return ret;
}
+ public Favourite createFavourite(String personId, Favourite favourite, Map params) throws PublicApiException, ParseException
+ {
+ HttpResponse response = create("people", personId, "favorites", null, favourite.toJSON().toString(), "Failed to create favourite", 201, params);
+ Favourite ret = Favourite.parseFavourite((JSONObject)response.getJsonResponse().get("entry"));
+ return ret;
+ }
+
public void removeFavourite(String personId, String favouriteId) throws PublicApiException
{
remove("people", personId, "favorites", favouriteId, "Failed to remove favourite");
diff --git a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteDocument.java b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteDocument.java
index 538f8d8eb1..72c935c84f 100644
--- a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteDocument.java
+++ b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteDocument.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -170,17 +170,29 @@ public class FavouriteDocument extends FavouriteNode implements ExpectedComparis
document.setMimeType(mimeType);
document.setSizeInBytes(BigInteger.valueOf(sizeInBytes));
document.setVersionLabel(versionLabel);
- return document;
- }
+ // set path if available
+ document.parseAndSetPath(jsonObject);
+ return document;
+ }
- @Override
- public String toString()
- {
- return "FavouriteDocument [mimeType=" + mimeType + ", sizeInBytes="
- + sizeInBytes + ", versionLabel=" + versionLabel + ", nodeId="
- + nodeId + ", guid=" + guid + ", name=" + name + ", title="
- + title + ", description=" + description + ", createdAt="
- + createdAt + ", modifiedAt=" + modifiedAt + ", createdBy="
- + createdBy + ", modifiedBy=" + modifiedBy + "]";
- }
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder(250);
+ sb.append("FavouriteDocument [nodeId=").append(nodeId)
+ .append(", guid=").append(guid)
+ .append(", name=").append(name)
+ .append(", title=").append(title)
+ .append(", description=").append(description)
+ .append(", createdAt=").append(createdAt)
+ .append(", modifiedAt=").append(modifiedAt)
+ .append(", createdBy=").append(createdBy)
+ .append(", modifiedBy=").append(modifiedBy)
+ .append(", mimeType=").append(mimeType)
+ .append(", sizeInBytes=").append(sizeInBytes)
+ .append(", versionLabel=").append(versionLabel)
+ .append(", path=").append(path)
+ .append(']');
+ return sb.toString();
+ }
}
diff --git a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteFolder.java b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteFolder.java
index 0ac7f8bff5..2d2fdf5170 100644
--- a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteFolder.java
+++ b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteFolder.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -110,8 +110,10 @@ public class FavouriteFolder extends FavouriteNode implements ExpectedComparison
folder.setModifiedAt(modifiedAt);
folder.setCreatedAt(createdAt);
folder.setDescription(description);
- return folder;
- }
+ // set path if available
+ folder.parseAndSetPath(jsonObject);
+ return folder;
+ }
@Override
public void expected(Object o)
@@ -119,13 +121,21 @@ public class FavouriteFolder extends FavouriteNode implements ExpectedComparison
super.expected(o);
}
- @Override
- public String toString()
- {
- return "Folder [nodeId=" + nodeId + ", guid=" + guid + ", name=" + name
- + ", title=" + title + ", description=" + description
- + ", createdAt=" + createdAt + ", modifiedAt=" + modifiedAt
- + ", createdBy=" + createdBy + ", modifiedBy=" + modifiedBy
- + "]";
- }
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder(250);
+ sb.append("FavouriteFolder [nodeId=").append(nodeId)
+ .append(", guid=").append(guid)
+ .append(", name=").append(name)
+ .append(", title=").append(title)
+ .append(", description=").append(description)
+ .append(", createdAt=").append(createdAt)
+ .append(", modifiedAt=").append(modifiedAt)
+ .append(", createdBy=").append(createdBy)
+ .append(", modifiedBy=").append(modifiedBy)
+ .append(", path=").append(path)
+ .append(']');
+ return sb.toString();
+ }
}
diff --git a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteNode.java b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteNode.java
index 3bf735ecfe..aa7b73744a 100644
--- a/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteNode.java
+++ b/source/test-java/org/alfresco/rest/api/tests/client/data/FavouriteNode.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Remote API
* %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
+ * Copyright (C) 2005 - 2017 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -29,8 +29,10 @@ package org.alfresco.rest.api.tests.client.data;
import static org.junit.Assert.assertTrue;
import java.io.Serializable;
+import java.text.ParseException;
import java.util.Date;
+import org.alfresco.rest.api.tests.util.RestApiUtil;
import org.json.simple.JSONObject;
/**
@@ -52,6 +54,7 @@ public class FavouriteNode implements Serializable, ExpectedComparison
protected Date modifiedAt;
protected String createdBy;
protected String modifiedBy;
+ protected PathInfo path;
public FavouriteNode()
{
@@ -173,7 +176,33 @@ public class FavouriteNode implements Serializable, ExpectedComparison
this.nodeId = nodeId;
}
- @Override
+ public PathInfo getPath()
+ {
+ return path;
+ }
+
+ public void setPath(PathInfo pathInfo)
+ {
+ this.path = pathInfo;
+ }
+
+ protected void parseAndSetPath(JSONObject jsonObject) throws ParseException
+ {
+ if (jsonObject.get("path") != null)
+ {
+ try
+ {
+ PathInfo pathInfo = RestApiUtil.parsePojo("path", jsonObject, PathInfo.class);
+ this.setPath(pathInfo);
+ }
+ catch (Exception e)
+ {
+ throw new ParseException(e.getMessage(), -1);
+ }
+ }
+ }
+
+ @Override
public int hashCode()
{
final int prime = 31;
@@ -229,15 +258,27 @@ public class FavouriteNode implements Serializable, ExpectedComparison
}
AssertUtil.assertEquals("createdBy", createdBy, other.getCreatedBy());
AssertUtil.assertEquals("modifiedBy", modifiedBy, other.getModifiedBy());
+ if(path != null)
+ {
+ path.expected(other.path);
+ }
}
- @Override
- public String toString()
- {
- return "Node [nodeId=" + nodeId + ", guid=" + guid + ", name=" + name
- + ", title=" + title + ", description=" + description
- + ", createdAt=" + createdAt + ", modifiedAt=" + modifiedAt
- + ", createdBy=" + createdBy + ", modifiedBy=" + modifiedBy
- + "]";
- }
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder(250);
+ sb.append("FavouriteNode [nodeId=").append(nodeId)
+ .append(", guid=").append(guid)
+ .append(", name=").append(name)
+ .append(", title=").append(title)
+ .append(", description=").append(description)
+ .append(", createdAt=").append(createdAt)
+ .append(", modifiedAt=").append(modifiedAt)
+ .append(", createdBy=").append(createdBy)
+ .append(", modifiedBy=").append(modifiedBy)
+ .append(", path=").append(path)
+ .append(']');
+ return sb.toString();
+ }
}