
 X	                 @   s   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 m Z Gd d   d e  Z Gd	 d
   d
 e  Z Gd d   d e  Z Gd d   d e e  Z Gd d   d e  Z d S)zR
This module holds simple classes to convert geospatial values from the
database.
    )unicode_literals)Decimal)GeoSelectFormatMixin)Geometry)AreaDistancec               @   s.   e  Z d  Z d Z d d   Z d d   Z d S)	BaseFieldTc             C   s
   |  j  g S)N)from_db_value)self
connection r   Y/home/ubuntu/projects/ifolica/build/django/django/contrib/gis/db/models/sql/conversion.pyget_db_converters   s    zBaseField.get_db_convertersc             C   s
   | | f S)Nr   )r
   compilerZsqlparamsr   r   r   select_format   s    zBaseField.select_formatN)__name__
__module____qualname__Zempty_strings_allowedr   r   r   r   r   r   r      s   r   c               @   s=   e  Z d  Z d Z d d d  Z d d   Z d d   Z d S)		AreaFieldzWrapper for Area values.Nc             C   s   | |  _  d  S)N)area_att)r
   r   r   r   r   __init__   s    zAreaField.__init__c             C   sq   | j  j r! | d k r! d  } n  t | t  r? t |  } n  | d  k	 rm |  j rm t i | |  j 6  } n  | S)N )featuresZ!interprets_empty_strings_as_nulls
isinstancer   floatr   r   )r
   value
expressionr   contextr   r   r   r	      s    	zAreaField.from_db_valuec             C   s   d S)Nr   r   )r
   r   r   r   get_internal_type)   s    zAreaField.get_internal_type)r   r   r   __doc__r   r	   r   r   r   r   r   r      s   r   c               @   s:   e  Z d  Z d Z d d   Z d d   Z d d   Z d S)	DistanceFieldzWrapper for Distance values.c             C   s   | |  _  d  S)N)distance_att)r
   r"   r   r   r   r   /   s    zDistanceField.__init__c             C   s)   | d  k	 r% t  i | |  j 6  } n  | S)N)r   r"   )r
   r   r   r   r   r   r   r   r	   2   s    zDistanceField.from_db_valuec             C   s   d S)Nr!   r   )r
   r   r   r   r   7   s    zDistanceField.get_internal_typeN)r   r   r   r    r   r	   r   r   r   r   r   r!   -   s   r!   c               @   s4   e  Z d  Z d Z d Z d d   Z d d   Z d S)	GeomFieldz
    Wrapper for Geometry values.  It is a lightweight alternative to
    using GeometryField (which requires an SQL query upon instantiation).
    Nc             C   s   | d  k	 r t  |  } n  | S)N)r   )r
   r   r   r   r   r   r   r   r	   C   s    zGeomField.from_db_valuec             C   s   d S)NZGeometryFieldr   )r
   r   r   r   r   H   s    zGeomField.get_internal_type)r   r   r   r    Z	geom_typer	   r   r   r   r   r   r#   ;   s   r#   c               @   s.   e  Z d  Z d Z d d   Z d d   Z d S)GMLFieldzQ
    Wrapper for GML to be used by Oracle to ensure Database.LOB conversion.
    c             C   s   d S)Nr$   r   )r
   r   r   r   r   Q   s    zGMLField.get_internal_typec             C   s   | S)Nr   )r
   r   r   r   r   r   r   r   r	   T   s    zGMLField.from_db_valueN)r   r   r   r    r   r	   r   r   r   r   r$   L   s   r$   N)r    
__future__r   decimalr   Z#django.contrib.gis.db.models.fieldsr   Z#django.contrib.gis.geometry.backendr   Zdjango.contrib.gis.measurer   r   objectr   r   r!   r#   r$   r   r   r   r   <module>   s   
