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();
}
}
Aggregations