<!--

  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.

-->
<model xmlns="http://ns.adobe.com/Fiber/1.0">
  <annotation name="ActionScriptGeneration">
    <item name="FullyQualifyReferences">true</item>
  </annotation>
  <service name="EmployeeService">
    <annotation name="ActionScriptGeneration">
      <item name="Source">TestDrive.services.EmployeeService</item>
      <item name="ServiceType">RemoteObject</item>
      <item name="Package">services.employeeservice</item>
      <item name="Destination">ColdFusion</item>
    </annotation>
    <annotation name="ServiceTypeGroup">
      <item name="ServiceBackendType">ColdFusion</item>
    </annotation>
    <annotation name="ServiceConfig">
      <item name="DEFAULT_ENTITY_PACKAGE">valueObjects</item>
      <item name="COLDFUSION_SERVER_ROOT_URL">http://localhost:8500/</item>
      <item name="LINKED_FILE">EmployeeService.cfc</item>
      <item name="COLDFUSION_SERVER_CONTEXT_ROOT"></item>
      <item name="CFC_CLASS_NAME">EmployeeService</item>
      <item name="CFC_RELATIVE_LOCATION">TestDrive/services/EmployeeService.cfc</item>
      <item name="ABSOLUTE_ENDPOINT">http://localhost:8500/flex2gateway/</item>
      <item name="CFC_LOCATION">/Applications/ColdFusion9/wwwroot/TestDrive/services/EmployeeService.cfc</item>
    </annotation>
    <function name="updateEmployee" return-type="void">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">opaque</item>
      </annotation>
      <parameter name="item" type="Employee"/>
    </function>
    <function name="deleteEmployee" return-type="void">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">float</item>
      </annotation>
      <parameter name="itemID" type="integer"/>
    </function>
    <function name="getEmployees" return-type="Employee[]">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="ValidProperties">
        <item name="propertySpecifier">office,departmentid,street,zipcode,state,lastname,firstname,photofile,city,id,title,officephone,email,cellphone</item>
      </annotation>
      <annotation name="original signature">
        <item name="returnType">opaque</item>
      </annotation>
    </function>
    <function name="getDepartments" return-type="Department[]">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="ValidProperties">
        <item name="propertySpecifier">businessunit,budget,manager,actualcontractors,actualsalary,esttravel,estcontractors,actualexpenses,id,estsalary,actualsupplies,name,costcenter,actualtravel,estsupplies</item>
      </annotation>
      <annotation name="original signature">
        <item name="returnType">opaque</item>
      </annotation>
    </function>
    <function name="getEmployeesByID" return-type="opaque">
      <annotation name="analyze group">
        <item name="analyzed">false</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">float</item>
        <item name="returnType">opaque</item>
      </annotation>
      <parameter name="itemID" type="float"/>
    </function>
    <function name="getEmployeesSummaryByName" return-type="opaque">
      <annotation name="analyze group">
        <item name="analyzed">false</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">string</item>
        <item name="returnType">opaque</item>
      </annotation>
      <parameter name="searchStr" type="string"/>
    </function>
    <function name="getEmployeesSummary" return-type="opaque">
      <annotation name="analyze group">
        <item name="analyzed">false</item>
      </annotation>
      <annotation name="original signature">
        <item name="returnType">opaque</item>
      </annotation>
    </function>
    <function name="getEmployeesByName" return-type="Employee[]">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="ValidProperties">
        <item name="propertySpecifier">office,departmentid,street,zipcode,state,lastname,firstname,photofile,city,id,title,officephone,email,cellphone</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">string</item>
        <item name="returnType">opaque</item>
      </annotation>
      <parameter name="searchStr" type="string"/>
    </function>
    <function name="createEmployee" return-type="integer">
      <annotation name="analyze group">
        <item name="analyzed">true</item>
      </annotation>
      <annotation name="original signature">
        <item name="inputParams">opaque</item>
        <item name="returnType">float</item>
      </annotation>
      <parameter name="item" type="Employee"/>
    </function>
  </service>
  <entity name="Department">
    <annotation name="EntityProperties">
      <item name="EntityOriginalName">Department</item>
    </annotation>
    <annotation name="service Group">
      <item name="service">EmployeeService</item>
    </annotation>
    <annotation name="ServerProperties">
      <item name="IncludeRemoteClass">nonempty</item>
    </annotation>
    <annotation name="getDepartments">
      <item name="propertySpecifier">businessunit,budget,manager,actualcontractors,actualsalary,esttravel,estcontractors,actualexpenses,id,estsalary,actualsupplies,name,costcenter,actualtravel,estsupplies</item>
    </annotation>
    <annotation name="ActionScriptGeneration">
      <item name="Package">valueObjects</item>
    </annotation>
    <property name="businessunit" type="string" required="true"/>
    <property name="budget" type="integer" required="true"/>
    <property name="manager" type="string" required="true"/>
    <property name="actualcontractors" type="integer" required="true"/>
    <property name="actualsalary" type="integer" required="true"/>
    <property name="esttravel" type="integer" required="true"/>
    <property name="estcontractors" type="integer" required="true"/>
    <property name="actualexpenses" type="integer" required="true"/>
    <property name="id" type="integer" required="true"/>
    <property name="estsalary" type="integer" required="true"/>
    <property name="actualsupplies" type="integer" required="true"/>
    <property name="name" type="string" required="true"/>
    <property name="costcenter" type="integer" required="true"/>
    <property name="actualtravel" type="integer" required="true"/>
    <property name="estsupplies" type="integer" required="true"/>
  </entity>
  <entity name="Employee">
    <annotation name="EntityProperties">
      <item name="EntityOriginalName">Employee</item>
    </annotation>
    <annotation name="service Group">
      <item name="service">EmployeeService,EmployeeServiceDummy</item>
    </annotation>
    <annotation name="ServerProperties">
      <item name="IncludeRemoteClass">nonempty</item>
    </annotation>
    <annotation name="getEmployees">
      <item name="propertySpecifier">office,departmentid,street,zipcode,state,lastname,firstname,photofile,city,id,title,officephone,email,cellphone</item>
    </annotation>
    <annotation name="ActionScriptGeneration">
      <item name="Package">valueObjects</item>
    </annotation>
    <annotation name="getEmployeesByName">
      <item name="propertySpecifier">office,departmentid,street,zipcode,state,lastname,firstname,photofile,city,id,title,officephone,email,cellphone</item>
    </annotation>
    <property name="office" type="string" required="true"/>
    <property name="departmentid" type="integer" required="true"/>
    <property name="street" type="string" required="true"/>
    <property name="zipcode" type="string" required="true"/>
    <property name="state" type="string" required="true"/>
    <property name="lastname" type="string" required="true"/>
    <property name="firstname" type="string" required="true"/>
    <property name="photofile" type="string" required="true"/>
    <property name="city" type="string" required="true"/>
    <property name="id" type="integer" required="true"/>
    <property name="title" type="string" required="true"/>
    <property name="officephone" type="string" required="true"/>
    <property name="email" type="string" required="true"/>
    <property name="cellphone" type="string" required="true"/>
  </entity>
</model>
