/** * {@inheritDoc} * * @see org.prowim.dms.alfresco.ContentService#deleteContent(java.lang.String) */ @Interceptors(AuthenticationInterceptor.class) public void deleteContent(String uuid) throws DMSException { Validate.notNull(uuid); this.getContentService(); final Reference reference = new Reference(DMSStoreRegistry.STORE_REF, uuid, null); final Predicate predicate = new Predicate(new Reference[] {reference}, null, null); final CMLDelete delete = new CMLDelete(predicate); final CML cml = new CML(); cml.setDelete(new CMLDelete[] {delete}); try { WebServiceFactory.getRepositoryService().update(cml); } catch (RepositoryFault e) { String message = "Could not delete content: "; LOG.error(message, e); DMSFault dmsFault = new DMSFault(); dmsFault.setMessage(message); throw new DMSException(message, dmsFault, e.getCause()); } catch (RemoteException e) { String message = "Could not create connection: "; LOG.error(message, e); DMSFault dmsFault = new DMSFault(); dmsFault.setMessage(message); throw new DMSException(message, dmsFault, e.getCause()); } }
/** * {@inheritDoc} * * @see org.prowim.dms.alfresco.ContentService#createNewVersion(java.lang.String, * java.lang.String, java.lang.String) */ @Interceptors(AuthenticationInterceptor.class) public VersionResult createNewVersion(String name, String username, String uuid) throws OntologyErrorException, DMSException { // get the user String userID = organizationEntity.getUser(username).getID(); AuthoringServiceSoapBindingStub authoringService = WebServiceFactory.getAuthoringService(); final Reference reference = new Reference(DMSStoreRegistry.STORE_REF, uuid, null); final Predicate predicate = new Predicate(new Reference[] {reference}, null, null); NamedValue[] comments = new NamedValue[] { Utils.createNamedValue("description", "User description"), Utils.createNamedValue("versionType", "MINOR"), Utils.createNamedValue(DMSConstants.Content.AUTHOR_PROP, userID) }; VersionResult vr; try { vr = authoringService.createVersion(predicate, comments, true); String descriptionNew = "This is a sample description for " + name; Predicate pred = new Predicate(vr.getNodes(), null, null); NamedValue[] titledProps = new NamedValue[2]; titledProps[0] = Utils.createNamedValue(Constants.PROP_NAME, name); titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, descriptionNew); CMLUpdate update = new CMLUpdate(titledProps, pred, null); CML cml = new CML(); cml.setUpdate(new CMLUpdate[] {update}); WebServiceFactory.getRepositoryService().update(cml); return vr; } catch (AuthoringFault e) { LOG.error( "Could not create new version in DMS for user " + username + " and UUID " + uuid, e); } catch (RemoteException e) { LOG.error( "Could not create new version in DMS for user " + username + " and UUID " + uuid, e); } return null; }
/** * Helper method to make apply the versionable aspect to a given reference * * <p> * * @param reference the reference * @throws Exception can occurs. */ private void makeVersionable(Reference reference) throws RemoteException { Validate.notNull(reference); /** 1. the add aspect query object. */ NamedValue[] comments = new NamedValue[] { Utils.createNamedValue("versionType", "MINOR"), Utils.createNamedValue("autoVersion", "false") }; // MAJOR Predicate predicate = new Predicate(new Reference[] {reference}, null, null); CMLAddAspect addAspect = new CMLAddAspect( Constants.ASPECT_VERSIONABLE, comments, predicate, null); // ASPECT_VERSIONABLE /** 2. Create the content management language query. */ CML cml = new CML(); cml.setAddAspect(new CMLAddAspect[] {addAspect}); /** 3. Execute the query, which will add the versionable aspect to the node is question. */ this.getRepositoryService().update(cml); }