semanticwfs  Version 0.1.0.0
SLDFormatter Class Reference

Formats styles according to the styled layer description definition. More...

Inheritance diagram for SLDFormatter:
Collaboration diagram for SLDFormatter:

Public Member Functions

String formatter (ResultSet results, String featuretype) throws XMLStreamException
 
void cssLiteralToXML (XMLStreamWriter writer, String cssString)
 Formats a cssliteral to an XML representation as needed by SLD. More...
 
String formatGeometry (String geometrytype, StyleObject style)
 Formats a geometry according to a given geometrytype using information from a given styleobj. More...
 
String formatHeader ()
 
String formatFooter ()
 

Static Public Member Functions

static ResultStyleFormatter getFormatter (String formatString)
 Gets a style formatter for a chosen style type. More...
 

Public Attributes

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

Static Public Attributes

static Map< String, ResultStyleFormatterresultMap =new TreeMap<String, ResultStyleFormatter>()
 

Static Package Functions

 [static initializer]
 

Detailed Description

Formats styles according to the styled layer description definition.

Member Function Documentation

◆ [static initializer]()

[static initializer]
staticpackageinherited

◆ cssLiteralToXML()

void cssLiteralToXML ( XMLStreamWriter  writer,
String  cssString 
)

Formats a cssliteral to an XML representation as needed by SLD.

Parameters
writerthe XMLWriter to use
cssStringa String containing CSS definitions
75  {
76  Map<String,Map<String,String>> treemap=new TreeMap<>();
77  treemap.put("Fill",new TreeMap<>());
78  treemap.put("Stroke",new TreeMap<>());
79  if(cssString.contains(";")) {
80  for(String statement:cssString.split(";")) {
81  String[] split=statement.split(":");
82  if(split[0].contains("stroke")) {
83  treemap.get("Stroke").put(split[0],split[1]);
84  }else if(split[0].contains("fill")) {
85  treemap.get("Fill").put(split[0],split[1]);
86  }
87  }
88  for(String key:treemap.keySet()) {
89  try {
90  writer.writeStartElement("sld:"+key);
91  for(String keyy:treemap.get(key).keySet()) {
92  writer.writeStartElement("sld:CssParameter");
93  writer.writeAttribute("name", keyy);
94  writer.writeStartElement("ogc:Literal");
95  writer.writeCharacters(treemap.get(key).get(keyy));
96  writer.writeEndElement();
97  writer.writeEndElement();
98  }
99  writer.writeEndElement();
100  } catch (XMLStreamException e) {
101  // TODO Auto-generated catch block
102  e.printStackTrace();
103  }
104 
105  }
106  }
107  }

Referenced by SLDFormatter.formatter().

◆ formatFooter()

String formatFooter ( )
inherited
78  {
79  return "";
80  }

◆ formatGeometry()

String formatGeometry ( String  geometrytype,
StyleObject  styleobj 
)

Formats a geometry according to a given geometrytype using information from a given styleobj.

Parameters
geometrytypethe geometry
styleobjthe styleobject to use for formatting
Returns
the formatString to use for styling

Reimplemented from ResultStyleFormatter.

110  {
111  // TODO Auto-generated method stub
112  return null;
113  }

◆ formatHeader()

String formatHeader ( )
inherited
74  {
75  return "";
76  }

◆ formatter()

String formatter ( ResultSet  results,
String  featuretype 
) throws XMLStreamException
Parameters
results
featuretype
Returns
Exceptions
XMLStreamException

Reimplemented from ResultStyleFormatter.

22  {
23  StringWriter strwriter = new StringWriter();
24  XMLOutputFactory output = XMLOutputFactory.newInstance();
25  XMLStreamWriter writer;
26  writer = new IndentingXMLStreamWriter(output.createXMLStreamWriter(strwriter));
27  writer.writeStartDocument();
28  writer.writeAttribute("xmlns", "http://www.opengis.net/ogcapi-features-1/1.0");
29  writer.writeAttribute("xmlns:sld", "http://www.opengis.net/sld");
30  writer.writeAttribute("xmlns:ogc", "http://www.opengis.net/ogc");
31  writer.writeAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
32  writer.writeAttribute("xmlns:gml", "http://www.opengis.net/gml");
33  writer.writeAttribute("xmlns:xsi","http://www.w3.org/1999/xlink");
34  writer.writeAttribute("version","1.0.0");
35  writer.writeStartElement("sld:UserStyle");
36  writer.writeStartElement("sld:Name");
37  writer.writeCharacters(featuretype+" Style");
38  writer.writeEndElement();
39  writer.writeStartElement("sld:Title");
40  writer.writeCharacters(featuretype+" Style");
41  writer.writeEndElement();
42  writer.writeStartElement("sld:Abstract");
43  writer.writeCharacters("");
44  writer.writeEndElement();
45  writer.writeStartElement("sld:IsDefault");
46  writer.writeCharacters("1");
47  writer.writeEndElement();
48  writer.writeStartElement("sld:FeatureTypeStyle");
49  writer.writeStartElement("sld:Name");
50  writer.writeEndElement();
51  writer.writeStartElement("sld:Title");
52  writer.writeEndElement();
53  writer.writeStartElement("sld:Abstract");
54  writer.writeEndElement();
55  writer.writeStartElement("sld:FeatureTypeName");
56  writer.writeCharacters(featuretype);
57  writer.writeEndElement();
58  writer.writeStartElement("sld:SemanticTypeIdentifier");
59  writer.writeCharacters("generic:geometry");
60  writer.writeEndElement();
61  writer.writeStartElement("sld:Rule");
62  writer.writeStartElement("sld:PolygonSymbolizer");
63  cssLiteralToXML(writer, "");
64  writer.writeEndElement();
65  writer.writeEndElement();
66  writer.writeEndElement();
67  return exposedType;
68  }
String exposedType
Definition: ResultStyleFormatter.java:22
void cssLiteralToXML(XMLStreamWriter writer, String cssString)
Formats a cssliteral to an XML representation as needed by SLD.
Definition: SLDFormatter.java:75

References SLDFormatter.cssLiteralToXML(), and ResultStyleFormatter.exposedType.

◆ getFormatter()

static ResultStyleFormatter getFormatter ( String  formatString)
staticinherited

Gets a style formatter for a chosen style type.

Parameters
formatStringthe formatString indicating a given style type
Returns
a ResultStyleFormatter generating the chosen style type
31  {
32  formatString=formatString.toLowerCase();
33  if(resultMap.containsKey(formatString)) {
34  return resultMap.get(formatString);
35  }
36  formatString=formatString.replace("+","");
37  if(formatString.contains("mapcss")) {
38  return resultMap.get("mapcss");
39  }
40  if(formatString.contains("geojsoncss")) {
41  return resultMap.get("geojsoncss");
42  }
43  if(formatString.contains("sld")) {
44  return resultMap.get("sld");
45  }
46  return null;
47  }
static Map< String, ResultStyleFormatter > resultMap
Definition: ResultStyleFormatter.java:16

Member Data Documentation

◆ exposedType

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

Referenced by SLDFormatter.formatter().

◆ lastQueriedElemCount

Integer lastQueriedElemCount =0
inherited

◆ mimeType

String mimeType ="text/plain"
inherited

◆ resultMap

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

◆ styleAttribute