<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<fieldtypemodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/fieldtypemodel.xsd">
  <!-- ===================== field-type-def ==================== -->
    <!-- General Types -->
    <field-type-def type="blob" sql-type="BLOB" java-type="java.sql.Blob"/>
    <field-type-def type="byte-array" sql-type="BLOB" java-type="byte[]"/>
    <field-type-def type="object" sql-type="BLOB" java-type="Object"/>

    <field-type-def type="date-time" sql-type="TIMESTAMP" sql-type-alias="TIMESTAMP(6)" java-type="java.sql.Timestamp"/>
    <field-type-def type="date" sql-type="DATE" java-type="java.sql.Date"/>
    <field-type-def type="time" sql-type="DATE" java-type="java.sql.Time"/>

    <field-type-def type="currency-amount" sql-type="NUMBER(18,2)" java-type="java.math.BigDecimal"/>
    <field-type-def type="currency-precise" sql-type="NUMBER(18,3)" java-type="java.math.BigDecimal"/>
    <field-type-def type="fixed-point" sql-type="NUMBER(18,6)" java-type="java.math.BigDecimal"/>
    <field-type-def type="floating-point" sql-type="NUMBER(18,6)" java-type="Double"/>
    <field-type-def type="numeric" sql-type="NUMBER(20,0)" java-type="Long"/>

    <field-type-def type="id" sql-type="VARCHAR2(20)" java-type="String"/>
    <field-type-def type="id-long" sql-type="VARCHAR2(60)" java-type="String"/>
    <field-type-def type="id-vlong" sql-type="VARCHAR2(255)" java-type="String"/>

    <!-- we had a customer using Oracle 11g with the following error after running any service in webtools.
        Service dispatcher threw an exceptionResult set was empty for entity:
        [GenericEntity:RuntimeData][runtimeDataId,10205(java.lang.String)] (Result set was empty for entity:
        [GenericEntity:RuntimeData][runtimeDataId,10205(java.lang.String)]) (Result set was empty for entity:
        [GenericEntity:RuntimeData][runtimeDataId,10205(java.lang.String)] (Result set was empty for entity:
        [GenericEntity:RuntimeData][runtimeDataId,10205(java.lang.String)]))

        adding the fieldtype
        <field-type-def type="long" sql-type="LONG" java-type="String"><validate method="isNotEmpty"//>
        and changing the fieldtype in RunTimeData:
        <field name="runtimeInfo" type="long"></field>
        cured the problem.
        (HB)
    -->
    <field-type-def type="indicator" sql-type="CHAR(1)" java-type="String"/>
    <field-type-def type="very-short" sql-type="VARCHAR2(10)" java-type="String"/>
    <field-type-def type="short-varchar" sql-type="VARCHAR2(60)" java-type="String"/>
    <field-type-def type="long-varchar" sql-type="VARCHAR2(255)" java-type="String"/>
    <field-type-def type="very-long" sql-type="CLOB" java-type="String"/>

    <field-type-def type="comment" sql-type="VARCHAR2(255)" java-type="String"/>
    <field-type-def type="description" sql-type="VARCHAR2(255)" java-type="String"/>
    <field-type-def type="name" sql-type="VARCHAR2(100)" java-type="String"/>
    <field-type-def type="value" sql-type="VARCHAR2(255)" java-type="String"/>

    <!-- Specialized Types -->
    <field-type-def type="credit-card-number" sql-type="VARCHAR2(255)" java-type="String"/>
    <field-type-def type="credit-card-date" sql-type="VARCHAR2(7)" java-type="String"/>
    <field-type-def type="email" sql-type="VARCHAR2(320)" java-type="String"/>
    <field-type-def type="url" sql-type="VARCHAR2(2000)" java-type="String"/>
    <field-type-def type="id-ne" sql-type="VARCHAR2(20)" java-type="String"/>
    <field-type-def type="id-long-ne" sql-type="VARCHAR2(60)" java-type="String"/>
    <field-type-def type="id-vlong-ne" sql-type="VARCHAR2(255)" java-type="String"/>
    <field-type-def type="tel-number" sql-type="VARCHAR2(60)" java-type="String"/>
</fieldtypemodel>
