Changeset 5186
- Timestamp:
- 05/12/14 14:37:00 (10 years ago)
- Location:
- DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/DBDispatcher.java
r5088 r5186 257 257 int updatePublicAttribute(Number annotationID, Access publicAttribute); 258 258 259 intupdatePrincipal(Principal principal) throws NotInDataBaseException;259 Number updatePrincipal(Principal principal) throws NotInDataBaseException; 260 260 261 261 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/PrincipalDao.java
r4995 r5186 55 55 public boolean updateAccount(UUID externalID, String account) throws NotInDataBaseException; 56 56 57 public intupdatePrincipal(Principal principal) throws NotInDataBaseException;57 public Number updatePrincipal(Principal principal) throws NotInDataBaseException; 58 58 59 59 public Number addPrincipal(Principal principal, String remoteID) throws NotInDataBaseException; -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DBDispatcherImlp.java
r5139 r5186 414 414 Access publicAttribute = annotationDao.getPublicAttribute(annotationID); 415 415 Access access = annotationDao.getAccess(annotationID, principalID); 416 if (publicAttribute.equals(Access.NONE)) { 417 return access; 416 if (access != null) { 417 if (publicAttribute.equals(Access.NONE)) { 418 return access; 419 } else { 420 if (publicAttribute.equals(Access.READ)) { 421 if (access.equals(Access.NONE)) { 422 return Access.READ; 423 } else { 424 return access; 425 } 426 } else { 427 return Access.WRITE; 428 } 429 } 418 430 } else { 419 if (publicAttribute.equals(Access.READ)) { 420 if (access.equals(Access.NONE)) { 421 return Access.READ; 422 } else { 423 return access; 424 } 425 } else { 426 return Access.WRITE; 427 } 431 return publicAttribute; 428 432 } 429 433 } … … 602 606 public int updateAnnotationPrincipalAccess(Number annotationID, Number principalID, Access access) { 603 607 int result; 604 Access currentAccess = annotationDao.getAccess(annotationID, principalID); 605 if (currentAccess != Access.NONE) { 606 result = annotationDao.updateAnnotationPrincipalAccess(annotationID, principalID, access); 608 if (access != null) { 609 Access currentAccess = annotationDao.getAccess(annotationID, principalID); 610 if (currentAccess != null) { 611 result = annotationDao.updateAnnotationPrincipalAccess(annotationID, principalID, access); 612 } else { 613 result = annotationDao.addAnnotationPrincipalAccess(annotationID, principalID, access); 614 } 607 615 } else { 608 if (!access.equals(Access.NONE)) { 609 result = annotationDao.deleteAnnotationPrincipalAccess(annotationID, principalID); 610 result = annotationDao.addAnnotationPrincipalAccess(annotationID, principalID, access); 611 } else { 612 result = 0; 613 } 616 result = annotationDao.deleteAnnotationPrincipalAccess(annotationID, principalID); 614 617 } 615 618 return result; … … 630 633 Access access = permission.getLevel(); 631 634 Access currentAccess = annotationDao.getAccess(annotationID, principalID); 632 if (!access.equals(currentAccess)) { 633 // then we need to update or psossibly add for none 634 if (!currentAccess.equals(Access.NONE)) { 635 if (currentAccess != null) { 636 if (!access.equals(currentAccess)) { 635 637 result = result + annotationDao.updateAnnotationPrincipalAccess(annotationID, principalID, access); 636 638 } else { 637 annotationDao.deleteAnnotationPrincipalAccess(annotationID, principalID); 638 result = result + annotationDao.addAnnotationPrincipalAccess(annotationID, principalID, access); 639 result = 0; 639 640 } 640 } 641 } else { 642 result = result + annotationDao.addAnnotationPrincipalAccess(annotationID, principalID, access); 643 } 644 641 645 } 642 646 return result; … … 644 648 // TODO: optimize (not chnanged targets should not be deleted) 645 649 // TODO: unit test 646 647 650 @Override 648 651 public int updateAnnotation(Annotation annotation) throws NotInDataBaseException { … … 670 673 671 674 @Override 672 public intupdatePrincipal(Principal principal) throws NotInDataBaseException {675 public Number updatePrincipal(Principal principal) throws NotInDataBaseException { 673 676 return principalDao.updatePrincipal(principal); 674 677 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDao.java
r5138 r5186 88 88 List<Access> result = this.loggedQuery(sql.toString(), accessRowMapper, params); 89 89 if (result.isEmpty()) { 90 return Access.NONE;90 return null; 91 91 } else { 92 92 return result.get(0); -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcPrincipalDao.java
r5086 r5186 243 243 244 244 @Override 245 public intupdatePrincipal(Principal principal) throws NotInDataBaseException {245 public Number updatePrincipal(Principal principal) throws NotInDataBaseException { 246 246 Number principalID = this.getInternalIDFromURI(principal.getURI()); 247 247 StringBuilder sql = new StringBuilder("UPDATE "); … … 250 250 append(principal_name).append("= '").append(principal.getDisplayName()).append("' "). 251 251 append(" WHERE ").append(principal_id).append("= ?"); 252 return this.loggedUpdate(sql.toString(), principalID); 252 int updatedRows = this.loggedUpdate(sql.toString(), principalID); 253 return principalID; 253 254 254 255 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/CachedRepresentationResource.java
r5088 r5186 180 180 @Override 181 181 public Integer apply(Map params) throws NotInDataBaseException { 182 CachedRepresentationInfo cachedInfo = (CachedRepresentationInfo) params.get(" cachedInfo");182 CachedRepresentationInfo cachedInfo = (CachedRepresentationInfo) params.get("info"); 183 183 return dbDispatcher.updateCachedMetada(cachedInfo); 184 184 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/PrincipalResource.java
r5138 r5186 293 293 if (dbDispatcher.getTypeOfPrincipalAccount(remotePrincipalID).equals(admin)) { 294 294 Map params = new HashMap<String, Object>(); 295 params.put(" principal", principal);295 params.put("newPrincipal", principal); 296 296 Principal result = (Principal) (new RequestWrappers(this)).wrapRequestResource(params, new UpdatePrincipal()); 297 297 return (result != null) ? (new ObjectFactory().createPrincipal(result)) : (new ObjectFactory().createPrincipal(new Principal())); … … 326 326 public Principal apply(Map params) throws NotInDataBaseException { 327 327 Principal principal = (Principal) params.get("newPrincipal"); 328 Number principalID = (Number) params.get("principalID"); 329 String uri = dbDispatcher.getResourceURI(principalID, Resource.PRINCIPAL); 330 principal.setURI(uri); 331 Number principalIDupd = dbDispatcher.updatePrincipal(principal); 332 return dbDispatcher.getPrincipal(principalID); 328 Number principalIDupd = dbDispatcher.updatePrincipal(principal); 329 return dbDispatcher.getPrincipal(principalIDupd); 333 330 } 334 331 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/DBDispatcherTest.java
r5138 r5186 1776 1776 1777 1777 oneOf(annotationDao).getAccess(1, 4); 1778 will(returnValue(Access.NONE)); 1779 1780 oneOf(annotationDao).deleteAnnotationPrincipalAccess(1, 4); 1781 will(returnValue(0)); 1782 1778 will(returnValue(null)); 1779 1783 1780 oneOf(annotationDao).addAnnotationPrincipalAccess(1, 4, Access.WRITE); 1784 1781 will(returnValue(1)); … … 1795 1792 System.out.println("test updatePermissions"); 1796 1793 1797 final Annotation annotation = (new TestInstances(TestBackendConstants._TEST_SERVLET_URI)).getAnnotationOne(); 1798 final PermissionList permissions = annotation.getPermissions(); 1799 1794 final PermissionList permissions = new PermissionList(); 1795 1796 Permission permission2 = new Permission(); 1797 permission2.setPrincipalRef("ref2"); 1798 permission2.setLevel(Access.WRITE); 1799 1800 Permission permission3 = new Permission(); 1801 permission3.setPrincipalRef("ref3"); 1802 permission3.setLevel(Access.READ); 1803 1804 Permission permission4 = new Permission(); 1805 permission4.setLevel(Access.READ); 1806 permission4.setPrincipalRef("ref4"); 1807 1808 permissions.getPermission().add(permission2); 1809 permissions.getPermission().add(permission3); 1810 permissions.getPermission().add(permission4); 1811 permissions.setPublic(Access.WRITE); 1800 1812 1801 1813 mockeryDao.checking(new Expectations() { … … 1816 1828 oneOf(annotationDao).getAccess(1, 3); 1817 1829 will(returnValue(Access.WRITE)); 1830 1831 oneOf(principalDao).getInternalIDFromURI(permissions.getPermission().get(2).getPrincipalRef()); 1832 will(returnValue(4)); 1833 1834 oneOf(annotationDao).getAccess(1, 4); 1835 will(returnValue(null)); 1818 1836 1819 1837 oneOf(annotationDao).updateAnnotationPrincipalAccess(1, 3, Access.READ); 1820 1838 will(returnValue(1)); 1821 1822 } 1823 }); 1824 1825 assertEquals(1, dbDispatcher.updatePermissions(1, permissions)); 1826 1827 } 1828 1829 @Test 1830 public void testUpdatePermissions2() throws NotInDataBaseException { 1831 System.out.println("test updatePermissions 2"); 1832 1833 final PermissionList permissions = new PermissionList(); 1834 permissions.setPublic(Access.READ); 1835 Permission permission = new Permission(); 1836 permissions.getPermission().add(permission); 1837 permission.setLevel(Access.WRITE); 1838 permission.setPrincipalRef(TestBackendConstants._TEST_SERVLET_URI_principals + "00000000-0000-0000-0000-000000000220"); 1839 1840 mockeryDao.checking(new Expectations() { 1841 { 1842 ///// 1843 oneOf(annotationDao).updatePublicAttribute(1, permissions.getPublic()); 1844 will(returnValue(1)); 1845 1846 oneOf(principalDao).getInternalIDFromURI(permissions.getPermission().get(0).getPrincipalRef()); 1847 will(returnValue(10)); 1848 1849 oneOf(annotationDao).getAccess(1, 10); 1850 will(returnValue(Access.NONE)); 1851 1852 oneOf(annotationDao).deleteAnnotationPrincipalAccess(1, 10); 1853 will(returnValue(0)); 1854 1855 oneOf(annotationDao).addAnnotationPrincipalAccess(1, 10, permissions.getPermission().get(0).getLevel()); 1856 will(returnValue(1)); 1857 1858 } 1859 }); 1860 1861 assertEquals(1, dbDispatcher.updatePermissions(1, permissions)); 1862 1863 } 1839 1840 oneOf(annotationDao).addAnnotationPrincipalAccess(1, 4, Access.READ); 1841 will(returnValue(1)); 1842 1843 } 1844 }); 1845 1846 assertEquals(2, dbDispatcher.updatePermissions(1, permissions)); 1847 1848 } 1849 1850 1864 1851 1865 1852 @Test -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDaoTest.java
r5174 r5186 364 364 assertEquals(Access.READ, jdbcAnnotationDao.getAccess(1, 3)); 365 365 assertEquals(Access.WRITE, jdbcAnnotationDao.getAccess(2, 3)); 366 assertEquals( Access.NONE, jdbcAnnotationDao.getAccess(3, 3));366 assertEquals(null, jdbcAnnotationDao.getAccess(3, 3)); 367 367 } 368 368
Note: See TracChangeset
for help on using the changeset viewer.