1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.xml;
18
19 import javax.xml.namespace.QName;
20
21 import org.opensaml.xml.util.XMLHelper;
22 import org.w3c.dom.Element;
23
24
25
26
27
28
29
30
31 public abstract class AbstractXMLObjectBuilder<XMLObjectType extends XMLObject> implements
32 XMLObjectBuilder<XMLObjectType> {
33
34
35 public XMLObjectType buildObject(QName objectName){
36 return buildObject(objectName.getNamespaceURI(), objectName.getLocalPart(), objectName.getPrefix());
37 }
38
39
40 public XMLObjectType buildObject(QName objectName, QName schemaType){
41 return buildObject(objectName.getNamespaceURI(), objectName.getLocalPart(), objectName.getPrefix(), schemaType);
42 }
43
44
45 public abstract XMLObjectType buildObject(String namespaceURI, String localName, String namespacePrefix);
46
47
48 public XMLObjectType buildObject(String namespaceURI, String localName, String namespacePrefix, QName schemaType) {
49 XMLObjectType xmlObject;
50
51 xmlObject = buildObject(namespaceURI, localName, namespacePrefix);
52 ((AbstractXMLObject) xmlObject).setSchemaType(schemaType);
53
54 return xmlObject;
55 }
56
57
58 public XMLObjectType buildObject(Element element) {
59 XMLObjectType xmlObject;
60
61 String localName = element.getLocalName();
62 String nsURI = element.getNamespaceURI();
63 String nsPrefix = element.getPrefix();
64 QName schemaType = XMLHelper.getXSIType(element);
65
66 xmlObject = buildObject(nsURI, localName, nsPrefix, schemaType);
67
68 return xmlObject;
69 }
70 }