org.geotools.gml3.bindings
Class ArcStringTypeBinding

Object
  extended by AbstractComplexBinding
      extended by ArcStringTypeBinding
All Implemented Interfaces:
Binding, ComplexBinding

public class ArcStringTypeBinding
extends AbstractComplexBinding

Binding object for the type http://www.opengis.net/gml:ArcStringType.

  
  <complexType name="ArcStringType">
      <annotation>
          <documentation>An ArcString is a curve segment that uses three-point circular arc interpolation.</documentation>
      </annotation>
      <complexContent>
          <extension base="gml:AbstractCurveSegmentType">
              <sequence>
                  <choice>
                      <annotation>
                          <documentation>GML supports two different ways to specify the control points of a curve segment.
  1. A sequence of "pos" (DirectPositionType) or "pointProperty" (PointPropertyType) elements. "pos" elements are control points that are only part of this curve segment, "pointProperty" elements contain a point that may be referenced from other geometry elements or reference another point defined outside of this curve segment (reuse of existing points).
  2. The "posList" element allows for a compact way to specifiy the coordinates of the control points, if all control points are in the same coordinate reference systems and belong to this curve segment only. The number of direct positions in the list must be at least three.</documentation>
                      </annotation>
                      <choice maxOccurs="unbounded" minOccurs="3">
                          <element ref="gml:pos"/>
                          <element ref="gml:pointProperty"/>
                          <element ref="gml:pointRep">
                              <annotation>
                                  <documentation>Deprecated with GML version 3.1.0. Use "pointProperty" instead. Included for backwards compatibility with GML 3.0.0.</documentation>
                              </annotation>
                          </element>
                      </choice>
                      <element ref="gml:posList"/>
                      <element ref="gml:coordinates">
                          <annotation>
                              <documentation>Deprecated with GML version 3.1.0. Use "posList" instead.</documentation>
                          </annotation>
                      </element>
                  </choice>
              </sequence>
              <attribute fixed="circularArc3Points" name="interpolation" type="gml:CurveInterpolationType">
                  <annotation>
                      <documentation>The attribute "interpolation" specifies the curve interpolation mechanism used for this segment. This mechanism
  uses the control points and control parameters to determine the position of this curve segment. For an ArcString the interpolation is fixed as "circularArc3Points".</documentation>
                  </annotation>
              </attribute>
              <attribute name="numArc" type="integer" use="optional">
                  <annotation>
                      <documentation>The number of arcs in the arc string can be explicitly stated in this attribute. The number of control points in the arc string must be 2 * numArc + 1.</documentation>
                  </annotation>
              </attribute>
          </extension>
      </complexContent>
  </complexType> 
        
   
 


Field Summary
 
Fields inherited from interface Binding
AFTER, BEFORE, OVERRIDE
 
Constructor Summary
ArcStringTypeBinding(GeometryFactory gFactory, CoordinateSequenceFactory csFactory, ArcParameters arcParameters)
           
 
Method Summary
 int getExecutionMode()
          This implementation returns Binding.OVERRIDE.
 QName getTarget()
           
 Class getType()
           
protected  boolean laidOutClockwise(Coordinate c1, Coordinate c2, Coordinate c3)
          Returns whether the input coordinates are laid out clockwise on their corresponding circle.
 Object parse(ElementInstance instance, Node node, Object value)
           
 
Methods inherited from class AbstractComplexBinding
encode, getProperties, getProperties, getProperty, initialize, initializeChildContext
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArcStringTypeBinding

public ArcStringTypeBinding(GeometryFactory gFactory,
                            CoordinateSequenceFactory csFactory,
                            ArcParameters arcParameters)
Method Detail

getTarget

public QName getTarget()
Returns:
The qualified name of the target for the binding.

getExecutionMode

public int getExecutionMode()
Description copied from class: AbstractComplexBinding
This implementation returns Binding.OVERRIDE.

Subclasses should override to change this behaviour.

Specified by:
getExecutionMode in interface Binding
Overrides:
getExecutionMode in class AbstractComplexBinding
Returns:
The execution mode of the binding, one of the constants AFTER, BEFORE, or OVERRIDE.
See Also:
Binding.AFTER, Binding.BEFORE, Binding.OVERRIDE

getType

public Class getType()

Returns:
The java type this binding maps to.

parse

public Object parse(ElementInstance instance,
                    Node node,
                    Object value)
             throws Exception

Specified by:
parse in interface ComplexBinding
Overrides:
parse in class AbstractComplexBinding
Parameters:
instance - The element being parsed.
node - The node in the parse tree representing the element being parsed.
value - The result of the parse from another strategy in the type hierarchy. Could be null if this is the first strategy being executed.
Returns:
The parsed object, or null if the component could not be parsed.
Throws:
Exception - Strategy objects should not attempt to handle any exceptions.

laidOutClockwise

protected boolean laidOutClockwise(Coordinate c1,
                                   Coordinate c2,
                                   Coordinate c3)
Returns whether the input coordinates are laid out clockwise on their corresponding circle. Only works correctly if the Euclidean distance between c1 and c2 is equal to the Euclidean distance between c2 and c3.

Parameters:
c1 -
c2 -
c3 -
Returns:
true if input coordinates are laid out clockwise on their corresponding circle. false otherwise.


Copyright © 1996-2014 Geotools. All Rights Reserved.