diff --git a/sharepoint/api/pom.xml b/sharepoint/api/pom.xml
index 1eaabda..801969c 100644
--- a/sharepoint/api/pom.xml
+++ b/sharepoint/api/pom.xml
@@ -149,7 +149,21 @@
search.wsdl
-
+
+
+ usergroup2010
+ generate-sources
+
+ wsimport
+
+
+ com.microsoft.schemas.sharepoint.soap.usergroup
+ ${basedir}/src/main/resources/2010/wsdl
+
+ usergroup.wsdl
+
+
+
@@ -210,7 +224,30 @@
lists.xml
true
-
+
+
+
+
+ usergroup
+
+ xjc
+
+
+
+ ${basedir}/src/main/resources/xsd
+
+ usergroup.xsd
+
+ de.muehlencord.shared.sharepoint.api.usergroup
+
+ ${project.build.directory}/generated-sources/jaxb/
+ true
+
+ ${basedir}/src/main/resources/jaxb
+ usergroup.xml
+ true
+
+
diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPJaxbObject.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPJaxbObject.java
index 254956d..461974a 100644
--- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPJaxbObject.java
+++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPJaxbObject.java
@@ -24,6 +24,7 @@ import org.xml.sax.SAXException;
/**
*
* @author joern.muehlencord
+ * @param
*/
public abstract class SPJaxbObject extends SPObject {
@@ -34,13 +35,8 @@ public abstract class SPJaxbObject extends SPObject {
*/
private static final String packages = "" //
+ "de.muehlencord.shared.sharepoint.api.batch" //
- + ":de.muehlencord.shared.sharepoint.api.lists"; //
- // + ":de.muehlencord.shared.sharepoint.api.sites" //
- // + ":com.microsoft.schemas.sharepoint.soap.alerts" //
- // + ":com.microsoft.schemas.sharepoint.soap.authentication" //
-// + ":com.microsoft.schemas.sharepoint.soap.lists" //
-// + ":com.microsoft.schemas.sharepoint.soap.sites" //
-// + ":com.microsoft.schemas.sharepoint.soap.webs";
+ + ":de.muehlencord.shared.sharepoint.api.lists" //
+ + ":de.muehlencord.shared.sharepoint.api.usergroup"; //
public static JAXBContext getJaxbContext() throws JAXBException {
if (jaxbContext == null) {
@@ -79,8 +75,7 @@ public abstract class SPJaxbObject extends SPObject {
}
schema = sf.newSchema(streamSources);
} catch (Exception ex) {
- ex.printStackTrace(); // TODO add error handling
- // throw new SAXException ("Cannot convert to object. Reason: "+ex.getMessage(), ex);
+ throw new SAXException ("Cannot convert to object. Reason: "+ex.getMessage(), ex);
}
return schema;
}
diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPObject.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPObject.java
index 400651c..b186750 100644
--- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPObject.java
+++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/SPObject.java
@@ -10,6 +10,7 @@ import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
+import org.w3c.dom.Node;
/**
*
@@ -56,5 +57,35 @@ public abstract class SPObject {
}
return returnString;
}
+
+ /**
+ * Creates a string from an XML file with start and end indicators
+ *
+ * @param node node to convert
+ * @return string of the xml document
+ */
+ public static String xmlToString(Node node) {
+ String returnString = "";
+ try {
+ //create string from xml tree
+ //Output the XML
+ //set up a transformer
+ TransformerFactory transfac = TransformerFactory.newInstance();
+ Transformer trans;
+ trans = transfac.newTransformer();
+ trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ trans.setOutputProperty(OutputKeys.INDENT, "yes");
+ StringWriter sw = new StringWriter();
+ StreamResult streamResult = new StreamResult(sw);
+ DOMSource source = new DOMSource(node);
+ trans.transform(source, streamResult);
+ String xmlString = sw.toString();
+ //print the XML
+ returnString = returnString + xmlString;
+ } catch (TransformerException ex) {
+ Logger.getLogger(SPObject.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return returnString;
+ }
}
diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java
index a0ce5fe..5ce7d22 100644
--- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java
+++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java
@@ -37,11 +37,9 @@ import org.xml.sax.SAXException;
*/
public class SPList extends SPJaxbObject {
- private String listName = null;
-
public SPList(SPContext context, String listName) throws JAXBException {
super(List.class, context);
- getValue().name = listName;
+ getValue().name = listName;
}
@Override
@@ -53,11 +51,17 @@ public class SPList extends SPJaxbObject {
/* *** list information *** */
-
public String getListName() {
return getValue().name;
}
+ public String getListTitle() throws NoSuchAlgorithmException, KeyManagementException, JAXBException, MalformedURLException, SAXException {
+ if (getValue().title == null) {
+ getListFromSharepoint();
+ }
+ return getValue().title;
+ }
+
/* *** queries *** */
public java.util.List> getListItems(java.util.List listColumnNames, String rowLimit) throws NoSuchAlgorithmException,
KeyManagementException, JAXBException, MalformedURLException,
@@ -98,7 +102,7 @@ public class SPList extends SPJaxbObject {
rowList.add(attributes.getNamedItem(internalColumnName).getNodeValue());
} else {
// TODO create better exception handling
- throw new JAXBException("Couldn't find the '" + columnName + "' column in the '" + listName + "' list in SharePoint.\n");
+ throw new JAXBException("Couldn't find the '" + columnName + "' column in the '" + getValue().name + "' list in SharePoint.\n");
}
}
returnList.add(rowList);
@@ -111,14 +115,14 @@ public class SPList extends SPJaxbObject {
/* *** manipulating list items *** */
- public void addListItem(String listName, Map data) throws NoSuchAlgorithmException, KeyManagementException,
+ public void addListItem(Map data) throws NoSuchAlgorithmException, KeyManagementException,
JAXBException, MalformedURLException, SAXException, ParserConfigurationException, IOException {
java.util.List