semanticwfs  Version 0.1.0.0
GMDFormatter Class Reference

Formats metadata to the GMD XML format. More...

Inheritance diagram for GMDFormatter:
Collaboration diagram for GMDFormatter:

Public Member Functions

 GMDFormatter ()
 Constructor for this class. More...
 
String formatter (String collectionid, String collectioncall, String collectionurl, JSONObject workingobj, String format) throws XMLStreamException
 
String formatHeader ()
 
String formatFooter ()
 

Static Public Member Functions

static ResultMetadataFormatter getFormatter (String formatString)
 

Public Attributes

Integer lastQueriedElemCount =0
 
String mimeType ="text/plain"
 
String exposedType ="application/vnd.geo+json"
 
XMLStreamWriter xmlwriter
 

Static Public Attributes

static Map< String, ResultMetadataFormatterresultMap =new TreeMap<String, ResultMetadataFormatter>()
 

Static Package Functions

 [static initializer]
 

Detailed Description

Formats metadata to the GMD XML format.

Constructor & Destructor Documentation

◆ GMDFormatter()

Constructor for this class.

23  {
24  this.mimeType=MediaType.APPLICATION_XML;
25  }
String mimeType
Definition: ResultMetadataFormatter.java:17

References ResultMetadataFormatter.mimeType.

Member Function Documentation

◆ [static initializer]()

[static initializer]
staticpackageinherited

◆ formatFooter()

String formatFooter ( )
inherited
56  {
57  return "";
58  }

◆ formatHeader()

String formatHeader ( )
inherited
52  {
53  return "";
54  }

◆ formatter()

String formatter ( String  collectionid,
String  collectioncall,
String  collectionurl,
JSONObject  workingobj,
String  format 
) throws XMLStreamException

Reimplemented from ResultMetadataFormatter.

28  {
29  StringWriter strwriter = new StringWriter();
30  XMLOutputFactory output = XMLOutputFactory.newInstance();
31  XMLStreamWriter writer;
32  try {
33  if ("true".equals(collectioncall)) {
34  writer = this.xmlwriter;
35  } else {
36  writer = new IndentingXMLStreamWriter(output.createXMLStreamWriter(strwriter));
37  writer.writeStartDocument();
38  }
39  writer.setPrefix("gmd", "http://www.isotc211.org/2005/gmd");
40  writer.setPrefix("gmx", "http://www.isotc211.org/2005/gmx");
41  writer.setPrefix("gco", "http://www.isotc211.org/2005/gco");
42  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "MD_Metadata");
43  writer.writeNamespace("gmd", "http://www.isotc211.org/2005/gmd");
44  writer.writeNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
45  writer.writeNamespace("gco", "http://www.isotc211.org/2005/gco");
46  writer.writeNamespace("gmx", "http://www.isotc211.org/2005/gmx");
47  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "characterSet");
48  writer.writeStartElement("MD_CharacterSetCode");
49  writer.writeAttribute("codelist",
50  "http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/ML_gmxCodelists.xml#MD_CharacterSetCode");
51  writer.writeAttribute("codeListValue", "utf8");
52  writer.writeEndElement();
53  writer.writeEndElement();
54  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "language");
55  writer.writeStartElement("MD_LanguageCode");
56  writer.writeAttribute("codeList", "http://www.isotc211.org/2005/resources/codeList.xml#LanguageCode");
57  writer.writeAttribute("codeListValue", "ger");
58  writer.writeEndElement();
59  writer.writeEndElement();
60  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "topicCategory");
61  writer.writeStartElement("MD_TopicCategoryCode");
62  writer.writeAttribute("codeList", "http://www.isotc211.org/2005/resources/codeList.xml#TopicCategoryCode");
63  writer.writeCharacters(collectionid);
64  writer.writeEndElement();
65  writer.writeEndElement();
66  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "spatialRepresentationType");
67  writer.writeStartElement("MD_SpatialRepresentationTypeCode");
68  writer.writeAttribute("codeListValue", "vector");
69  writer.writeAttribute("codeList",
70  "http://www.isotc211.org/2005/resources/codeList.xml#MD_SpatialRepresentationTypeCode");
71  writer.writeEndElement();
72  writer.writeEndElement();
73  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "extent");
74  writer.writeStartElement("EX_Extent");
75  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "geographicElement");
76  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "EX_GeographicBoundingBox");
77  writer.writeEndElement();
78  writer.writeEndElement();
79  writer.writeEndElement();
80  writer.writeEndElement();
81  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "datasetURI");
82  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
83  writer.writeCharacters(collectionurl);
84  writer.writeEndElement();
85  writer.writeEndElement();
86  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "contact");
87  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "CI_ResponsibleParty");
88  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "individualName");
89  writer.writeEndElement();
90  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "organisationName");
91  writer.writeEndElement();
92  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "positionName");
93  writer.writeEndElement();
94  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "contactInfo");
95  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "CI_Contact");
96  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "phone");
97  writer.writeEndElement();
98  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "address");
99  writer.writeEndElement();
100  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "onlineResource");
101  writer.writeEndElement();
102  writer.writeEndElement();
103  writer.writeEndElement();
104  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "role");
105  writer.writeEndElement();
106  writer.writeEndElement();
107  writer.writeEndElement();
108  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "metadataStandardName");
109  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
110  writer.writeCharacters("ISO 19115:2003/19139");
111  writer.writeEndElement();
112  writer.writeEndElement();
113  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "metadataStandardVersion");
114  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
115  writer.writeCharacters("1.0");
116  writer.writeEndElement();
117  writer.writeEndElement();
118  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "status");
119  writer.writeStartElement("MD_ProgressCode");
120  writer.writeAttribute("codeList", "http://www.isotc211.org/2005/resources/codeList.xml#MD_ProgressCode");
121  writer.writeAttribute("codeListValue", "onGoing");
122  writer.writeEndElement();
123  writer.writeEndElement();
124  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "identificationInfo");
125  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "MD_DataIdentification");
126  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "abstract");
127  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
128  writer.writeCharacters(workingobj.getString("description"));
129  writer.writeEndElement();
130  writer.writeEndElement();
131  writer.writeEndElement();
132  writer.writeEndElement();
133  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "distributionInfo");
134  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "MD_Distribution");
135  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "distributionFormat");
136  writer.writeEndElement();
137  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "distributor");
138  writer.writeEndElement();
139  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "transferOptions");
140  writer.writeStartElement("http://www.isotc211.org/2005/gmd","MD_DigitalTransferOptions");
141  writer.writeStartElement("http://www.isotc211.org/2005/gmd","online");
142  writer.writeStartElement("http://www.isotc211.org/2005/gmd","CI_OnlineResource");
143  writer.writeStartElement("http://www.isotc211.org/2005/gmd","linkage");
144  writer.writeStartElement("http://www.isotc211.org/2005/gmd","URL");
145  writer.writeEndElement();
146  writer.writeEndElement();
147  writer.writeStartElement("http://www.isotc211.org/2005/gmd","function");
148  writer.writeStartElement("http://www.isotc211.org/2005/gmd","CI_OnLineFunctionCode");
149  writer.writeAttribute("codeList","CI_OnLineFunctionCode");
150  writer.writeAttribute("codeListValue","information");
151  writer.writeCharacters("information");
152  writer.writeEndElement();
153  writer.writeEndElement();
154  writer.writeEndElement();
155  writer.writeEndElement();
156  writer.writeEndElement();
157  writer.writeEndElement();
158  writer.writeEndElement();
159  writer.writeEndElement();
160  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "dataQualityInfo");
161  writer.writeEndElement();
162  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "referenceSysteminfo");
163  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "MD_ReferenceSystem");
164  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "referenceSystemIdentifier");
165  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "RS_Identifier");
166  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "code");
167  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
168  writer.writeCharacters(
169  workingobj.getString("targetCRS").substring(workingobj.getString("targetCRS").indexOf(':') + 1));
170  writer.writeEndElement();
171  writer.writeEndElement();
172  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "codeSpace");
173  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
174  writer.writeCharacters("urn:ogc:def:crs:EPSG");
175  writer.writeEndElement();
176  writer.writeEndElement();
177  writer.writeStartElement("http://www.isotc211.org/2005/gmd", "version");
178  writer.writeStartElement("http://www.isotc211.org/2005/gco", "CharacterString");
179  writer.writeCharacters("6.11.2");
180  writer.writeEndElement();
181  writer.writeEndElement();
182  writer.writeEndElement();
183  writer.writeEndElement();
184  writer.writeEndElement();
185  writer.writeEndElement();
186  writer.writeEndElement();
187  if (!"true".equals(collectioncall)) {
188  writer.writeEndDocument();
189  }
190  writer.flush();
191  return strwriter.toString();
192  } catch (XMLStreamException e) {
193  return null;
194  }
195  }
XMLStreamWriter xmlwriter
Definition: ResultMetadataFormatter.java:21

References ResultMetadataFormatter.xmlwriter.

Referenced by DCATFormatter.formatter().

◆ getFormatter()

static ResultMetadataFormatter getFormatter ( String  formatString)
staticinherited
23  {
24  formatString=formatString.toLowerCase();
25  if(resultMap.containsKey(formatString)) {
26  return resultMap.get(formatString);
27  }
28  formatString=formatString.replace("+","");
29  if(formatString.contains("dcat")) {
30  return resultMap.get("geodcat");
31  }
32  return resultMap.get("gmd");
33  }
static Map< String, ResultMetadataFormatter > resultMap
Definition: ResultMetadataFormatter.java:13

Referenced by WebService.getCollectionMetadata().

Member Data Documentation

◆ exposedType

String exposedType ="application/vnd.geo+json"
inherited

◆ lastQueriedElemCount

Integer lastQueriedElemCount =0
inherited

◆ mimeType

String mimeType ="text/plain"
inherited

◆ resultMap

Map<String,ResultMetadataFormatter> resultMap =new TreeMap<String, ResultMetadataFormatter>()
staticinherited

◆ xmlwriter

XMLStreamWriter xmlwriter
inherited

Referenced by GMDFormatter.formatter().