List of usage examples for com.liferay.portal.kernel.xml Element getNamespacePrefix
public String getNamespacePrefix();
From source file:it.smc.calendar.sync.caldav.methods.ProppatchMethodImpl.java
License:Open Source License
protected Set<QName> processInstructions(WebDAVRequest webDAVRequest) throws InvalidRequestException, LockException { try {/*from w ww . ja va 2 s . c om*/ Set<QName> newProps = new HashSet<QName>(); WebDAVProps webDavProps = getStoredProperties(webDAVRequest); Document document = CalDAVRequestThreadLocal.getRequestDocument(); if (Validator.isNull(document)) { return newProps; } Element rootElement = document.getRootElement(); List<Element> instructionElements = rootElement.elements(); for (Element instructionElement : instructionElements) { List<Element> propElements = instructionElement.elements(); if (propElements.size() != 1) { throw new InvalidRequestException( "There should only be one <prop /> per set or remove " + "instruction."); } Element propElement = propElements.get(0); if (!propElement.getName().equals("prop") || !propElement.getNamespaceURI().equals(WebDAVUtil.DAV_URI.getURI())) { throw new InvalidRequestException("Invalid <prop /> element " + propElement); } List<Element> customPropElements = propElement.elements(); for (Element customPropElement : customPropElements) { String name = customPropElement.getName(); String prefix = customPropElement.getNamespacePrefix(); String uri = customPropElement.getNamespaceURI(); String text = customPropElement.getText(); Namespace namespace = WebDAVUtil.createNamespace(prefix, uri); if (instructionElement.getName().equals("set")) { if (Validator.isNull(text)) { webDavProps.addProp(name, prefix, uri); } else { webDavProps.addProp(name, prefix, uri, text); } newProps.add(SAXReaderUtil.createQName(customPropElement.getName(), namespace)); } else if (instructionElement.getName().equals("remove")) { webDavProps.removeProp(name, prefix, uri); } else { throw new InvalidRequestException( "Instead of set/remove instruction, received " + instructionElement); } } } WebDAVPropsLocalServiceUtil.storeWebDAVProps(webDavProps); return newProps; } catch (LockException le) { throw le; } catch (Exception e) { throw new InvalidRequestException(e); } }
From source file:it.smc.calendar.sync.caldav.util.CalDAVUtil.java
License:Open Source License
public static Set<QName> getRequestDAVProps(WebDAVRequest webDAVRequest) throws InvalidRequestException { try {/*from w ww .ja v a 2 s .co m*/ Set<QName> props = new HashSet<QName>(); Resource resource = webDAVRequest.getWebDAVStorage().getResource(webDAVRequest); Document document = CalDAVRequestThreadLocal.getRequestDocument(); if (document == null) { if (resource.isCollection()) { return CalDAVProps.getAllCollectionProps(); } else { return CalDAVProps.getAllResourceProps(); } } Element rootElement = document.getRootElement(); if (rootElement.element("allprop") != null) { if (resource.isCollection()) { return CalDAVProps.getAllCollectionProps(); } else { return CalDAVProps.getAllResourceProps(); } } Element propElement = rootElement.element("prop"); List<Element> elements = propElement.elements(); for (Element element : elements) { String prefix = element.getNamespacePrefix(); String uri = element.getNamespaceURI(); Namespace namespace = WebDAVUtil.createNamespace(prefix, uri); props.add(SAXReaderUtil.createQName(element.getName(), namespace)); } return props; } catch (Exception e) { throw new InvalidRequestException(e); } }