Search in sources :

Example 11 with NamedValue

use of org.alfresco.webservice.types.NamedValue in project trainning by fernandotomasio.

the class AlfrescoContentDAO method createDocument.

@Override
public String createDocument(DocumentDTO document, String path) {
    try {
        AuthenticationUtils.startSession(USERNAME, PASSWORD);
        ParentReference parentReference = new ParentReference(STORE, null, encodePath(path), Constants.ASSOC_CONTAINS, null);
        parentReference.setChildName("{" + Constants.NAMESPACE_CONTENT_MODEL + "}" + document.getName());
        // Define the content format for the content we are adding
        ContentFormat contentFormat = new ContentFormat(document.getMimeType(), document.getCharset());
        // Construct CML statement to create content node
        // Note: Assign "1" as a local id, so we can refer to it in
        // subsequent
        // CML statements within the same CML block
        NamedValue[] contentProps = new NamedValue[1];
        contentProps[0] = Utils.createNamedValue(Constants.PROP_NAME, document.getName());
        CMLCreate create = new CMLCreate("1", parentReference, null, null, null, Constants.TYPE_CONTENT, contentProps);
        // Construct CML statement to add titled aspect
        NamedValue[] titledProps = new NamedValue[2];
        titledProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, document.getTitle());
        titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, document.getDescription());
        CMLAddAspect addAspect = new CMLAddAspect(Constants.ASPECT_TITLED, titledProps, null, "1");
        // Construct CML Block
        CML cml = new CML();
        cml.setCreate(new CMLCreate[] { create });
        cml.setAddAspect(new CMLAddAspect[] { addAspect });
        // Issue CML statement via Repository Web Service and retrieve
        // result
        // Note: Batching of multiple statements into a single web call
        UpdateResult[] result = WebServiceFactory.getRepositoryService().update(cml);
        Reference content = result[0].getDestination();
        ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
        contentService.write(content, Constants.PROP_CONTENT, document.getContentStream(), contentFormat);
        return content.getUuid();
    } catch (AuthenticationFault e) {
        Logger.getLogger(AlfrescoContentDAO.class.getName()).log(Level.SEVERE, "Erro de Autenticação");
        return null;
    } catch (RepositoryFault e) {
        Logger.getLogger(AlfrescoContentDAO.class.getName()).log(Level.INFO, "Conteúdo não disponível");
        return null;
    } catch (RemoteException e) {
        Logger.getLogger(AlfrescoContentDAO.class.getName()).log(Level.SEVERE, "Erro de Acesso a Serviço Web");
        return null;
    } finally {
        // End the session
        AuthenticationUtils.endSession();
    }
}
Also used : ParentReference(org.alfresco.webservice.types.ParentReference) CML(org.alfresco.webservice.types.CML) ContentFormat(org.alfresco.webservice.types.ContentFormat) ParentReference(org.alfresco.webservice.types.ParentReference) Reference(org.alfresco.webservice.types.Reference) NamedValue(org.alfresco.webservice.types.NamedValue) ContentServiceSoapBindingStub(org.alfresco.webservice.content.ContentServiceSoapBindingStub) RepositoryFault(org.alfresco.webservice.repository.RepositoryFault) CMLCreate(org.alfresco.webservice.types.CMLCreate) CMLAddAspect(org.alfresco.webservice.types.CMLAddAspect) AuthenticationFault(org.alfresco.webservice.authentication.AuthenticationFault) RemoteException(java.rmi.RemoteException) UpdateResult(org.alfresco.webservice.repository.UpdateResult)

Aggregations

RemoteException (java.rmi.RemoteException)11 AuthenticationFault (org.alfresco.webservice.authentication.AuthenticationFault)11 RepositoryFault (org.alfresco.webservice.repository.RepositoryFault)11 NamedValue (org.alfresco.webservice.types.NamedValue)11 Reference (org.alfresco.webservice.types.Reference)11 ParentReference (org.alfresco.webservice.types.ParentReference)9 Predicate (org.alfresco.webservice.types.Predicate)7 RepositoryServiceSoapBindingStub (org.alfresco.webservice.repository.RepositoryServiceSoapBindingStub)6 Node (org.alfresco.webservice.types.Node)6 ContentServiceSoapBindingStub (org.alfresco.webservice.content.ContentServiceSoapBindingStub)5 CML (org.alfresco.webservice.types.CML)5 UpdateResult (org.alfresco.webservice.repository.UpdateResult)4 CMLAddAspect (org.alfresco.webservice.types.CMLAddAspect)4 CMLCreate (org.alfresco.webservice.types.CMLCreate)4 ContentDTO (com.tomasio.projects.trainning.dto.ContentDTO)3 DocumentDTO (com.tomasio.projects.trainning.dto.DocumentDTO)3 Content (org.alfresco.webservice.content.Content)3 QueryResult (org.alfresco.webservice.repository.QueryResult)3 ContentFormat (org.alfresco.webservice.types.ContentFormat)3 Query (org.alfresco.webservice.types.Query)3